Hadoop2.7.4分佈式集羣安裝配置文件

集羣環境

  • Hadoop版本爲2.7.4
  • JDK版本1.8.0_144
  • 安裝了三臺虛擬機分別設定名稱和IP如下
主機名稱 IP地址
master 192.168.1.15
slave01 192.168.1.16
slave02 192.168.1.17

  • 服務器上安裝hadoop的目錄結構爲
    /home/用戶名/hadoop
    software: 存放的是安裝的軟件包
    app : 存放的是所有軟件的安裝目錄
    hadoop2.7.4就在app目錄下, 這裏我的機器的用戶都是null

  • hadoop主要配置文件有core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml
    可以瀏覽官網查看詳細的默認的配置,鏈接如下
    core-default.xml
    hdfs-default.xml
    mapred-default.xml
    yarn-default.xml
    也可以通過下載解壓hadoop後在目錄下搜索*default.xml,找到這些默認配置

安裝Hadoop

下載hadoop並解壓到app目錄下

tar -zxvf hadoop-2.7.4.tar.gz -C ~/hadoop/app

配置Hadoop 環境變量

vim /etc/profile添加

# Hadoop Env
export HADOOP_HOME=/home/null/hadoop/app/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

修改$HADOOP_HOME/etc/hadoop下的配置文件

$HADOOP_HOME就是hadoop安裝目錄位置
這裏只是將分佈式集羣的一些必要的簡化了的配置羅列出來了,更個性化的配置還是要參照官方文檔進行設置

修改hadoop-env.sh文件

//修改JAVA_HOME路徑爲jdk的安裝路徑  
export JAVA_HOME=/home/null/hadoop/app/jdk1.8.0_144 

修改yarn-env.sh文件

//修改JAVA_HOME路徑爲jdk的安裝路徑  
export JAVA_HOME=/home/null/hadoop/app/jdk1.8.0_144 

修改slaves文件

master 既作爲 NameNode 也作爲 DataNode

master  
slave01  
slave02

修改core-site.xml文件

該文件可以覆蓋一部分用於控制Hadoop核心的默認的關鍵配置

參數 默認值 解釋
fs.defaultFS file:/// namenode RPC交互端口
fs.default.name file:/// 被棄用,是用fs.defaultFS代替
hadoop.tmp.dir /tmp/hadoop-${user.name} 其他臨時目錄的根地址

先在$HADOOP_HOME目錄下手動創建tmp文件夾,等下指定hadoop.tmp.dir爲它,hadoop.tmp.dir是hadoop文件系統依賴的基礎配置,很多路徑都依賴它。hdfs-site-xml中默認配置namenode 和datanode的存放位置的地址就是基於此。 LINUX 系統中,在服務重啓後,/tmp 下的目錄被清空,所以要轉到持久化的地址

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/null/hadoop/app/tmp</value>
    </property>
</configuration>

修改hdfs-site.xml文件

通過該配置文件可以修改有關的HDFS的默認配置

參數 默認值 解釋
dfs.replication 3 決定着系統裏面的文件塊的數據備份個數
dfs.namenode.secondary.http-address 0.0.0.0:50090 secondary namenode服務地址和端口
dfs.namenode.name.dir file://${hadoop.tmp.dir}/dfs/name 決定namenode的fsimage文件在本地文件系統的存儲位置,如果是以逗號分割的目錄列表,將會複製到所有目錄中,冗餘
dfs.datanode.data.dir file://${hadoop.tmp.dir}/dfs/data 決定datanode的數據塊在本地文件系統的存儲位置,如果目錄不存在將被創建如果權限允許的話
<configuration>
    <property>    
        <name>dfs.namenode.secondary.http-address</name>    
        <value>master:50090</value>    
    </property> 
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

副本數目不能大於datanode數目
在core-site.中配置了hadoop.tmp.dir,這裏保持默認即可


修改mapred-site.xml文件

該文件中的屬性可以覆蓋用於控制MapReduce任務執行的默認屬性值

參數 默認值 解釋
mapreduce.framework.name local MapReduce 作業的執行框架
mapreduce.jobhistory.address 0.0.0.0:10020 MapReduce的歷史服務器通信地址
mapreduce.jobhistory.webapp.address 0.0.0.0:19888 MapReduce的歷史服務器web界面地址
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

默認情況下,Hadoop歷史服務器是沒有啓動的,我們可以通過下面的命令來啓動Hadoop歷史服務器

sbin/mr-jobhistory-daemon.sh  start historyserver

修改yarn-site.xml文件

該文件中的配置項可以覆蓋用於控制YARN組件中的默認屬性值

參數 默認值 解釋
yarn.nodemanager.aux-services NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,纔可運行MapReduce程序
yarn.resourcemanager.hostname 0.0.0.0 ResourceManager的主機名
yarn.resourcemanager.address ${yarn.resourcemanager.hostname}:8032 ResourceManager 對客戶端暴露的地址。客戶端通過該地址向RM提交應用程序,殺死應用程序等
yarn.resourcemanager.scheduler.address ${yarn.resourcemanager.hostname}:8030 ResourceManager 對ApplicationMaster暴露的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等
yarn.resourcemanager.webapp.address ${yarn.resourcemanager.hostname}:8088 ResourceManager對外web ui地址。用戶可通過該地址在瀏覽器中查看集羣各類信息
yarn.nodemanager.resource.memory-mb 8192 NodeManager總的可用物理內存。注意,該參數是不可修改的,一旦設置,整個運行過程中不可動態修改。另外,該參數的默認值是8192MB,即使你的機器內存不夠8192MB,YARN也會按照這些內存來使用
yarn.nodemanager.resource.cpu-vcores 8 NodeManager總的可用虛擬CPU個數
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>1</value>
     </property>
</configuration>

這裏我架設的虛擬機是1g內存1CPU1核的 ,沒設置最後兩個屬性時,NodeManager啓動報錯內存不足
相關問題可以參考我的另外一篇博客


啓動Hadoop集羣

格式化文件系統

在master中執行

hdfs namenode -format

啓動NameNode和DataNode

在master $HADOOP_HOME下執行

sbin/.start-dfs.sh

使用jps命令查看master上的進程如下

DataNode
SecondaryNameNode
NameNode
Jps

使用jps命令分別查看slave01和slave02上的進程如下

Jps
DataNode

啓動 ResourceManager 和 NodeManager

在master $HADOOP_HOME下執行

sbin/start-yarn.sh

使用jps命令查看master上的進程如下

DataNode
NodeManager
ResourceManager
SecondaryNameNode
NameNode
Jps

使用jps命令分別查看slave01和slave02上的進程如下

Jps
NodeManager
DataNode

終於!Hadoop集羣成功啓動

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