Docker搭建Hadoop集群

这篇具有很好参考价值的文章主要介绍了Docker搭建Hadoop集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.拉取centos镜像

2.基础镜像配置(基于centos构建hadoopbase镜像)

3.集群环境配置

1.创建3个容器

2.配置网络

3.配置主机和ip的映射关系

4.配置3个节点的免密登录

4.搭建hadoop集群

1.安装hadoop

2.修改配置文件

3.分发Hadoop及配置文件my_env.sh

5.启动集群


本章前提是已经在虚拟机中装了centos7系统,并且安装了docker,请参考其他章节进行前期准备

集群规划:

Docker搭建Hadoop集群

Docker搭建Hadoop集群

 常用命令:

查看当前存在的 Docker 容器:docker ps -a

查看当前存在的 Docker 镜像:docker images

删除 Docker 容器:docker rm [容器ID或名称]

删除 Docker 镜像:docker rmi [镜像ID或名称]

关闭已经启动的 Docker 容器:docker stop [容器ID或名称]

前期准备,安装pipework和网桥

安装pipework:

Docker搭建Hadoop集群

安装网桥:yum install -y bridge-utils

1.拉取centos镜像

输入命令:docker pull centos:7.5.1804

Docker搭建Hadoop集群

2.基础镜像配置(基于centos构建hadoopbase镜像)

1.创建docker-hadoop文件夹

Docker搭建Hadoop集群

2.上传jdk安装包

在文件夹下创建Dockerfile文件

并将配置粘贴进去

FROM centos:7.5.1804
#安装JDK
RUN mkdir -p /opt/software && mkdir -p /opt/service
ADD jdk-8u311-linux-x64.tar.gz /opt/service
#安装语言包
RUN yum -y install kde-l10n-Chinese glibc-common vim
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
RUN echo "LANG=zh_CN.UTF-8" >>/etc/locale.conf
#解决login环境变量失效问题
RUN touch /etc/profile.d/my_env.sh
RUN echo -e "export LC_ALL=zh_CN.UTF-8\nexport JAVA_HOME=/opt/service/jdk1.8.0_311\nexport PATH=\$PATH:\$JAVA_HOME/bin" >>/etc/profile.d/my_env.sh
#安装ssh服务
#更换国内阿里云yum源
RUN curl -o /etc/yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/Centos-Base.repo
RUN yum makecache
#安装sshd
RUN yum install -y openssh-server openssh-clients vim net-tools lrzsz
RUN sed -i '/^HostKey/'d /etc/ssh/sshd_config
RUN echo 'HostKey /etc/ssh/ssh_host_rsa_key'>>/etc/ssh/sshd_config
#生成 ssh-key
RUN ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
#更改root用户名登陆密码为
RUN echo 'root:123456' | chpasswd
#声明22端口
EXPOSE 22
#容器运行时启动sshd
RUN mkdir -p /opt
RUN echo '#!/bin/bash' >> /opt/run.sh
RUN echo '/usr/sbin/sshd -D'>> /opt/run.sh
RUN chmod +x /opt/run.sh
CMD ["/opt/run.sh"]

Docker搭建Hadoop集群

 执行命令构建镜像:docker build -t hadoopbase:1.0 ./

Docker搭建Hadoop集群

 执行命令查看镜像:docker images

Docker搭建Hadoop集群

3.集群环境配置

1.创建3个容器

执行命令进行容器创建:

docker create -it --name hadoop102 -h hadoop102 hadoopbase:1.0

docker create -it --name hadoop103 -h hadoop103 hadoopbase:1.0

docker create -it --name hadoop104 -h hadoop104 hadoopbase:1.0

如下图:

Docker搭建Hadoop集群

2.配置网络

执行以下命令,在/usr/local/bin/目录下创建docker.sh文件,并将配置信息粘贴进去

#!/bin/bash
#启动容器
docker start hadoop102
docker start hadoop103
docker start hadoop104
#搭建网桥
brctl addbr br0; \
ip link set dev br0 up; \
ip addr del 192.168.88.108/24 dev ens33; \
ip addr add 192.168.88.108/24 dev br0; \
brctl addif br0 ens33; \
ip route add default via 192.168.88.1 dev br0
#睡5秒钟
sleep 5
#给容器配置ip和网关
pipework br0 hadoop102 192.168.88.102/24@192.168.88.1
pipework br0 hadoop103 192.168.88.103/24@192.168.88.1
pipework br0 hadoop104 192.168.88.104/24@192.168.88.1

Docker搭建Hadoop集群

安装结束后执行docker.sh

执行完成后,通过XShell链接3个容器如下:

Docker搭建Hadoop集群

3.配置主机和ip的映射关系

在102下输入vim /etc/hosts,如下:

192.168.88.102 hadoop102
192.168.88.103 hadoop103
192.168.88.104 hadoop104

Docker搭建Hadoop集群

 修改后如下:

Docker搭建Hadoop集群

