IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 超详细的基于docker搭建hadoop集群 -> 正文阅读

[大数据]超详细的基于docker搭建hadoop集群

环境:

  1. Ubuntu20
  2. Hadoop 3.1.4
  3. Jdk 1.8_301

搭建主要步骤

  1. 拉取最新版本ubuntu镜像
  2. 利用挂载将jdk,hadoop等安装包通过xftp或者使用命令行scp命令传到挂载目录。
  3. 进入ubuntu镜像容器
  • docker exec -it 容器id /bin/bash
  1. 更新apt-get系统源
  • apt-get update
  • 更新完后可以下载一些必须工具,如vim
  1. 安装sshd
  • 在开启分布式Hadoop时,需要用到ssh连接slave节点
  • apt-get install ssh
  • 然后运行如下脚本即可开启sshd服务器:
    ? /etc/init.d/ssh start
    这样在开启镜像时,都需要手动开启sshd服务,可以把这条命令写进~/.bashrc文件,保存后每次进入容器会自动启动sshd服务**(这一句一定要放在最后,一定要,不然后面会启动异常!)**
  1. 配置免密登录(这里我试了一下,在容器里使用ssh localhost输入密码会拒绝登录)
  • cd ~/.ssh
  • ssh-keygen -t rsa 一路按回车
  • 最后输入 cat ./id_rsa.pub >> ./authorized_keys
    ? 接下来就可以直接输入ssh localhost登录本机了
  1. 配置jdk,和前面单机版配置一样。
  2. 安装hadoop,将hadoop解压到自己指定的目录
  3. 配置hadoop集群

(1)打开hadoop_env.sh,修改JAVA_HOME在这里插入图片描述
(2)打开core-site.xml,输入

<configuration>
   <property>
      <name>hadoop.tmp.dir</name>
      <value>file:/usr/local/hadoop/tmp</value>
    <description>Abase for other temporary directories.</description>
   </property>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
   </property>
</configuration>  

(3)打开hdfs-site.xml输入

<configuration>
  <property>
     <name>dfs.namenode.name.dir</name>
     <value>file:/usr/local/hadoop/namenode_dir
      </value>
  </property>
  <property>
     <name>dfs.datanode.data.dir</name>
     <value>file:/usr/local/hadoop/datanode_dir
     </value>
  </property>
  <property>
     <name>dfs.replication</name>
     <value>3</value>
  </property>
</configuration>

(4)打开mapred-site.xml输入

<configuration>
 <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
 </property>
<property>
  <name>yarn.app.mapreduce.am.env</name>//这里的路径是你安装hadoop的路径
  <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
</configuration>

(5)打开yarn-site.xml输入

<configuration>
 <!-- Site specific YARN configuration properties -->
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>master</value>
   </property>
 </configuration>

配置完后hadoop集群的基本环境已经配置完毕!保存修改后的镜像

docker commit保存镜像 输入docker images可以查看保存镜像。
在这里插入图片描述
配置集群:

我用1个节点作master,3个节点作slave。(博主只是配着好玩,真实环境请搭建单数节点集群),namenode与secondnamenode同一节点。

  1. 分别打开四个终端,每个终端界面运行刚刚修改后的镜像。分别表示Hadoop集群中的master,s01、s02和s03
docker run -it -h Master --name Master...

在这里插入图片描述
2. 输入 cat /etc/hosts查看当前容器的ip,如查看master IP为172.17.0.3

在这里插入图片描述
3. 编辑4个容器的hosts,把每一个主机和ip保存进去
在这里插入图片描述

  1. 在master主机输入ssh s01 等测试master能否正常连接slave(这里建议全部ssh一遍,避免后面启动hadoop要输入yes或者报警告)

  2. 到这里,还差最后一个配置就要完成hadoop集群配置了,打开master上的workers文件**(在hadoop安装目录下的etc/hadoop下)**,hadoop2版本这个文件叫做slaves,把原先的默认值localhost删掉,输入三个slave的主机名:s03,s02,s03.
    在这里插入图片描述

  3. 启动集群

在master终端输入start-all.sh启动集群(第一次启动,务必要format一下namenode,后面再启动就不需要format了)

格式化namenode

在这里插入图片描述

启动集群

这里直接启动集群可能会报错

在这里插入图片描述

在hadoop-env.sh添加一下内容

在这里插入图片描述

添加后:再次启动集群
在这里插入图片描述

在master节点输入jps

在这里插入图片描述

在slave节点输入jps

在这里插入图片描述

运行hadoop自带的词频统计的例子

在这里插入图片描述

查看结果

在这里插入图片描述

至此,基于docker的hadoop集群搭建成功。搭建过程中有遇到问题的同学,欢迎留言一起讨论!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:49:32  更:2022-05-01 15:52:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:45:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码