系统:Centos 7,内核版本3.10

本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件。

一、宿主机准备工作

0、宿主机(Centos7)安装Java(非必须,这里是为了方便搭建用于调试的伪分布式环境)

1、宿主机安装Docker并启动Docker服务

  • 安装:
yum install -y docker
  • 启动:
service docker start

二、制作Hadoop镜像

(本文制作的镜像文件已经上传,如果直接使用制作好的镜像,可以忽略本步,直接跳转至步骤三)

1、从官方下载Centos镜像

docker pull centos

下载后查看镜像 docker images 可以看到刚刚拉取的Centos镜像

2、为镜像安装Hadoop

1)启动centos容器

docker run -it centos

2)容器内安装java

  • /usr下创建java文件夹,并将java安装包在java文件下解压
tar -zxvf jdk-8u192-linux-x64.tar.gz

  • 解压后文件夹改名(非必需)
mv jdk1..0_192 jdk1.

  • 配置java环境变量  vi ~/.bashrc ,添加内容,保存后退出
export JAVA_HOME=/usr/java/jdk1.
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib export PATH=$PATH:${JAVA_HOME}/bin

使环境变量生效 source ~/.bashrc

验证安装结果 java -version

这里注意,因为是在容器中安装,修改的是~/.bashrc而非我们使用更多的/etc/profile,否则再次启动容器的时候会环境变量会失效。

3)容器内安装hadoop

  • 在容器的/usr/local目录下解压,并修改文件夹名为hadoop
tar -zxvf hadoop-2.7..tar.gz
mv hadoop-2.7..tar.gz hadoop
  • 设置Hadoop的java-home

进入hadoop安装目录(以下操作均为hadoop的安装目录的相对路径)

cd /usr/local/hadoop/

执行  vi etc/hadoop/hadoop-env.sh

aaarticlea/png;base64,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" alt="" />

在文件末尾添加jdk目录(这里=后面添加的是你的jdk目录)

export JAVA_HOME=/usr/java/jdk1.
aaarticlea/png;base64,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" alt="" />
  • 检查安装的hadoop是否可用 ./bin/hadoop version (注意要在hadoop的安装目录下执行)
aaarticlea/png;base64,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" alt="" />
  • 配置hadoop环境变量

前面在验证hadoop命令的时候需要在hadoop的安装目录下执行./bin/hadoop,为了方便在任意地方执行hadoop命令,配置hadoop的全局环境变量,与java一样,修改~/.bashrc文件

执行  vi ~/.bashrc

添加内容

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

(P.S. “HADOOP_HOME=”后面配置hadoop安装目录;

这里的PATH变量是java和hadoop结合的;

这样配置之后,可以在任意位置执行hadoop命令)

source ~/.bashrc 使环境变量生效

hadoop version 验证变量生效

4)为容器安装辅助程序

下面安装的程序都是在制作镜像过程中需要用的工具或踩到的坑,提前装好避免一些奇怪问题

  • 配置时间同步服务器

  安装ntpdate yum install -y ntpdate

  配置时间同步服务器

ntpdate ntp1.aliyun.com
ntp1.aliyun.com为时间同步服务器地址,百度可以查到可用服务器
  • 安装ssh

  检查是否已经默认安装SSHClient和SSH Server

rpm -qa | grep ssh

  出现如下结果表示已经安装

aaarticlea/png;base64,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" alt="" />
  如未安装,使用如下命令安装
yum install openssh-clients
yum install openssh-server

  测试ssh是否可用

ssh localhost

    测试之后就是通过ssh登陆了本机,输入 exit 退回到普通终端登陆。

  • 安装rsync
yum -y install rsync
  • 安装dbus
yum -y install dbus

5)将容器制作成镜像

宿主机打开新终端,注意打包镜像操作都是在宿主机内做的,(即你安装Docker的那台机器)。

  • 查看容器id

在宿主机内查看刚刚使用的容器ID

docker ps

  • 打包
docker commit -m "centos7 with hadoop" c0905da23733 centos7/hadoop