在103和104中重复相同的操作

4.配置3个节点的免密登录

在hadoop102中生成公钥和私钥,输入ssh-keygen -t rsa  然后回车回车回车即可

Docker搭建Hadoop集群

继续在hadoop102中输入ssh-copy-id hadoop102进行配置,回车,yes,输入密码即可

继续输入命令ssh-copy-id hadoop103进行配置

继续输入命令ssh-copy-id hadoop104进行配置

Docker搭建Hadoop集群

 Docker搭建Hadoop集群

 输入ssh hadoop103进行验证,成功登入,exit退回102

Docker搭建Hadoop集群

 验证成功后,相同的操作在Hadoop103和Hadoop104中进行配置

4.搭建hadoop集群

1.安装hadoop

将事先下载好的Hadoop3.1.3.tar.gz文件上传到hadoop102的/opt/software/目录下

解压并copy到/opt/service/这个目录下,如下:

Docker搭建Hadoop集群

将hadoop添加到环境变量中

Docker搭建Hadoop集群

 保存退出后执行source /etc/profile.d/my_env.sh

2.修改配置文件

修改core-site.xml文件

输入命令:cd /opt/service/hadoop-3.1.3/etc/hadoop/

进入该路径中,输入vim core-site.xml,将下面的配置信息编辑进去

<!-- 指定NameNode的地址 -->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/service/hadoop-3.1.3/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为root -->
<property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
</property>

Docker搭建Hadoop集群

修改hdfs-site.xml        输入vim hdfs-site.xml

将下面的配置信息编辑进去

<!-- nn web端访问地址-->
<property>
	<name>dfs.namenode.http-address</name>
	<value>hadoop102:9870</value>
</property>
<!-- 2nn web端访问地址-->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>hadoop104:9868</value>
</property>
<!-- 测试环境指定HDFS副本的数量1 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

Docker搭建Hadoop集群

修改yarn-site.xml

输入vim yarn-site.xml        把下面的配置信息编辑进去  保存退出

<!-- 指定MR走shuffle-->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
	<name>yarn.nodemanager.env-whitelist</name>
	<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- yarn容器允许分配的最大最小内存-->
<property>
	<name>yarn.scheduler.minimum-allocation-mb</name>
	<value>512</value>
</property>
<property>
	<name>yarn.scheduler.maximum-allocation-mb</name>
	<value>2048</value>
</property>
<!-- yarn容器允许管理的物理内存大小-->
<property>
	<name>yarn.nodemanager.resource.memory-mb</name>
	<value>4096</value>
</property>
<!-- 关闭yarn对虚拟内存的限制检查-->
<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
	<name>yarn.log.server.url</name>
	<value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天(7*24*60*60) -->
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>604800<</value>
</property>

Docker搭建Hadoop集群

修改mapred-site.xml文件

输入vim mapred-site.xml把下面的配置信息编辑进去

<!-- 指定MapReduce程序运行在Yarn 上 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
	<name>mapreduce.jobhistory.address</name>
	<value>hadoop102:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
	<name>mapreduce.jobhistory.webapp.address</name>
	<value>hadoop102:19888</value>
</property>

Docker搭建Hadoop集群

 修改workers

输入vim workers把localhost删掉,换成下面的配置信息

hadoop102
hadoop103
hadoop104

Docker搭建Hadoop集群

3.分发Hadoop及配置文件my_env.sh

执行命令

scp -r /opt/service/hadoop-3.1.3 hadoop103:/opt/service

scp -r /opt/service/hadoop-3.1.3 hadoop104:/opt/service

将hadoop分发到hadoop103和hadoop104中

执行命令

scp -r /etc/profile.d/my_env.sh hadoop103:/etc/profile.d

scp -r /etc/profile.d/my_env.sh hadoop104:/etc/profile.d

将my_env.sh分发到hadoop103和hadoop104中,分发完成后分别在103和104中执行

source /etc/profile.d/my_env.sh

5.启动集群

Docker搭建Hadoop集群

Docker搭建Hadoop集群

命令:

hdfs namenode -format

vim /opt/service/hadoop-3.1.3/etc/hadoop/hadoop-env.sh

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

配置完成后执行命令 start-dfs.sh  启动hdfs

将刚配置的文件分发到hadoop103和104中

scp -r /opt/service/hadoop-3.1.3/etc/hadoop/hadoop-env.sh hadoop103:/opt/service/hadoop-3.1.3/etc/hadoop

scp -r /opt/service/hadoop-3.1.3/etc/hadoop/hadoop-env.sh hadoop104:/opt/service/hadoop-3.1.3/etc/hadoop

然后在hadoop103上执行start-yarn.sh启动yarn

至此集群启动完成

查看web端hdfs,网址:http://192.168.88.102:9870/

Docker搭建Hadoop集群

查看yarn,网址 :http://192.168.88.103:8088/

