搭建hadoop-完全分佈式模式

搭建簡單的Hadoop完全分佈式模式

分析

  1. 最少準備多臺客戶機(Zookeeper至少需要三臺)
  2. 安裝jdk
  3. 安裝Hadoop
  4. 配置環境變量
  5. 單點啓動
  6. 配置ssh
  7. 羣起並測試集羣

首先設置集羣規劃

hadoop100 hadoop101 hadoop102
HDFS NameNode,DataNode DataNode SecondaryNameNode,DataNode
YARN NodeManager Resourcemanager,Nodemanager Nodemanager

虛擬機準備

注 : 我用的centos7,系統通過關閉firewalld,但是主機還是不能訪問虛擬機的端口,端口還是默認關閉的,需要注意下
注: centos7 系統,如果你的系統在某一天hostname,變成了初始化,然後發現配置文件,沒有變化,使用命令形式 hostname set-hostname name 來重新設定

設置靜態ip與主機名,設置用戶爲超級用戶

注:如果使用Vmare,克隆,注意分配給虛擬機的網卡地址是一樣的,自己需要重新生成

  1. /etc/sysconfig/network-scripts/ifcfg-ens32 設置靜態ip

  2. vim /etc/sysconfig/network(改變主機名),NETWORKING=yes,HOSTNAME=hadoop10*

  3. vim /etc/hosts (設置對應IP地址的主機名)

  4. 達到要求:

    1. 各個主機,能夠ping通
    2. 主機與各個虛擬機,能夠ping通
  5. 如果圖方便,可以在主機的hosts ,裏面可以寫入例:
    192.168.11.100 hadoop100

  6. 新建用戶

    1. useradd lan
    2. vim /etc/sudoers 在root下面,添加一樣格式的lan

配置java環境

  1. 解壓java在一個文件夾下(我的是/opt/module)
  2. 配置環境
    vim /etc/profile
    ##JAVA_HOME
    export JAVA_HOME=/opt/module/jdk1.8.0_144
    export PATH=$PATH:$JAVA_HOME/bin
    
    source /etc/profile 更新文件配置
    

hadoop

安裝

  1. 解壓在一個文件夾下
  2. 配置環境
    ## HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-2.7.2
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    
    記得source 下
    
  3. 目錄說明
    1. bin目錄:存放對Hadoop相關服務(HDFS,YARN)進行操作的腳本
    2. etc目錄:Hadoop的配置文件目錄,存放Hadoop的配置文件
    3. lib目錄:存放Hadoop的本地庫(對數據進行壓縮解壓縮功能)
    4. sbin目錄:存放啓動或停止Hadoop相關服務的腳本
    5. share目錄:存放Hadoop的依賴jar包、文檔、和官方案例

配置集羣

配置core-site.xml

hadoop100 配置
<!-- 指定HDFS中NameNode的地址 -->
<property>
		<name>fs.defaultFS</name>
      <value>hdfs://hadoop100:9000</value>
</property>

<!-- 指定Hadoop運行時產生文件的存儲目錄 -->
<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>


HDFS 配置文件

  1. hadoop-env.sh 配置
    hadoop100 配置
    vi hadoop-env.sh
    export JAVA_HOME=/opt/module/jdk1.8.0_144
    
    
  2. hdfs-site.xml
    <property>
    	<name>dfs.replication</name>
    	<value>3</value>
    </property>
    
    <!-- 指定Hadoop輔助名稱節點主機配置 -->
    <property>
    	  <name>dfs.namenode.secondary.http-address</name>
    	  <value>hadoop102:50090</value>
    </property>
    
    

YARN 配置文件

  1. yarn-env.sh
    vi yarn-env.sh
     export JAVA_HOME=/opt/module/jdk1.8.0_144
    
  2. yarn-site.xml
    <!-- Reducer獲取數據的方式 -->
    <property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    </property>
    
    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>hadoop101</value>
    </property>
    

MapReduce 配置文件

  1. mapre-env.sh
     vi mapred-env.sh
    export JAVA_HOME=/opt/module/jdk1.8.0_144
    
  2. mapre-site.xml
     cp mapred-site.xml.template mapred-site.xml
     vi mapred-site.xml
     
     添加配置
     <!-- 指定MR運行在Yarn上 -->
     <property>
     		<name>mapreduce.framework.name</name>
     		<value>yarn</value>
     </property>
     
    

這是一臺主機的配置,其他另外兩臺要一摸一樣

配置羣起集羣

1. 配置slaves

/opt/module/hadoop-2.7.2/etc/hadoop/slaves

 vi slaves
hadoop102
hadoop103
hadoop104
注意:該文件中添加的內容結尾不允許有空格,文件中不允許有空行。

然後同步所有結點配置文件

2. 啓動集羣

  1. 如果集羣第一次啓動,需要格式化namenode
    bin/hdfs namenode -format

  2. 啓動HDFS ;
    sbin/start-dfs.sh

  3. 啓動yarn
    sbin/start-yarn.sh
    注意::namenode和resourcemanger如果不是同一臺機器,不能在namenode上啓動yarn,應該在Resourcemanager所在的機器上啓動yarn

測試是否啓動成功

  1. web查看 ,例子URL
  2. http://hadoop100:50070/
  3. hadoop102:50090

集羣啓動/停止方式

組件分別啓動停止

  1. 分別啓動-停止HDFS組件

    hadoop-daemon.sh start/stop namenode/datanode/secondarynamnode
    
    
  2. 啓動停止YARN

    yarn-daemon.sh start/stop resourcemanager/nodemnaager			
    

整體啓動

各個模塊分開啓動停止(ssh配置是前提

  1. 整體啓動停止HDFS

    start-dfs。sh/ stop-dfs.sh

  2. 整體啓動停止yarn

    start-yarn.sh / stop-yarn.sh

需要注意

== 集羣需要時間同步服務器==
因爲Zookeeper 如果時間 相差太大的話,會啓動失敗
如果出現一些問題,參考博客
參考:http://www.cnblogs.com/zlslch/p/6604189.html

後面的內容配置,會逐漸寫出來!!!

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