必赢亚洲手机app下载


下三个编制程序五年

高速上手Docker

必赢亚洲手机app用Docker在一台台式机电脑上搭建3个有所13个节点7种剧中人物的Hadoop集群(下)-搭建Hadoop集群

上篇:用Docker在一台台式机电脑上搭建一个兼有1二个节点7种剧中人物的Hadoop集群(上)-快捷上手Docker

上篇介绍了迅猛上手Docker部分,上边接着介绍搭建Hadoop集群部分。

 

必赢亚洲手机app,陆 、搭建Hadoop伪分布方式

我们先用前面成立的这一个容器来搭建Hadoop伪分布形式做测试,测试成功后再搭建完全分布式集群。

1.SSH
其一centos容器能够用作是2个可怜不难的系统,很多意义尚未,须求协调设置。
Hadoop须要SSH,但容器没有自带,必要大家设置。
①安装SSH

# yum -y install openssh-clients openssh-server

必赢亚洲手机app 1

必赢亚洲手机app 2
②生成3个key文件

# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
一路回车

必赢亚洲手机app 3

# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
一路回车

必赢亚洲手机app 4

# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
一路回车

必赢亚洲手机app 5
③启动sshd

# /usr/sbin/sshd

必赢亚洲手机app 6
④修改root密码
因为私下认可的密码不知道,大家再次安装一下。

# passwd root

必赢亚洲手机app 7
⑤安装ssh免密登录到本机

# ssh-keygen
一路回车

必赢亚洲手机app 8

# ssh-copy-id localhost
输入密码

必赢亚洲手机app 9

# ssh localhost

免密登录成功

必赢亚洲手机app 10

# exit

退回到刚刚的shell中。

必赢亚洲手机app 11

2.which
运作hadoop供给which命令,同样容器没有自带,须求大家设置。

# yum -y install which

必赢亚洲手机app 12

必赢亚洲手机app 13

3.文本复制
上面大家将早已提前准备好的JDK和Hadoop从宿主机上复制到容器中。注意,复制操作要在Docker宿主机上实行。

$ docker cp /home/chengyujia/jdk1.7.0_80/ pseudo-distributed:/root/
$ docker cp /home/chengyujia/hadoop-2.7.3/ pseudo-distributed:/root/

在容器中得以看看JDK和Hadoop已复制成功。

必赢亚洲手机app 14

4.计划环境变量并在容器运转时运营sshd
在/etc/profile.d中新建三个run.sh文件
在run.sh文件中写入下面6行内容:

export JAVA_HOME=/root/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/root/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
/usr/sbin/sshd

必赢亚洲手机app 15

用exit命令退出容器,重新起动并跻身容器,上边配置的环境变量会立竿见影,sshd也会运行。

必赢亚洲手机app 16

5.hadoop伪分布式配置
①配置hadoop-env.sh

将export JAVA_HOME=${JAVA_HOME}中的${JAVA_HOME}替换为具体路径,这里为export JAVA_HOME=/root/jdk1.7.0_80。

②配置core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

③配置hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

④配置mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

⑤配置yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

6.运维伪分布集群并运营wordcount示例程序
①备选测试数据
新建多个input文件夹,在那一个文件夹中新建1个test.txt文件,里面随便写点单词,然后将该公文多复制几份,笔者那边复制了5份。

必赢亚洲手机app 17
②格式化namenode

# hdfs namenode -format

③启动HDFS

# start-dfs.sh

④启动YARN

# start-yarn.sh

⑤查六柱预测关进度是或不是都运转

# jps

如有以下四个经过,表明运转成功。

DataNode
NodeManager
NameNode
SecondaryNameNode
ResourceManager

⑥将测试数据复制到HDFS中

# hdfs dfs -put /root/input /

必赢亚洲手机app 18
⑦周转wordcount示例程序

# hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output

⑧翻看输出结果

# hdfs dfs -cat /output/part-r-00000

必赢亚洲手机app 19
从截图能够见见输出正确。伪分布式测试甘休。

 

7、搭建Hadoop完全分布式集群

1.集群企划

1个NameNode节点
1个SecondaryNameNode节点
1个ResourceManager节点
1个JobHistory节点
5个Slave节点
1个Client节点

里面Slave节点包涵DataNode和NodeManager二种剧中人物。
Client节点是用来操作的节点,全部操作都尽量在这几个节点上实行。
以上共10个节点,7种角色。

2.将方面包车型客车伪分布式容器打包成镜像
辩论上,大家只要将上边的伪分布式容器复制10份,然后改改配置文件就行了。可是Docker容器不能够平素复制,须要先打包成镜像,然后用那几个镜像生成13个新的器皿。
命令如下:

$ docker commit -a "成宇佳" -m "Hadoop在centos上搭建的伪分布模式。" pseudo-distributed hadoop-centos:v1

-a 表示小编。
-m 表示对该镜像的说明。
pseudo-distributed 被打包容器的名称
hadoop-centos:v1 生成镜像的名号及版本
急需掌握的是,因为这些被打包的器皿是通过centos镜像成立的,所以由该容器打包成的新镜像也富含了centos镜像。

必赢亚洲手机app 20

3.创建网络

$ docker network create hadoop_nw

