HADOOP叢集在Linux平臺的搭建

jane_pop發表於2017-09-17
環境說明
Red Hat Enterprise Linux Server release 6.3 (Maipo) (64位)
IP:10.1.23.200
主機名: bigdata
--這裡搭建的是偽分散式叢集,namenode與datanode都在同一個機器上。
--如果使用32位Linux系統安裝hadoop-2.x.x那麼在開啟hadoop的過程中會報無法載入本地庫的錯誤,所以最好用64位的系統。


準備
所需安裝包:
jdk-8u111-linux-x64.rpm
hadoop-2.7.2.tar.gz


1.安裝jdk
執行:rpm -ivh jdk-8u111-linux-x64.rpm
檢查: java -version
新增/etc/profile新增環境變數: JAVA_HOME=/usr/java/jdk1.8.0_111
使其生效: source /etc/profile
驗證: echo $JAVA_HOME

2.設定ssh免密碼登入
執行:ssh-keygen -t rsa
在/root/.ssh下會生成私鑰檔案 id_rsa 以及 公鑰檔案 id_rsa.pub
建立authorized_keys :cat /root/.ssh/id_rsa.pub >> authorized_keys
修改authorized_keys 許可權: chmod 644 authorized_keys
驗證: ssh IP/hostname (第一次還是需要輸入root使用者密碼,之後將不再需要)

3.安裝hadoop
解壓:tar zxf hadoop-2.7.2.tar.gz
配置環境變數:在/etc/profile 中新增 $HADOOP_HOME 以及 $PATH
JAVA_HOME=/usr/java/jdk1.8.0_111
HADOOP_HOME=/opt/hadoop-2.7.2
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
使其生效: source /etc/profile
驗證: echo $HADOOP_HOME
echo $PATH

4.配置hadoop
配置檔案所在目錄:/opt/hadoop-2.7.2/etc/hadoop
需要修改的配置檔案如下:
core-site.xml
hdfs-site.xml
yarn-site.xml
mapred-site.xml
slaves

(1)core-site.xml --顧名思義,這是比較核心的檔案
<property>
    <name>fs.default.name</name>
    <value>hdfs://bigdata:9000</value>
  </property>
 
 <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop-2.7.2/current/tmp</value>
  </property>
 <property>
    <name>fs.trash.interval</name>
    <value>4320</value>
  </property>

其中,fs.default.name設定hdfs的訪問地址;
hadoop.tmp.dir設定hdfs的臨時目錄,注意,在配置完之後要先建立該目錄;fs.trash.interval設定hdfs的垃圾箱檢查的間隔時間,在fs.trash.interval回收週期內,檔案實際上是被移動到trash這個目錄下,並沒有被馬上刪除,只有當間隔週期到了,hdfs才會真正刪除這些資料。單位是分鐘,4320=60*24*3剛好是3天。


(2)hdfs-site.xml --配置hdfs分散式檔案系統的一些細節
<property>
   <name>dfs.namenode.name.dir</name>
   <value>/opt/hadoop-2.7.2/current/dfs/name</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>/opt/hadoop-2.7.2/current/data</value>
 </property>
 <property>
   <name>dfs.replication</name>
   <value>1</value>
 </property>
 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>dfs.permissions.superusergroup</name>
   <value>staff</value>
 </property>
 <property>
   <name>dfs.permissions.enabled</name>
   <value>false</value>
 </property>

dfs.namenode.name.dir 設定namenode的存放路徑;
dfs.datanode.data.dir設定datanode的存放路徑;
(因為現在搭建的是偽分散式的hadoop,所以在這裡同時配置了namenode與datanode配置項)
dfs.replication指定hdfs中每一個塊有幾個副本;
dfs.webhdfs.enabled指定是否啟用hdfs的web,設定為true啟用,讓後續的管理更便捷;
dfs.permissions.superusergroup指定hdfs的使用者組;
dfs.permissions.enabled是否開啟hdfs的許可權,這裡暫時不開啟。


