Hadoop最簡單入門實戰


一、部署Hadoop本地模式

  1. 搭建linux環境
    我用的centos7
  2. 在/opt目錄下創建目錄
mkdir module
  1. 安裝jdk
  2. 下載hadoop https://hadoop.apache.org/releases.html 並解壓到/opt/module目錄
  3. 配置hadoop環境變量

vi /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_151
HADOOP_HOME=/opt/module/hadoop-2.10.0
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin
export JAVA_HOME CLASSPATH PATH

配置完畢,刷新

source /etc/profile

這就安裝完畢了,簡單吧。。。

二、運行Demo

  1. 建立一個測試用的輸入文件

echo 'hadoop mapreduce hivehbase spark stormsqoop hadoop hivespark' > data/wc.input

  1. 運行命令
    官方提供的計算單詞數量的程序

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount ../data/wc.input output

  1. 運行完成后,會創建一個output目錄,里面中有 _SUCCESS 文件說明 JOB 運行成功,part-r-00000 是輸出結果文件。結果示例如下:

三、偽分布式部署

進入hadoop目錄

cd /opt/module/hadoop-2.10.0/etc/hadoop

  1. 配置hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_151
  1. 配置core-site.xml
<configuration>
   <!-- 指定HDFS中namenode的路徑  -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://eshop01:9000</value>
    </property>
   <!-- 指定HDFS運行時產生的文件的存儲目錄  -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.10.0/data/tmp</value>
    </property>

</configuration>

  1. 配置hdfs-site.xml
<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  1. 啟動集群
  • 格式化NameNode(第一次啟動格式化)

bin/hdfs namenode -format

  • 啟動namenode

sbin/hadoop-daemon.sh start namenode

  • 啟動datanode

sbin/hadoop-daemon.sh start datanode

四、HDFS操作

  1. hdfs創建目錄

bin/hdfs dfs -mkdir -p /usr/mmc

  1. 上傳本地文件到hdfs

bin/hdfs dfs -put /opt/module/data/wc.input /usr/mmc

  1. 刪除文件

bin/hdfs dfs -rm -r /usr/mmc

網頁上查看效果:

五、啟動YARN

  1. 配置yarn-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_151

  1. 配置yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop101</value>
</property>

</configuration>


hadoop101那里要配置為你虛擬機的hostname

  1. 配置mapred-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_151

  1. 配置mapred-site.xml(由mapred-site.xml.template重命名得到)

mv mapred-site.xml.template mapred-site.xml

<configuration>
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
</configuration>

  1. 啟動yarn
 sbin/yarn-daemon.sh start resourcemanager
 sbin/yarn-daemon.sh start nodemanager
  1. 運行mapreduce程序
  • 先傳一個文件到hdfs上
hdfs dfs -mkdir -p /usr/mmc/input
hdfs dfs -put ../data/wc.input /usr/mmc/input
  • 運行程序

注意:運行之前用jps查看下,這些都啟動沒有NameNode、NodeManager 、DataNode、ResourceManager

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /usr/mmc/input /usr/mmc/output
  • 查看運行進度

http://192.168.1.21:8088/cluster

此時可以看到執行的進度了,但是那個History鏈接還是點不動,需要啟動歷史服務器

  1. 配置歷史服務器
  • 打開mapred-site.xml
<configuration>
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
        <property>
        <name>mapreduce.jobhistory.address</name>
        <value>eshop01:10020</value>
        </property>
        <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>eshop01:19888</value>
        </property>
</configuration>

  • 啟動

sbin/mr-jobhistory-daemon.sh start historyserver

六、日志聚集

注意:開啟日志聚集需要重啟Nodemanager,resourcemanager,historymanager

  1. 配置yarn-site.xml,增加如下配置
<!--開啟日志聚集功能  -->
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
<!-- 日志保留時間  -->
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>

  1. 啟動Nodemanager,resourcemanager,historymanager

  2. 運行實例程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /usr/mmc/input /usr/mmc/output
  1. 查看log
    http://192.168.1.21:19888/jobhistory 點擊指定job進去,點log


免責聲明!

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



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