學習筆記_Hadoop僞分佈式搭建

僞分佈式即爲所有節點均配置在一臺機器上,後期添加其餘框架配置時建議現在僞分佈式進行測試,成功後再移植到完全分佈式

環境準備

1.網卡IP設置爲靜態(NAT模式)

  • 修改網卡配置
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

這裏寫圖片描述

2.重啓網絡服務

# service network restart

3.修改主機名

這裏我使用主機名爲master

# vi /etc/sysconfig/network

這裏寫圖片描述

4.關閉防火牆

  • 關閉防火牆
# service iptables stop
  • 設置成開機不啓動
# chkconfig iptables off
  • 關閉selinux
# vi /etc/sysconfig/selinux

這裏寫圖片描述

5.添加主機名映射

  • Linux上添加主機名映射
# vi /etc/hosts

這裏寫圖片描述

  • Windows本地添加主機名映射
    路徑:C:\Windows\System32\drivers\etc\hosts
    這裏寫圖片描述

6.創建普通用戶

後期操作幾乎都用普通用戶進行,這裏我使用普通用戶名爲hadoop(若存在普通用戶可不用再次創建)

# useradd hadoop
# echo 123456 | passwd --stdin hadoop

7.安裝JDK

  • 查看自帶jdk
# rpm -qa | grep java

這裏寫圖片描述

  • 卸載自帶jdk
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 tzdata-java-2012j-1.el6.noarch java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
  • 新建文件夾並修改權限
# chown -R hadoop:hadoop /opt
$ mkdir -p /opt/modules
$ mkdir -p /opt/softwares
  • 上傳jdk壓縮包

這裏使用filezilla上傳jdk-7u79-linux-x64.tar.gz壓縮包到/opt/softwares/下

  • 解壓jdk
$ cd /opt/softwares/
$ tar -zxf jdk-7u79-linux-x64.tar.gz -C /opt/modules/
  • 修改環境變量
# vi /etc/profile
  • 修改配置文件,加入以下部分
##JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
  • 檢查是否配置成功
# source /etc/profile
# java -version

若出現信息則配置成功

僞分佈式搭建

1.上傳壓縮包

這裏使用filezilla上傳hadoop-2.5.0-cdh5.3.6.tar.gz壓縮包到/opt/softwares/下

2.解壓壓縮包

$ tar -zxf hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/modules/

3.配置HDFS

這裏使用Notepad++連接主機來進行配置文件修改,配置文件路徑爲/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop/

  • hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_79
  • core-site.xml
    <!--HDFS集羣訪問入口地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    <!--聲明存放數據的目錄-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.5.0-cdh5.3.6/data</value>
    </property>
  • hdfs-site.xml
    <!--Block的副本數,數據塊的副本數不能大於datanode的節點數量-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  • slaves
    聲明哪些服務器是datanode,每行一個主機名
master
  • 格式化文件系統
$ bin/hdfs namenode -format
  • 啓動HDFS
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode

多次格式化導致元數據不統一解決方案

  • 刪除hadoop下的data文件夾後,重新格式化
$ rm -rf data
$ bin/hdfs namenode -format

測試

  • 創建測試文件
$ cd /opt
$ vi test.txt

這裏寫圖片描述

  • 在hdfs上創建文件夾
$ cd /opt/modules/hadoop-2.5.0-cdh5.3.6/
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ bin/hdfs dfs -mkdir /input

這裏寫圖片描述

這裏寫圖片描述

  • 上傳文件
$ bin/hdfs dfs -put /opt/test.txt /input/

這裏寫圖片描述

4.配置YARN

  • yarn-env.sh和mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_79
  • yarn-site.xml
    <!-- NodeManager獲取數據的方式是shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
  • mapred-site.xml
    如果只有mapred-site.xml.template,就重命名爲mapred-site.xml
    <!--mapreduce計算模型運行在yarn平臺-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
  • 啓動YARN
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
  • 通過瀏覽器登錄web控制檯
    http://master:8088/cluster
    這裏寫圖片描述

    測試

  • 利用官方自帶的jar包,進行文件的單詞統計,這裏是用的測試文件爲之前測試HDFS時上傳的test.txt
    需要注意最後的目錄爲存放結果的文件夾,必須是不存在的

$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input/test.txt /output/
  • 任務執行時,在web控制檯能查看任務執行情況
    這裏寫圖片描述

  • 查看結果

$ bin/hdfs dfs -cat /output/*

這裏寫圖片描述

5.配置日誌服務器

  • yarn-site.xml
    <!--啓用日誌聚合功能-->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!--日誌保存時間-->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
    </property>
  • mapred-site.xml
    <!--進程通信-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <!--客戶端訪問入口-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
  • 重啓YARN
$ sbin/yarn-daemon.sh stop nodemanager
$ sbin/yarn-daemon.sh stop resourcemanager
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
  • 啓動歷史服務器
$ sbin/mr-jobhistory-daemon.sh start historyserver
  • 重新運行任務
    注意,目標文件夾必須不存在,要修改目標文件夾
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input/test.txt /output2/
  • 查看日誌
cat logs/mapred-hadoop-historyserver-master.log

這裏寫圖片描述

可以看見剛剛任務運行成功的信息被保存到日誌中

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