命令说明:

docker commit [OPTIONS] 容器ID [镜像[:版本标签]]
  -m 提交说明
  centos7/hadoop 镜像名称,如果不叫版本标签,默认为latest
  • 查看打包结果 docker images

  • 提交镜像

完成上述后已经交将容器打包为本地镜像,下面将本地镜像提交到远程仓库,这里上传到阿里云的镜像仓库,需要事先注册阿里云账号。

阿里云创建仓库https://cr.console.aliyun.com/

仓库创建成功后打开仓库可以看到操作指南,在宿主机终端按照指南进行后续操作

终端登陆

docker login --username=魔女小豚 registry.cn-beijing.aliyuncs.com

推送

$ sudo docker login --username=魔女小豚 registry.cn-beijing.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop:[镜像版本号]
$ sudo docker push registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop:[镜像版本号]

根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

三、Hadoop集群配置

1、从registry中拉取镜像

$ sudo docker pull registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop

2、启动镜像

按照下述方式,根据需要的节点数启动相应数量的容器(注意为每个容器指定不同的容器名和主机名),这里启动3个容器作为示例

$ docker run -d --name hadoop0 -h hadoop0 -p 50070:50070 --privileged=true registry.cn-beijing.aliyuncs.com/jing-studio/centos7-hadoop /usr/sbin/init

其中,-d指定容器启动的终端在后台执行(在需要使用的容器终端的时候再显示进入容器,如3-3所述),--name hadoop0 指定容器名称,-h hadoop0 指定容器的主机名(这里千万注意,主机名不要包含下划线,对,就是它"_",不要包含下划线、不要包含下划线!!!否则不能启动集群。当初因为这问题采坑好久,都是泪),--privileged=true 指定容器获得全部权限, registry.cn-……指定镜像, /usr/sbin/init指定运行终端

需要开放的端口:namenode开放50070,9000,sourcemanager开放8088

检查容器是否启动 $ docker ps

3、进入容器,查看容器ip

$ docker exec -it hadoop0 /bin/bash

其中,-it表明显式打开容器终端,

查看全部容器ip

$ ip addr

建议使用3-2启动镜像以及3-3进入容器的方式运行,在开始搭建的时候各种采坑,才找到这种合适的方式,在容器使用过程中不会出现系统服务无法启动的情况。

4、配置主机映射

$ vi /etc/hosts

将每个容器的Ip地址和主机名添加到hosts文件中

注意集群中每个节点都需要配置上述主机映射。

5、为各个集群节点配置彼此间的ssh免密登陆

  • 生成本机公钥私钥
cd ~/.ssh/          #若没有~/.ssh/目录,先执行一次ssh localhost
ssh-keygen -t rsa      # 会有提示,都按回车就可以,产生公钥私钥

在~/.ssh目录下生成密钥文件,id_dsa: 为私钥;id_dsa.pub: 为公钥

  • 彼此发送密钥
ssh-copy-id ha_slave1

注意要在每个集群节点上生成密钥、并为其他全部集群节点发送密钥,即在master上执行一次生成密钥,然后执行两次发送密钥,分别发送给slave1 、slave2;然后再在slave1上生成密钥发送密钥给其他节点,再在slave2上再次执行。

5.1 关闭防火墙

service iptables stop

完成上述准备工作后对hadoop集群进行配置,在配置之前,考虑集群中节点规划,即,哪些节点作为HDFS的namenode、datanode、secnamenode,哪些节点作为yarn的sourcemanager、nodemanager。本文示例集群规划如下:

  hdfs yarn
master namenoder + datanode nodemanager
slave1  datanode sourcemanager + nodemanger
slave2 secnamenode + datanode nodemanger

6、选择一个节点,进入节点,进行HDFS配置(注意进入到hadoop安装目录,在我的镜像里是 /usr/local/hadoop )

  • 配置core-site.xml文件,指定HDFS主节点
vi etc/hadoop/core-site.xml

  添加配置内容

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://had0:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/data/hadoopdata</value>
</property> </configuration>