Docker搭建Hadoop集群文章来源地址https://www.toymoban.com/news/detail-500506.html

到了这里,关于Docker搭建Hadoop集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据平台搭建——hadoop集群(基于CentOS-7)的搭建

    目录 总序 一、下载相关软件的压缩包 二、配置虚拟机上主节点相关设置 1、修改主机用户名 2、进行ip地址映射 3、配置虚拟机网络设置   三、解压并配置java、hadoop环境 1、解压jdk、hadoop压缩文件  2、配置jdk、hadoop环境 3、修改hadoop中的相关配置文件信息(最重要) 四、克隆

    2024年02月06日
    浏览(46)
  • Hadoop 之 Centos 7 搭建 Zookeeper 3.8.2 集群(六)

    阿里云镜像站 VmWare 安装 Centos 7 自动分区 开始安装 设置用户名密码 重启系统 Apache Zookeeper 下载 地址分配如下: 节点 地址 Host 主 192.168.1.100 zk1 从 192.168.1.101 zk2 从 192.168.1.102 zk3 zoo.cfg 配置说明 配置项 默认值 含义 tickTime 2000 通信心跳 initLimit 10 Leader 和 Follower 初始化容忍最多

    2024年02月15日
    浏览(50)
  • Docker搭建Hadoop集群

    目录 1.拉取centos镜像 2.基础镜像配置(基于centos构建hadoopbase镜像) 3.集群环境配置 1.创建3个容器 2.配置网络 3.配置主机和ip的映射关系 4.配置3个节点的免密登录 4.搭建hadoop集群 1.安装hadoop 2.修改配置文件 3.分发Hadoop及配置文件my_env.sh 5.启动集群 本章前提是已经在虚拟机中装了

    2024年02月11日
    浏览(40)
  • 搭建Hadoop3.x完全分布式集群(CentOS 9)

    虚拟机相关: VMware workstation 16:虚拟机 vmware_177981.zip CentOS Stream 9:虚拟机 CentOS-Stream-9-latest-x86_64-dvd1.iso Hadoop相关 jdk1.8:JDK jdk-8u261-linux-x64.tar.gz Hadoop 3.3.6:Hadoop Hadoop 3.3.6.tar.gz 辅助工具 putty:tools putty.exe mtputty:tools mtputty.exe winscp:tools WinSCP-6.3.1-Portable.zip 本文相关资源可以

    2024年04月14日
    浏览(50)
  • 使用docker搭建hadoop集群

    必应壁纸供图 (img-CBr9VbGk-1687962511910)]

    2024年02月11日
    浏览(39)
  • Centos7原生hadoop环境,搭建Impala集群和负载均衡配置

    Impala集群包含一个Catalog Server (Catalogd)、一个Statestore Server (Statestored) 和若干个Impala Daemon (Impalad)。Catalogd主要负责元数据的获取和DDL的执行,Statestored主要负责消息/元数据的广播,Impalad主要负责查询的接收和执行。 Impalad又可配置为coordinator only、 executor only 或coordinator and exe

    2024年02月04日
    浏览(55)
  • Hadoop集群搭建记录 | 云计算[CentOS7] | 伪分布式集群 Master运行WordCount

    本系列文章索引以及一些默认好的条件在 传送门 首先需要明确eclipse安装目录,然后将hadoop-eclipse-plugin_版本号.jar插件放在安装目录的dropins下 关于插件,可以通过博主上传到csdn的免费资源获取,链接 具体版本可以自己选择: 在eclipse界面中依次选择:Window→show view→other→

    2023年04月09日
    浏览(64)
  • 三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(一)

    这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例,已成功搭建完全分布式集群,并测试跑实例。 1.1安装完虚拟机发现没有sudo命令和hadoop用户执行命令失败 我在安装CentOS 7.6虚拟机后,我发现不能执行sudo命令,同时hadoop用户执行命令失败。

    2024年02月03日
    浏览(52)
  • docker搭建hadoop和hive集群

    安装docker教程 https://www.runoob.com/docker/centos-docker-install.html 只要在终端输入: 后出现如下图的内容就证明安装docker成功了 在终端输入: 在终端输入:sudo docker images,可以看到刚刚拉取的两个镜像 每次执行docker语句都要在前面加sudo,比较麻烦,直接将hadoop用户加入docker用户组

    2024年02月01日
    浏览(53)
  • Linux从零搭建Hadoop集群(CentOS7+hadoop 3.2.0+JDK1.8+Mapreduce完全分布式集群案例)

    和相关配置版本 :Linux CentOS Hadoop Java 版本: CentOS7 Hadoop3.2.0 JDK1.8 虚拟机参数信息内存3.2G、处理器2x2、内存50G ISO:CentOS-7-x86_64-DVD-2009.iso 基本主从思路: 先把基础的设置(SSH、JDK、Hadooop、环境变量、Hadoop和MapReduce配置信息)在一台虚拟机(master)上配好,通过

    2024年02月05日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包