Hadoop分布式配置文件


 

 

Hadoop 安裝模式分為三種:

單機模式:單機模式下注意將備份數量設置為1,設置為3是沒有意義的

偽分布式:沒有測試

完全分布式:

完全分布式需要3台-3台以上的服務器,由NameNode進行控制多台DataNode。

網上的詳細配置十分齊全,可以進行參考,但是每份參考文件的配置並不完全相同。

配置文件說明:

hadoop-env.xml:對文件的運行環境進行配置,hadoop是基於java的,所以同樣需要JDK

core-site.xml:hadoop的核心配置文件,配置指定集群NameNode,設置hadoop公用變量,創建hadoop的臨時目錄等

hdfs-site.xml:分布式文件系統配置,包含對存儲文件時的文件設置,比如副本數量。配置DataNode的本地路徑,dataNode節點路徑等。

yarn-site.xml:配置yarn,yarn用於管理分布式系統的CPU利用率,磁盤使用情況等。shuffle過程使用的執行器(可以使用不同的執行器,比如spark)

mapreduce-site.xml:配置數據計算框架(支持多種框架),JobTracker的主機主機端口,存儲緩沖數據配置,歷史服務器配置等

slaves:存儲所有的主機IP

master:並不是所有的配置文件中都包含這個文件,放置NameNode節點的IP

配置規則:

1.JDK(1.8)  

2.為你的計算機更名,當然這一步並不是必須的,你可以在每個文件需要IP的地方輸入自己的IP

3.SSH免密登錄.在hadoop多台機器需要數據交互,內部需要聯通

4.hadoop(3.1)壓縮包解壓

5.hadoop/etc/hadoop  文件下擁有多個配置文件,其中包含上述文件(或者包含其臨時文件)

  5-1:core-site.xml

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <!-- hserver1為當前機器名或者ip號 -->
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <!-- 以下為存放臨時文件的路徑 -->
    <value>/data/local/hadoop/tmp</value>
   </property>
   <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
  </property>
</configuration>

  5-2:hdfs-site.xml

<configuration>
  <property>
    <name>dfs.namenode.http-address</name>
    <!-- master 修改為你的機器名或者ip -->
    <value>master:50070</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <!-- 備份次數 -->
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/local/hadoop/hdfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/local/hadoop/hdfs/data</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>

  5-3:yarn-site.xml

<configuration>
  <!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <!-- 你的機器號或者ip -->
    <value>master</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.nodemanager.resource.cpu-vcores</name>
    <!-- cpu個數 需要根據當前機器cpu設置 -->
    <value>2</value>
  </property>
  <property>
    <name>yarn.application.classpath</name>      <value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,$HADOOP_COMMON_HOME/share/hadoop/common/lib/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*</value>
  </property>  

  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
</configuration>

  4.mapreduce-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
  </property>
  <property>
    <name>yarn.app.mapreduce.am.env</name>
    <value>HADOOP_MAPRED_HOME=/data/local/hadoop/hadoop-3.1.1</value>
  </property>
  <property>
    <name>mapreduce.map.env</name>
    <value>HADOOP_MAPRED_HOME=/data/local/hadoop/hadoop-3.1.1</value>
  </property>
  <property>
    <name>mapreduce.reduce.env</name>
    <value>HADOOP_MAPRED_HOME=/data/local/hadoop/hadoop-3.1.1</value>
  </property>
</configuration>

  5.workers

  該文件中存放所有工作的節點,也就是datanode節點。

master
slave1
slave2

  6./sbin/start-dfs.sh 和 /sbin/stop-dfs.sh

  增加內容

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

  7./sbin/start-yarn.sh  和 /sbin/stop-yarn.sh

  增加內容

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

  8.配置hadoop環境,該環境變量並不是必須的,配置之后能夠直接使用hadoop命令進行hadoop系統的查看

    打開linux系統下的   /etc/profile   文件

    export HADOOP_HOME=/home/shang/soft/hadoop   //使用自己hadoop的存儲位置
    export PATH=$HADOOP_HOME/bin:$PATH   //注意這行數據最后放在所有數據最后的,以保證能夠取得其中所引用的所有數據

    配置完成后使文件立即生效,使用  sources  命令

  8.hadoop系統格式化 

    當你HADOOP_NAME配置成功的時候,這個命令可以在linux系統的任意位置使用

    命令如下:  hadoop namenode  -format   (出現提問輸入y)/ hdfs namenode -format  這兩個命令都是可以的

  9.hadoop文件夾下sbin目錄下,使用  start-all.sh 啟動整個hadoop分布式系統,如果配置了hadoop環境變量,能夠直接在任何位置使用hadoop的啟動命令

 

  10.結果如下:通過java 包下的 jps命令

    NameNode節點: 

      NameNode

      ResourceManager

      SecondaryNameNode

      jps

    所有的DataNode節點:

      jps

      DataNode

      NodeManager

    出現上述結果,配置正確。

  11.測試hadoop:

    11-1.嘗試上傳文件  hadoop fs -get  本地文件  上傳路徑

    11-2:訪問hadoop 的NameNode 50070(hdfs web訪問端口)/8088端口(yarn訪問端口)(前提是你沒有在配置文件改變這些端口)

  12.問題剖析:

    12-1:啟動是出現任何Exception 請檢查配置文件

    12-2:hadoop 命令不可用  檢查HADOOP_NAME 環境變量

    12-3:如果有多次format(格式化),刪除為hadoop、data、name 創建的所有臨時文件夾重新創建

    12-4:沒了,想不起來了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM