1. 程式人生 > >Centos6.10搭建Hadoop三節點分布式

Centos6.10搭建Hadoop三節點分布式

密鑰 yar 一個 spa 下載 虛擬機 main 分布式配置 狀態

(一)安裝JDK

1. 下載JDK,解壓到相應的路徑

2. 修改 /etc/profile 文件(文本末尾添加),保存

sudo vi /etc/profile
# 配置 JAVA_HOME
export JAVA_HOME=/home/komean/workspace/JDK/jdk1.8.0_181
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

# 設置PATH
export PATH=${JAVA_HOME}/bin:$PATH:

3. 讓修改後的配置立即生效

# 讓修改的配置立即生效
source /etc/profile

技術分享圖片

(二)初步搭建Hadoop

1. 下載hadoop-2.7.7.tar.gz,解壓到相應的路徑下

2. 修改 hadoop-2.7.7/etc/hadoop 路徑下的:slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 、mapred-env.sh、hadoop-env.sh、yarn-env.sh

(1)文件 slaves,將作為 DataNode 的主機名寫入該文件,每行一個,默認為 localhost,所以在偽分布式配置時,節點即作為 NameNode 也作為 DataNode。分布式配置可以保留 localhost,也可以刪掉,讓 Master 節點僅作為 NameNode 使用。

localhost
slave1
slave2

(2)文件 core-site.xml 改為下面的配置:

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

(3)文件 hdfs-site.xml,dfs.replication 一般少於節點數,所以這裏 dfs.replication 的值還是設為 2:

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/komean/workspace/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/komean/workspace/hadoop/tmp/dfs/data</value>
        </property>
</configuration>

(4)文件 mapred-site.xml ,需要先拷貝mapred-site.xml.template

cp mapred-site.xml.template mapred-site.xml

然後mapred-site.xml配置修改如下:

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

(5)文件 yarn-site.xml

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

(6)mapred-env.shhadoop-env.shyarn-env.sh 文件 修改相應的JAVA_HOME

export JAVA_HOME=/home/komean/workspace/JDK/jdk1.8.0_181

3. 修改 /etc/profile 文件(文本末尾添加),保存

# set JAVA_HOME
export JAVA_HOME=/home/komean/workspace/JDK/jdk1.8.0_181
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

# set HADOOP_HOME
export HADOOP_HOME=/home/komean/workspace/hadoop/hadoop-2.7.7
export PATH=${JAVA_HOME}/bin:$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

讓修改後的配置立即生效

# 讓修改的配置立即生效
source /etc/profile

(三)克隆兩臺節點虛擬機

192.168.105.25 slave1
192.168.105.35 slave2

(1)配置IP (保持在一個網段下)(參照虛擬機中CentoOs配置ip且連網 第4點

(2)修改 /etc/hosts 文件 (註意:克隆的,第一個是localhost.localdomain,重復了,修改為localhost)

127.0.0.1       localhost       localhost.localdomain   localhost4      localhost4.localdomain4
::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6

192.168.105.15 master
192.168.105.25 slave1
192.168.105.35 slave2

(四)配置SSH無密登錄

1. 安裝SSH(所有節點都需要

# 安裝 
sudo yum install openssh-server
# 重啟
service sshd restart

2. 對master節點生成密鑰對(只是master節點運行 ssh-keygen -t rsa 後,不要輸入密碼,回車

# 生產密鑰
cd .ssh
ssh-keygen -t rsa
# 將公鑰id_rsa.pub追加到授權的key中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 修改authorized_keys的權限
chmod 600 ~/.ssh/authorized_keys

3. 將authorized_keys文件以及id_rsa文件用scp命令分別復制到其他2個節點(依舊是在master上操作)

scp ~/.ssh/authorized_keys [email protected]:~/.ssh
scp ~/.ssh/authorized_keys [email protected]:~/.ssh

4. 測試 ssh slave1 或者ssh slave2

技術分享圖片

(五)關閉防火墻(所有節點),在開啟 Hadoop 集群之前,需要關閉集群中每個節點的防火墻。有防火墻會導致 ping 得通但 telnet 端口不通,從而導致 DataNode 啟動了,但 Live datanodes 為 0 的情況。

關閉防火墻
sudo service iptables stop   # 關閉防火墻服務
sudo chkconfig iptables off  # 禁止防火墻開機自啟,就不用手動關閉了

(六)Hadoop初始化,啟動所有節點

1. 啟動節點(初始化別總用

# 進入"workspace/hadoop/hadoop-2.7.7" 路徑下
cd workspace/hadoop/hadoop-2.7.7

# Hadoop初始化(第一次)
# bin/hdfs namenode -format

# Hadoop啟動
sbin/start-all.sh

# 驗證
jps

技術分享圖片

2. 查看兩個從節點的情況

技術分享圖片 技術分享圖片

3. 查看節點信息 (或者通過Web 頁面看到查看 DataNode 和 NameNode 的狀態:http://master:50070/

hdfs dfsadmin -report

技術分享圖片

技術分享圖片

技術分享圖片

通過Web 頁面看到查看 DataNode 和 NameNode 的狀態:http://master:50070/

技術分享圖片

技術分享圖片

Centos6.10搭建Hadoop三節點分布式