指定hdfs主节点,并指定临时文件目录,存储hadoop运行过程中产生的文件的目录(注意一定配置在有权限的目录下)

  • 配置hdfs-site.xml
vi etc/hadoop/hdfs-site.xml

添加内容

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/data/hadoopdata/name</value>
</property>
  <!--配置存储namenode数据的目录-->
  <property>
<name>dfs.datanode.data.dir</name>
<value>/home/data/hadoopdata/data</value>
</property>
  <!--配置存储datanode数据的目录-->
  <property>
<name>dfs.replication</name>
<value></value>
</property>
  <!--配置部分数量-->
  <property>
    <name>dfs.secondary.http.address</name>
    <value>had2:</value>
  </property>
  <!--配置第二名称节点 --> </configuration>

7、YARN配置(依然在上述选择的节点进行配置)

  • 配置yarn-site.xml
vi etc/hadoop/yarn-site.xml

添加内容

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
<!--配置yarn主节点--> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--配置执行的计算框架--> </configuration>
  • 配置mapred-site.xml
复制自带的临时文件,并对文件进行编辑
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vi etc/hadoop/mapred-site.xml

添加内容

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
  <!--配置mapreduce任务所在的资源调度平台-->
</configuration>
  • 配置slaves
vi etc/hadoop/slaves

添加内容

master
slave1
slave2

8、将HDFS和YARN配置发送到全部节点

需要给集群中全部节点进行3-5、3-6的配置操作,在一个节点上配置完成后,通过远程发送配置文件,对其他节点进行配置。上述配置文件都在"hadoop安装目录/etc”下,方便起见,通过将etc文件夹发送到其他节点容器来完成配置。注意,此操作也要在hadoop安装目录下执行;通过此操作要把配置文件发送到所有集群节点上。

scp -r etc ha_slave1:/usr/local/hadoop/

四、启动HDFS

  • 初始化NameNode的元数据目录,格式化文件系统

此操作在namenode节点上初始化一个全新的namenode的元数据存储目录(为hdfs-site.xml中配置的namenode数据的目录),生成记录元数据的文件fsimage,生成集群的相关标识,必须在HDFS的NameNode节点执行操作。

hadoop namenode -format

上图表示格式化成功

  • 启动HDFS,可以在任意节点启动
start-dfs.sh
  • 验证启动结果(可以在每个节点上都进行验证)
jps

可以看到当前节点上已经启动了DataNode和NameNode(节点上启动哪些进程取决于集群规划)

补充:关于HDFS的格式化,如果格式化成功,则只能格式化一次,如果HDFS启动后需要重新格式化,格式化的步骤:

1)删除namenode数据目录、datanode数据目录(在配置文件中指定的路径)

2)重新格式化

datanode 的想过数据信息在启动hdfs的时候生成,两个文件(version)中的cluster ID相同时候才认为节点属于同一集群,datanode才能受namenode管理,如果没有删除目录就去进行格式化,会造成节点不属于同一集群的问题。

五、启动YARN

  • 必须在SourceManager上启动
start-yarn.sh
  • 验证结果
jps

由于前面启动了HDFS,所以此时节点上可以看到hdfs和yarn的进程。

至此,使用Docker进行hadoop完全分布式搭建的工作完成。