(3)yarn-site.xml
<property>
   <name>yarn.resourcemanager.hostname</name>
   <value>bigdata</value>
 </property>
 <property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
 </property>
 <property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
 <property>
   <name>yarn.resourcemanager.address</name>
   <value>bigdata:18040</value>
 </property>
<property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>bigdata:18030</value>
 </property>
 <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>bigdata:18025</value>
 </property> <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>bigdata:18141</value>
 </property>
<property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>bigdata:18088</value>
 </property>
<property>
   <name>yarn.log-aggregation-enable</name>
   <value>true</value>
 </property>
<property>
   <name>yarn.log-aggregation.retain-seconds</name>
   <value>86400</value>
 </property>
<property>
   <name>yarn.log-aggregation.retain-check-interval-seconds</name>
   <value>86400</value>
 </property>
<property>
   <name>yarn.nodemanager.remote-app-log-dir</name>
   <value>/tmp/logs</value>
 </property>
<property>
   <name>yarn.nodemanager.remote-app-log-dir-suffix</name>
   <value>logs</value>
 </property>

yarn.resourcemanager.hostname指定執行resourcemaanger那臺伺服器的hostname;
yarn.nodemanager.aux-services配置nodemanager的附屬服務;
yarn.resourcemanager.address配置resourcemanager的埠;
yarn.resourcemanager.scheduler.address配置resourcemanager排程器的埠;
yarn.resourcemanager.resource-tracker.address配置resourcemanager 的resource-tracke的埠;
yarn.resourcemanager.admin.address配置resourcemanager 的admin埠;
yarn.resourcemanager.webapp.address配置resourcemanager web埠;
yarn.log-aggregation-enable指定是否啟動聚合日誌;
yarn.log-aggregation.retain-seconds指定聚合日誌保留時間;
yarn.log-aggregation.retain-check-interval-seconds指定聚合日誌保留的檢查時間間隔;
yarn.nodemanager.remote-app-log-dir 指定nodemanager遠端日誌儲存路徑;
yarn.nodemanager.remote-app-log-dir-suffix指定字首。

(4) mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapreduce.jobtracker.http.address</name>
  <value>bigdata:50030</value>
</property>
<property>
  <name>mapreduce.jobhisotry.address</name>
  <value>bigdata:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>bigdata:19888</value>
</property>
<property>
  <name>mapreduce.jobhistory.done-dir</name>
  <value>/jobhistory/done</value>
</property>
<property>
  <name>mapreduce.intermediate-done-dir</name>
  <value>/jobhisotry/done_intermediate</value>
</property>
<property>
  <name>mapreduce.job.ubertask.enable</name>
  <value>true</value>
</property>

mapreduce.framework.name指定mapreduce基於的框架是yarn;
mapreduce.jobtracker.http.address指定jobtracker伺服器的埠;
mapreduce.jobhisotry.address指定jobhistory server的埠;
mapreduce.jobhistory.webapp.address指定jobhistory的web埠;
mapreduce.jobhistory.done-dir指定jobhistory已完成日誌路徑;
mapreduce.intermediate-done-dir指定jobhistory中間完成日誌路徑;
mapreduce.job.ubertask.enable如果啟用該功能,會將一個application中的所有子task 在同一個jvm裡執行,達到jvm重用的目的。

(5)slaves --指定namenode的datanode在哪個伺服器上執行
bigdata

5.格式化hdfs
/opt/hadoop-2.7.2/etc/hadoop/hadoop-env.sh中配置JAVA_HOME:
JAVA_HOME=/usr/java/jdk1.8.0_111

指定格式化命令:
hdfs namenode -format
格式化成功標誌:INFO common.Storage: Storage directory /opt/hadoop-2.7.2/current/dfs/name has been successfully formatted

6.啟動hadoop叢集
/opt/hadoop-2.7.2/sbin/start-all.sh

7.驗證hadoop叢集
方式1:jps
NodeManager
SecondaryNameNode
ResourceManager
NameNode
DataNode

方式2:通過埠檢視
http://10.1.23.200:50070 --檢視hdfs使用情況
http://10.1.23.200:18088 --檢視yarn使用情況





















來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29800581/viewspace-2145076/,如需轉載,請註明出處,否則將追究法律責任。

相關文章