Docker之路(一)Hadoop集羣安裝

Docker安裝Hadoop集羣java

1、單機hadoop
首先進入咱們已有容器:(docker exec -it NAMES(名字) COMMAND ‘/bin/bash’)
mkdir /usr/hadoop
Cd /usr/hadoop
解壓上傳來的hadoop,或wget獲取http://mirrors.sonic.net/apache/hadoop/common/hadoop-2.8.3/hadoop-2.8.3.tar.gz
命令:tar xvzf 壓縮包(小編通常解壓完直接刪除壓縮包)node

準備工做已完成,開始搭建hadoop

編輯 .bashrc
Vi ~/.bashrc
加入以下內容:
1.# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop
 
2.# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
刷新一下:
Source ~/.bashrclinux

此處有坑:
找不到which的話執行:yum install whichdocker

建立三個文件:
先進cd /usr/local/hadoop/hadoop-2.7.2
mkdir tmp做爲Hadoop的臨時目錄
mkdir datanode做爲NameNode的存放目錄
mkdir namenode做爲DataNode的存放目錄apache

配置文件:cd /usr/local/hadoop/hadoop-2.7.2/etc/hadoopbash

三個文件:
1.core-site.xml配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.2/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<final>true</final>
</configuration>ssh

2.hdfs-site.xml配置:(一些配置爲了集羣而準備)
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.2/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.2/datanode</value>
<final>true</final>
</property>
</configuration>
3.mapred-site.xml配置:(有個mapred-site.xml.template文件,更改成mapred-site.xml)
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>ide


下面就指定JAVA_HOME環境變量:
使用命令vi hadoop-env.sh,添加以下配置:oop

The java implementation to use.

export JAVA_HOME=/usr/java/jdk1.8.0_141

接着格式化 namenode
執行命令:hadoop namenode -format
此刻hadoop配置就完成了。.net

2、 安裝SSH:
使用yum: yum install passwd openssl openssh-server -y
由於咱們是docker操做,他並不會自動啓動,因此咱們去給他加到。Bashrc中

執行命令添加以下內容:Vi ~/.bashrc
#autorun
/usr/sbin/sshd
執行命令生成祕鑰公鑰:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa
cd ~/.ssh/
cat id_dsa.pub >> authorized_keys

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

補:
無密登陸問題:bash: ssh: command not found
解決辦法:yum -y install openssh-clients

到此位置咱們保存容器爲新的鏡像便可:
docker commit -m "hadoop install" 61c9cf8da12f linux:hadoop
此時咱們已經裝好了一個單機版的hadoop鏡像

檢測ssh
命令1./usr/sbin/sshd
命令2.ssh
Docker之路(一)Hadoop集羣安裝

3、 docker hadoop集羣

Docker之路(一)Hadoop集羣安裝

切記: hostname、hosts配置在容器內修改了,只能在本次容器生命週期內有效。若是容器退出了,從新啓動,這兩個配置將被還原。且這兩個配置沒法經過commit命令寫入鏡像。

三個容器啓動後分別配置hosts
vi /etc/hosts 注意修改ip地址:

172.17.0.2      master
172.17.0.3      slave1
172.17.0.4      slave2

啓動sshd  /usr/sbin/sshd

配置slaves:vi /usr/local/hadoop/hadoop-2.7.2/etc/hadoop/slaves
將:master
slave1
slave2
添加進去以後:

分別啓動Hadoop:(進入/usr/local/hadoop/hadoop-2.7.2/sbin)
            start-all.sh
分別查看--》節點上執行jps命令

Docker之路(一)Hadoop集羣安裝

master以下:
Docker之路(一)Hadoop集羣安裝

slave1以下:

Docker之路(一)Hadoop集羣安裝

slave2以下:

Docker之路(一)Hadoop集羣安裝

還能夠經過Web頁面看到查看DataNode和NameNode的狀態:http://IP:50070/

大功告成,docker—hadoop集羣搭建完畢。

相關文章
相關標籤/搜索