datanode可以在线扩容,只需要把一个datanode的namenode配置成当前使用的namenode,然后启动。如果想删除datanode,则需要重新格式化namenode节点。

Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)的更多相关文章

  1. Apache Hadoop 2.9.2 完全分布式部署

    Apache Hadoop 2.9.2 完全分布式部署(HDFS) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.操作平台 [root@node101.y ...

  2. Hadoop生态圈-Kafka的完全分布式部署

    Hadoop生态圈-Kafka的完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要内容就是搭建Kafka完全分布式,它是在kafka本地模式(https:/ ...

  3. 完全分布式部署Hadoop

    完全分布式部署 Hadoop 分析: 1)准备 3 台客户机(关闭防火墙.静态 ip.主机名称) 2)安装 jdk 3)配置环境变量 4)安装 hadoop 5)配置环境变量 6)安装 ssh 7)配 ...

  4. 阿里分布式事务seata入门(采坑)

    1. 阿里分布式事务seata入门(采坑) 1.1. 前言 seata是feascar改名而来,这是阿里在19年年初开源出来的分布式事务框架,当初刚出来的时候就想研究下了,一直拖到了现在,目前是0.8 ...

  5. Hadoop环境搭建 (伪分布式搭建)

    一,Hadoop版本下载 建议下载:Hadoop2.5.0 (虽然是老版本,但是在企业级别中运用非常稳定,新版本虽然添加了些小功能但是版本稳定性有带与考核) 1.下载地址: hadoop.apache ...

  6. hadoop环境搭建:完全分布式

    目录 1.硬件配置 2.软件版本 3.准备工作 3.1.建立虚拟机,网络设置为桥接模式 3.2.更改主机名 3.3.绑定主机名和IP,建立各主机间的联系 3.4.关闭防火墙 3.5.配置宿主机host ...

  7. 从零搭建docker+jenkins 自动化部署环境

    从零搭建docker+jenkins+node.js自动化部署环境 本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker ...

  8. Hadoop环境搭建|第三篇:spark环境搭建

    一.环境搭建 1.1.上传spark安装包 创建文件夹用于存放spark安装文件命令:mkdir spark 1.2.解压spark安装包 命令:tar -zxvf spark-2.1.0-bin-h ...

  9. Docker Swarm 集群环境搭建及弹性服务部署

    上一篇文章<Docker Swarm 集群管理利器核心概念扫盲>中我们把 Swarm 重要的概念性知识给大家讲解了一波,理论完事就该实战了,这篇文章带大家从零开始,搭建 Docker Sw ...

随机推荐

  1. numpy和matploptlib

    numpy Numpy介绍 编辑 一个用python实现的科学计算,包括:1.一个强大的N维数组对象Array:2.比较成熟的(广播)函数库:3.用于整合C/C++和Fortran代码的工具包:4.实 ...

  2. linux删除文件后,空间未释放的一种情况,使用lsof查看

    linux某个目录空间快满了,删除了若干的文件后,使用df -h显示还是快满的,但是df -h *显示的总的文件大小又没那么大. 某个进程正在使用删除的文件,导致删除后,空间仍然不能释放. 查看rm掉 ...

  3. qnx i2c 学习 二

    File still Updating.... many errors have been FOUND , need big change  qnx i2c structure  --written ...

  4. 【算法习题】数组中任意2个(3个)数的和为sum的组合

    题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...

  5. Listen and Write 18th Feb 2019

    Weighted blanket has becomes very popular in many homes. they claim it can provide better sleep and ...

  6. 使用nginx实现一个主机部署多域名指向不同docker项目

     1,安装 docker yum install docker 使用Docker 中国加速器 vim /etc/docker/daemon.json 添加下面代码 { "registry-m ...

  7. Python通过百度Ai识别图片中的文字

    版本:python3.7 工作中有需要识别图片中的汗字,查看了半天大神们的博客,但没找到完全可以用的源码,经过自己的实践,以下源码可以实现: 创建应用 首先你需要登录百度AI,选择文字识别,创建一个应 ...

  8. VS2017 ASP.NET MVC 5.0 开部署问题汇总

    1[SqlException (0x80131904): 拒绝了对对象 '****' (数据库 '***',架构 'dbo')的 EXECUTE 权限.] “/”应用程序中的服务器错误. SQL 20 ...

  9. mysql双机热备的实现

    转:http://blog.csdn.net/qq394829044/article/details/53203645 Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好 ...

  10. JPA相关知识

    这篇文章是摘自Patrick Linskey的一篇文章,主要是关于JPA相关内容的问答,相信JPA面试会碰到很多这里面的问题 问题:EJB专家团队是如何摆脱事务描述符的? 回答:在会话bean和消息驱 ...