Centos6.10搭建Hadoop三節點分布式
(一)安裝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.sh、hadoop-env.sh、yarn-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三節點分布式