此间新建了二个叫hadoop_nw的互联网,后边将拾二个Hadoop节点容器都到场到该网络,就能相互间通讯了。而且不须求配备hosts文件,间接通过容器名称即可访问。

$ docker network ls

经过该命令可以查阅全数的网络,除了大家刚创设的hadoop_nw网络,别的都以设置Docker时自动生成的,在本文中并非管它们。

必赢亚洲手机app 21

4.用新变化的镜像成立十二个容器

$ docker run -itd --network hadoop_nw -h namenode --name namenode -p 50070:50070 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h secondarynamenode --name secondarynamenode hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h resourcemanager --name resourcemanager -p 8088:8088 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h jobhistory --name jobhistory -p 19888:19888 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h slave1 --name slave1 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h slave2 --name slave2 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h slave3 --name slave3 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h slave4 --name slave4 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h slave5 --name slave5 hadoop-centos:v1
$ docker run -itd --network hadoop_nw -h client --name client hadoop-centos:v1

-itd     表示打开终端但不进去
–network  表示参与到哪些互连网
-p      表示端口映射
从地点能够阅览namenode、resourcemanager和jobhistory那2个节点做了端口映射。端口映射的效益是将Docker宿主机的某部端口映射到容器的某部端口上,那样大家透过拜访Docker宿主机的那几个端口就能直接待上访问到对应的容器端口了。就如从外网访问内网中的某台机器一样。我们在前边通过浏览器查看集群消息的时候会用到。

必赢亚洲手机app 22

5.修改Hadoop配置文件
我们在client节点修改,然后复制到别的节点。
①配置core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/hadoop-2.7.3/data</value>
    </property>
</configuration>

②配置hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>secondarynamenode:50090</value>
    </property>
</configuration>

③配置mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>jobhistory:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>jobhistory:19888</value>
    </property>
</configuration>

④配置yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>resourcemanager</value>
    </property>
</configuration>

⑤配置slaves文件

slave1
slave2
slave3
slave4
slave5

 
6.计划节点间SSH免密登录
在client节点执行:

# ssh-copy-id namenode
# ssh-copy-id secondarynamenode
# ssh-copy-id resourcemanager
# ssh-copy-id jobhistory
# ssh-copy-id slave1
# ssh-copy-id slave2
# ssh-copy-id slave3
# ssh-copy-id slave4
# ssh-copy-id slave5

在resourcemanager节点执行:

# ssh-copy-id slave1
# ssh-copy-id slave2
# ssh-copy-id slave3
# ssh-copy-id slave4
# ssh-copy-id slave5

 
7.复制配置文件到全部节点
在client节点执行:

# scp -r $HADOOP_HOME/etc/hadoop namenode:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop secondarynamenode:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop resourcemanager:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop jobhistory:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop slave1:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop slave2:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop slave3:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop slave4:$HADOOP_HOME/etc
# scp -r $HADOOP_HOME/etc/hadoop slave5:$HADOOP_HOME/etc

8.启动Hadoop集群
在client节点执行:
①格式化namenode

# ssh namenode "hdfs namenode -format"

②启动HDFS集群

# start-dfs.sh

③启动YARN集群

# ssh resourcemanager "start-yarn.sh"

④启动JobHistory

# ssh jobhistory "mr-jobhistory-daemon.sh --config $HADOOP_CONF_DIR start historyserver"

 
9.在浏览器中查阅集群音信
鉴于钦命过相应容器的端口映射,笔者在自个儿的Windows上用浏览器访问Docker宿主机相应的端口就能访问到容器。

HDFS        http://Docker宿主机IP:50070/
YARN        http://Docker宿主机IP:8088/
jobhistory    http://Docker宿主机IP:19888/

从web上得以看出集群不奇怪:

必赢亚洲手机app 23
必赢亚洲手机app 24

必赢亚洲手机app 25

 

10.周转wordcount示例程序
①将测试数据复制到HDFS中

# hdfs dfs -put /root/input /

必赢亚洲手机app 26
②周转wordcount示例程序

# hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output

③查看输出结果

# hdfs dfs -cat /output/part-r-00000

必赢亚洲手机app 27
从截图能够看看输出结果正确。完全分布式集群搭建完成。

 

参考资料

写本文时参考了过多网上的材料,在此一并表示感激!

docker 安装hadoop
http://www.cnblogs.com/liqiu/p/4164406.html

docker安装hadoop集群
http://www.cnblogs.com/songfy/p/4716431.html

Docker搭建hadoop集群
http://www.cnblogs.com/liuyifeng/p/5383076.html

基于Docker快捷搭建多节点Hadoop集群
http://dockone.io/article/395

依据Docker搭建Hadoop集群之升级版
http://kiwenlau.com/2016/06/12/160612-hadoop-cluster-docker-update/

动用docker搭建hadoop分布式集群
http://blog.csdn.net/xu470438000/article/details/50512442

使用Docker在地点搭建Hadoop分布式集群
http://tashan10.com/yong-dockerda-jian-hadoopwei-fen-bu-shi-ji-qun/

Docker实战(十四):Docker安装Hadoop环境
http://blog.csdn.net/birdben/article/details/51724126

从 0 起先利用 Docker 火速搭建 Hadoop
集群环境

http://www.jianshu.com/p/b75f8bc9346d

正文甘休,多谢大家!

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图