centos7下完全式hadoop集羣搭建

初入數倉坑,搭建hadoop集羣折騰了幾天險些讓我崩潰,好歹是讓我看到了結果:
這裏寫圖片描述

當然雖然過程坑了點耗費了相當心力,但好處是對配置的理解更明白了些,當然流程更是爛熟於心了。下面就開始總結吧:免密通信就不提了需要的話可以直接戳http://blog.csdn.net/qq_29186199/article/details/78428498
首先說下環境,我是在centos7下面安裝的二進制hadoop包(上鍊接:http://hadoop.apache.org/releases.html),如下圖:
這裏寫圖片描述

1、我將所需要的文件解壓到了/usr/local/software(該文件是我自己創建放下載的軟件包),解壓後放到local目錄下並更名Hadoop,jdk8,如圖:
這裏寫圖片描述

2、接下來配置環境變量(知道肯定有人手懶,貼碼),如下圖:
(只看java與hadoop環境變量配置)
這裏寫圖片描述

#java
export JAVA_HOME=/usr/local/jdk8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#hadoop
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib/native
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

寫入配置信息之後別忘了source /etc/profile使配置生效。

3、nano /etc/hosts 進入該文件編輯主節點與子節點信息,我的節點信息如下:
這裏寫圖片描述
事實上,這裏只要寫主機IP或者主機名(hostname可以查看主機名,vi /etc/hostname可以永久修改主機名,其他方法都更改的話這個方法優先級別最高,自測歡迎指正)其一就可以,都寫的話也不錯。

4、接下來就是配置Hadoop文件了,我用的是root賬戶所以各文件無所謂權限不夠的問題了(自己玩的嘛/尷尬笑),首先進入Hadoop主目錄(我的cd /usr/local/hadoop):
創建新文件tmp和hdfs以及hdfs下面的name和data文件夾上命令:

mkdir {tem,hdfs} , cd hdfs , mkdir {name,data}

上圖(總結嘛怎麼可能是實時的):
這裏寫圖片描述

5、接下來配置文件,根據個人需要主要有以下幾個,不敲了上圖:
這裏寫圖片描述
接下來一個一個來:

vi core-site.xml

這裏寫圖片描述

<configuration>
<property>
 <final>true</final>
         <!--默認文件系統的名字,URL形式-->
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.233.128:9000</value>
</property>
<property>
    <!--Hadoop臨時目錄,其他目錄會基於此目錄,是本地目錄-->
    <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
         <final>true</final>
</property>
<property>
    <!--讀寫文件時使用的緩存大小,大小應該是內存Page的倍數-->
    <name>io.file.buffer.size</name>
        <value>131072</value>
</property>
</configuration>
vi hdfs-site.xml

這裏寫圖片描述

<configuration>
<property>
<!--本地磁盤目錄,用於NameNode存放fsimage文件,可以設置多個,一個壞了用另一個,但是如果設置了HA建議設置一個-->
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<!--本地磁盤目錄,HDFS存儲數據塊的地方-->
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/data</value>
</property>
<property>
<!--數據塊副本-->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<!--SecondNameNode的http服務地址。端口爲0的話服務隨機選擇一個空閒端口,使用了HA的話就不再使用SecondNameNode-->
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.233.128:9001</value>
</property>
<property>
<!--HDFS服務通信的RPC地址,該參數必須設置,如果設置,備份結點,數據結點和其他服務將會連接到指定地址-->
<name>dfs.namenode.servicerpc-address</name>
<value>192.168.233.128:10000</value>
</property>
<property>
<!--指定是否在NameNode和DataNode上面指定WebHDFS功能-->
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
vi mapred.xml(MapReduce的配置文件)

這裏寫圖片描述

<configuration>
<property>
<!--設置MapReduce執行框架爲yarn-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--MapReduce歷史服務器地址-->
<name>mapreduce.jobhistory.address</name>
<value>192.168.233.128:10020</value>
</property>
<property>
<!--MapReduce歷史服務器wen ui地址-->
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.233.128:19888</value>
</property>
</configuration>
vi yarn-site.xml

這裏寫圖片描述

<configuration>
<property>
<!--Nodemanager上面運行的附屬服務,需要配置成mapreduce_shuffle纔可以運行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--對應參考yarn.nodemanager.aux-services-->
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<!--ResourceManager對客戶端暴露的地址。客戶端向RM提交應用程序,殺死應用程序等-->
<name>yarn.resourcemanager.address</name>
<value>192.168.233.128:8032</value>
</property>
<property>
<!--調度器地址,ResourceManager向ApplicationManager暴露的地址,ApplicationManager通過該地址向RM申請、釋放資源-->
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.233.128:8030</value>
</property>
<property>
<!--RM向NM暴露的地址,NM通過該地址向NM彙報心跳,領取任務-->
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.233.128:8031</value>
</property>
<property>
<!--RM對管理員暴露的地址,管理員通過該地址向RM發送管理命令-->
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.233.128:8033</value>
</property>
<property>
<!--RM對外WEB UI地址,用戶可通過該地址查看集羣各類信息-->
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.233.128:8088</value>
</property>
<property>
<!--NM總的可用物理內存,不能小於1024.一旦設置不可在運行中動態修改-->
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</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>
</configuration>
vi hadoop-env.sh

這裏寫圖片描述

export JAVA_HOME=/usr/local/jdk8/
vi yarn-env.sh

這裏寫圖片描述

export JAVA_HOME=/usr/local/jdk8
vi slaves

這裏寫圖片描述
至此主節點配置Hadoop配置完成。

6、把主節點服務器即master主機下的/etc/profile,hadoop主目錄即:/usr/local/hadoop,和jdk主目錄即/usr/local/jdk8複製到其餘各個節點服務器,即:

scp -r  /etc/profile 192.168.233.130:/etc/
scp -r  /usr/local/hadoop 192.168.233.130:/usr/local/
scp -r  /usr/local/jdk8 192.168.233.130:/usr/local/

scp -r  /etc/profile 192.168.233.131:/etc/
scp -r  /usr/local/hadoop 192.168.233.131:/usr/local/
scp -r  /usr/local/jdk8 192.168.233.131:/usr/local/

scp -r  /etc/profile 192.168.233.132:/etc/
scp -r  /usr/local/hadoop 192.168.233.132:/usr/local/
scp -r  /usr/local/jdk8 192.168.233.132:/usr/local/

複製過去之後不要忘記source /etc/profile 使配置生效,另外這裏提一下吧,hadoop裏面的幾個修改的文件各自主機用各自主機的IP(我就在這裏面繞不出來了)。

7、第一次啓動首先格式化HDFS:
cd /usr/local/hadoop/sbin
hdfs namenode -format
說明:只要看到/usr/local/hadoop/hdfs/name 被格式化成功就沒問題了
啓動HDFS:start-dfs.sh
java自帶jps命令驗證:
主節點:
這裏寫圖片描述
子節點:
這裏寫圖片描述
頁面驗證:
這裏寫圖片描述
沒毛病

8、至此hadoop的配置基本完成,其他組件有需要再加希望幫到正在焦頭爛額的朋友,在此也感謝官方文檔和Hadoop構建數據倉庫實踐,是個好東西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章