centos6.5搭建Hadoop叢集
阿新 • • 發佈:2018-12-12
centos6.5搭建Hadoop叢集
準備工作
CentOS-6.5-x86_64-bin-DVD1.iso
下載地址:http://vault.centos.org/6.5/isos/x86_64/
linux編譯後的Hadoop安裝包: hadoop-2.7.4.tar.gz
連結:https://pan.baidu.com/s/1SxV9aG6Njknw4IM-ZdmDGw 提取碼:34np
jdk: jdk-8u65-linux-x64.tar.gz
連結:https://pan.baidu.com/s/1Okg_edKw3KuMOhIFRF2zeg 提取碼:cy4k
建立三個虛擬機器
通過ifconfig | more 命令檢視各個虛擬機器的ip地址
ifconfig | more
修改主機名和IP的對映關係
在三臺虛擬機器上都修改hosts檔案
vi /etc/hosts
192.168.111.128 node-1
192.168.111.129 node-2
192.168.111.130 node-3
關閉各個虛擬機器的防火牆
#檢視防火牆狀態
service iptables status
#關閉防火牆
service iptables stop
#檢視防火牆開機啟動狀態
chkconfig iptables --list
#關閉防火牆開機啟動
chkconfig iptables off
配置ssh免登陸
在node-1虛擬機器上輸入如下命令
#生成ssh免登陸金鑰
ssh-keygen -t rsa (回車)
#將公鑰拷貝到要免密登陸的目標機器上(包括本機)
ssh-copy-id node-1
ssh-copy-id node-2
ssh-copy-id node-3
同步叢集時間
常用的手動進行時間的同步
date -s "2017-03-03 03:03:03"
或者網路同步:
yum install ntpdate
ntpdate cn.pool.ntp.org
安裝步驟
只需要在node-1上安裝,然後發到其他的機器上即可
安裝jdk1.8
#先解除安裝open-jdk
java -version
rpm -qa | grep java
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
#上傳、解壓tar包
tar -zxvf jdk-8u65-linux-x64.tar.gz
#配置環境變數
vi /etc/profile
#結尾新增
export JAVA_HOME=/root/apps/jdk1.8.0_65 #jdk的安裝目錄
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#重新整理配置
source /etc/profile
#檢查是否安裝成功
java -version
安裝hadoop2.7.4
#上傳編譯的Hadoop安裝包
tar -zxvf hadoop-2.7.4.tar.gz
修改配置
配置Hadoop檔案
hadoop2.x的配置檔案目錄:$HADOOP_HOME/etc/hadoop
修改hadoop-env.sh
vi hadoop-env.sh
#寫入jdk的安裝位置
export JAVA_HOME=/root/apps/jdk1.8.0_65
修改core-site.xml
vi core-site.xml
#在<configuration>中加入如下配置
<!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node-1:9000</value>
</property>
<!-- 指定hadoop執行時產生檔案的儲存目錄,預設/tmp/hadoop-${user.name} -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/Hdata</value>
</property>
執行產生檔案只需要在namenode,也就是master上配置,不需要創建出Hdata資料夾,在初始化Hadoop時會自動創建出來
修改hdfs-site.xml
vi hdfs-site.xml
#在<configuration>中加入如下配置
<!-- 指定HDFS副本的數量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定老大namenode的二當家 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node-2:50090</value>
</property>
修改mapred-site.xml
#先將mapred-site.xml.template重新命名
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
#在<configuration>中加入如下配置
<!-- 指定mapreduce執行時框架,這裡指定在yarn上,預設是local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改yarn-site.xml
vi yarn-site.xml
#在<configuration>中加入如下配置
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-1</value>
</property>
<!-- NodeManager上執行的附屬服務。需配置成mapreduce_shuffle,才可執行MapReduce程式預設值:"" -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
修改slaves
vi slaves
#先刪除原來的localhost 再新增三臺機器的主機名
node-1
node-2
node-3
將hadoop新增到環境變數
vim /etc/proflie
export HADOOP_HOME=/root/apps/hadoop-2.7.4 #hadoop的安裝目錄
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
將jdk hadoop 環境配置檔案傳送到其他機器
scp -r /root/apps//root/apps/jdk1.8.0_65/ [email protected]:/root/apps/
scp -r /root/apps//root/apps/jdk1.8.0_65/ [email protected]:/root/apps/
scp -r /root/apps/hadoop-2.7.4/ [email protected]:/root/apps/
scp -r /root/apps/hadoop-2.7.4/ [email protected]:/root/apps/
scp -r /etc/profile/ [email protected]:/etc/
scp -r /etc/profile/ [email protected]:/etc/
#所有機器重新整理環境配置
source /etc/profile/
格式化namenode
只需要在master機器上進行格式化!!!!!!
hdfs namenode -format 或者 hadoop namenode -format
如果出錯需要檢視錯誤並對照如上的配置進行修改,再進行格式化
啟動hadoop並測試
#hadoop2.x的啟動檔案目錄:$HADOOP_HOME/sbin/
#先啟動HDFS
start-dfs.sh
#再啟動YARN
start-yarn.sh
或者
start-all.sh
stop-all.sh
同時還需要啟動歷史服務
mr-jobhistory-daemon.sh start historyserver
驗證是否安裝成功
#輸入jps命令 檢視node-1
jps
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
管理頁面(使用node-1的地址訪問)
http://192.168.111.128:50070 (HDFS管理介面)
http://192.168.111.128:8088 (MR管理介面)
執行Hadoop 自帶的mapreduce 程式example
cd hadoop-2.7.4/share/hadoop/mapreduce/
#使用如下命令執行計算得出圓周率
hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 20 50