Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount
HDFS在集群上實現分布式文件系統,MapReduce在集群上實現了分布式計算和任務處理。HDFS在MapReduce任務處理過程中提供了文件操作和存儲等支持,MapReduce在HDFS的基礎上實現了任務的分發、跟蹤、執行等工作,并收集結果,二者相互作用,完成了Hadoop分布式集群的主要任務。
1)部署單節點偽分布
單節點Ubuntu,主機名hp
第一步:先安裝JDK和SSH,并配置SSH無密碼登錄。
JDK解壓安裝在/home/hp下。
安裝SSH:$sudo apt-get install ssh
安裝rsync:$sudo apt-get install rsync
生成密鑰:$ssh-keygen–t rsa –f /home/hp/.ssh/id_rsa
授權訪問:$cat/home/hp/.ssh/id_rsa.pub>>/home/hp/.ssh/authorized_keys
測試:sshlocalhost
第二步:Hadoop解壓在/home/hp并配置core-site.xml和hdfs-site.xml
創建如下文件夾
$mkdir tmp
$mkdir hdfs
$mkdir hdfs/data
$mkdir hdfs/name
設置$geditetc/hadoop/core-site.xml
fs.defaultFS值為hdfs://hp:9000
<property>
?? ? ? <name>fs.defaultFS</name>
?? ? ? <value>hdfs://hp:9000</value>
</property>
<property>
?? ? ? <name>hadoop.tmp.dir</name>
?? ? ? <value>file:/home/hp/hadoop/tmp</value>
?? </property>
設置$geditetc/hadoop/hdfs-site.xml
dfs.replication值為1
<property>
?? ? ? <name>dfs.namenode.name.dir</name>
?? ? ? <value>/home/hp/hadoop/dfs/name</value>
</property>
<property>
?? ? ? <name>dfs.datanode.data.dir</name>
?? ? ? <value>/home/hp/hadoop/dfs/data</value>
?? </property>
<property>
?? ? ? <name>dfs.replication</name>
?? ? ? <value>1</value>
</property>
<property>
?? ? ? <name>dfs.namenode.secondary.http-address</name>
?? ? ? <value>hp:9001</value>
</property>
設置hosts:$sudo gedit /etc/hosts
注釋所有行, 追加:
127.0.0.1 hp
127.0.0.1localhost
設置etc/hadoop/hadoop-env.sh的Java路徑
$bin/hdfsnamenode –format
啟動集群$sbin/start-dfs.sh
http://127.0.0.1:50070 打開頁面驗證單節點偽分布已成功。
第三步:如要運行在yarn上,則配置mapred-site.xml和yarn-site.xml
$geditetc/hadoop/mapred-site.xml
mapreduce.framework.name值為yarn
<property>
??????<name>mapreduce.framework.name</name>
??? ???<value>yarn</value>
?? </property>
$geditetc/hadoop/yarn-site.xml
yarn.nodemanager.aux-services值為mapreduce_shuffle
<property>
??????<name>yarn.nodemanager.aux-services</name>
??? ???<value>mapreduce_shuffle</value>
?? </property>
設置etc/hadoop/yarn-env.sh的Java路徑
啟動yarn$sbin/start-yarn.sh
http://127.0.0.1:8088 驗證啟動成功。
2)運行wordcount作業-使用yarn
第一步:在HDFS中創建input文件目錄:$bin/hadoop fs –mkdir /input
第二步:上傳文件到hdfs的input目錄下
$bin/hadoopfs –put LICENSE.txt /input
本文這里用hadoop安裝目錄下的LICENSE.txt文件作為wordcount的輸入。
$bin/hadoopfs -ls /input
查看文件是否正確傳入到/input目錄下
$bin/hadoopfs -cat /input/LICENSE.txt查看文件內容
第三步:執行
$bin/hadoop jar
/home/hp/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jarwordcount /input /output
第四步:查看結果
$bin/hadoopfs -ls /output
查看輸出結果的目錄
$bin/hadoopfs -cat /output/part-r-00000
3)運行wordcount作業-不使用yarn
如果不使用yarn,進行mapreduce.job.tracker配置用MRv1來執行job,不需要啟動nodemanager。
設置$geditetc/hadoop/mapred-site.xml
<property>
?? ? ? <name>mapreduce.job.tracker</name>
?? ? ? <value>hdfs://hp:8001</value>
?? ? ? <final>true</final>
<property>
啟動sbin/start-dfs.sh和sbin/start-yarn.sh后執行
$bin/hadoop jar
/home/hp/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jarwordcount /input /output2
查看結果
$bin/hadoopfs -ls /output2
查看輸出結果的目錄
$bin/hadoopfs -cat /output2/part-r-00000
關閉sbin/stop-dfs.sh和sbin/stop-yarn.sh
總結:過程中,面對不斷出現的錯誤需要查閱資料并調整配置,慢慢理解到整體框架,但深入研究還有待時日。
總結
以上是生活随笔為你收集整理的Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop系列一:Hadoop集群分布
- 下一篇: Hadoop系列三:Hadoop之Pig