目的
創(chuàng)新互聯(lián)公司是專業(yè)的寬甸網(wǎng)站建設(shè)公司,寬甸接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行寬甸網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
本文檔介紹如何去安裝單節(jié)點(diǎn)hadoop集群,以便你可以的了解和使用hadoop的HDFS和MapReduce.
環(huán)境:
os: CentOS release 6.5 (Final)
ip: 172.16.101.58
user:root
hadoop-2.9.0.tar.gz
SSH無(wú)密碼登錄配置
因?yàn)楸疚臋n使用root用戶安裝,所以需要配置好root用戶ssh無(wú)密碼登錄本地節(jié)點(diǎn)
[root@sht-sgmhadoopdn-01 ~]#ssh-keygen -t rsa
[root@sht-sgmhadoopdn-01 .ssh]#cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[root@sht-sgmhadoopdn-01 ~]# ssh localhost
Java安裝和配置
[root@sht-sgmhadoopdn-01 ~]# cd /usr/java
[root@sht-sgmhadoopdn-01 java]# tar xf jdk-8u111-linux-x64.tar.gz
[root@sht-sgmhadoopdn-01 java]# chown -R root:root jdk1.8.0_111/
[root@sht-sgmhadoopdn-01 bin]# /usr/java/jdk1.8.0_111/bin/java -version
java version "1.8.0_111"
[root@sht-sgmhadoopdn-01 ~]# vim ~/.bash_profile
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export JAVA_HOME=/usr/java/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export LD_LIBRARY_PATH=/home/bduser/hadoop/hadoop-2.7.3/lib/native/:$LD_LIBRARY_PATH
[root@sht-sgmhadoopdn-01 ~]# source .bash_profile
[root@sht-sgmhadoopdn-01 ~]# which java
/usr/java/jdk1.8.0_111/bin/java
下載和解壓hadoop
[root@sht-sgmhadoopdn-01 local]# wget http://www-us.apache.org/dist/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz
[root@sht-sgmhadoopdn-01 local]# tar xf hadoop-2.9.0.tar.gz
[root@sht-sgmhadoopdn-01 ~]#vim .bash_profile
export HADOOP_HOME=/usr/local/hadoop-2.9.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
[root@sht-sgmhadoopdn-01 ~]# source .bash_profile
[root@sht-sgmhadoopdn-01 ~]# which hadoop
/usr/local/hadoop-2.9.0/bin/hadoop
[root@sht-sgmhadoopdn-01 local]# hadoop version
Hadoop 2.9.0
......
hadoop jar命令解析
jar <jar> run a jar file,如果是yarn,則需要使用hadoop yarn jar
將 input 文件夾中的所有文件作為輸入,篩選當(dāng)中符合正則表達(dá)式 dfs[a-z.]+ 的單詞并統(tǒng)計(jì)出現(xiàn)的次數(shù),最后輸出結(jié)果到 output 文件夾中:
正則表達(dá)式:
[a-z]表示匹配包含在a-z之中的任意一個(gè)字符
+ 表示匹配之前的項(xiàng)1次或者多次
[root@sht-sgmhadoopdn-01 ~]# cd /usr/local/hadoop-2.9.0
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# cp etc/hadoop/*.xml input/
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# cat output/*
1dfsadmin
Hadoop配置文件說(shuō)明
(1)Hadoop 的運(yùn)行方式是由配置文件決定的(運(yùn)行 Hadoop時(shí)會(huì)讀取配置文件),因此如果需要從偽分布式模式切換回非分布式模式,需要?jiǎng)h除 core-site.xml 中的配置項(xiàng)。
(2)偽分布式雖然只需要配置 fs.defaultFS 和 dfs.replication 就可以運(yùn)行(官方教程如此),不過(guò)若沒(méi)有配置 hadoop.tmp.dir 參數(shù),則默認(rèn)使用的臨時(shí)目錄為 /tmp/hadoo-hadoop,而這個(gè)目錄在重啟時(shí)有可能被系統(tǒng)清理掉,導(dǎo)致必須重新執(zhí)行 format 才行。所以我們進(jìn)行了設(shè)置,同時(shí)也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否則在接下來(lái)的步驟中可能會(huì)出錯(cuò)
修改配置文件
Hadoop 可以在單節(jié)點(diǎn)上以偽分布式的方式運(yùn)行,Hadoop 守護(hù)進(jìn)程以分離的 Java 進(jìn)程來(lái)運(yùn)行,節(jié)點(diǎn)既作為 NameNode 也作為 DataNode,同時(shí),讀取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個(gè)配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每個(gè)配置以聲明 property 的 name 和 value 的方式來(lái)實(shí)現(xiàn)。
[root@sht-sgmhadoopdn-01 hadoop]#cat /usr/local/hadoop-2.9.0/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.9.0/tmp</value>
<description>Abase for other temporary directories.</description>
<property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
[root@sht-sgmhadoopdn-01 hadoop]#cat /usr/local/hadoop-2.9.0/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.9.0/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.9.0/tmp/dfs/data</value>
</property>
</configuration>
[root@sht-sgmhadoopdn-01 hadoop]# vim /usr/local/hadoop-2.9.0/etc/hadoop/hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/java/jdk1.8.0_111
啟動(dòng)hadoop集群
#NameNode 的格式化:
[root@sht-sgmhadoopdn-01 hadoop]# hdfs namenode -format
#開(kāi)啟NameNode 和DataNode 守護(hù)進(jìn)程,(這一步會(huì)啟動(dòng)三個(gè)進(jìn)程,分別是namenode,datanode,secondarynamenode)
[root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/start-dfs.sh
#通過(guò)jps命令查看進(jìn)程號(hào)和進(jìn)程名稱
[root@sht-sgmhadoopdn-01 logs]# jps
12704 DataNode
14273 Jps
12580 NameNode
27988 -- process information unavailable
13015 SecondaryNameNode
27832 -- process information unavailable
#也可以通過(guò)stop-dfs.sh停止守護(hù)進(jìn)程,(下次啟動(dòng)hadoop時(shí),無(wú)需進(jìn)行NameNode的初始化,只需要運(yùn)行start-dfs.sh就可以)
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# /usr/local/hadoop-2.9.0/sbin/stop-dfs.sh
成功啟動(dòng)進(jìn)程后可以通過(guò)瀏覽器訪問(wèn),查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件:
NameNode http://172.16.101.58:50070
運(yùn)行hadoop偽分布實(shí)例MapReduce Job
#創(chuàng)建hdfs目錄/user/root/input,并把本地的文件拷貝到hdfs上
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -mkdir -p /user/root/input
[root@sht-sgmhadoopdn-01 ~]# hdfs dfs -ls
drwxr-xr-x - root supergroup 0 2017-12-24 15:20 input
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -put /usr/local/hadoop-2.9.0/etc/hadoop/*.xml /user/root/input
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -ls /user/root/input
Found 8 items
-rw-r--r-- 1 root supergroup 7861 2017-12-24 15:20 /user/root/input/capacity-scheduler.xml
-rw-r--r-- 1 root supergroup 1040 2017-12-24 15:20 /user/root/input/core-site.xml
-rw-r--r-- 1 root supergroup 10206 2017-12-24 15:20 /user/root/input/hadoop-policy.xml
-rw-r--r-- 1 root supergroup 1091 2017-12-24 15:20 /user/root/input/hdfs-site.xml
-rw-r--r-- 1 root supergroup 620 2017-12-24 15:20 /user/root/input/httpfs-site.xml
-rw-r--r-- 1 root supergroup 3518 2017-12-24 15:20 /user/root/input/kms-acls.xml
-rw-r--r-- 1 root supergroup 5939 2017-12-24 15:20 /user/root/input/kms-site.xml
-rw-r--r-- 1 root supergroup 690 2017-12-24 15:20 /user/root/input/yarn-site.xml
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar /usr/local/hadoop-2.9.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z]+'
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -cat output/*
1dfsadmin
#默認(rèn)不會(huì)覆蓋結(jié)果文件,因此再次運(yùn)行上面實(shí)例會(huì)提示出錯(cuò):hdfs://localhost:9000/user/root/output already exists,需要先將output 刪除。
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -rm -r /user/root/output
Deleted /user/root/output
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hadoop jar /usr/local/hadoop-2.9.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar grep input output 'dfs[a-z.]+'
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -cat output/*
1dfsadmin
1dfs.replication
1dfs.namenode.name.dir
1dfs.datanode.data.dir
#也可以從hdfs上拷貝文件到本地
[root@sht-sgmhadoopdn-01 hadoop-2.9.0]# hdfs dfs -get /user/root/output /usr/local/hadoop-2.9.0/
運(yùn)行YARN在單節(jié)點(diǎn)上
(1)新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也稱為 YARN,Yet Another Resource Negotiator)。
(2)YARN 是從 MapReduce 中分離出來(lái)的,負(fù)責(zé)資源管理與任務(wù)調(diào)度。YARN 運(yùn)行于 MapReduce 之上,提供了高可用性、高擴(kuò)展性,
上述通過(guò) ./sbin/start-dfs.sh 啟動(dòng) Hadoop,僅僅是啟動(dòng)了 MapReduce 環(huán)境,我們可以啟動(dòng) YARN ,讓 YARN 來(lái)負(fù)責(zé)資源管理與任務(wù)調(diào)度。
(3)如果不想啟動(dòng) YARN,務(wù)必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用時(shí)改回來(lái)就行。否則在該配置文件存在,而未開(kāi)啟 YARN 的情況下,運(yùn)行程序會(huì)提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的錯(cuò)誤,這也是為何該配置文件初始文件名為 mapred-site.xml.template。
(4)但 YARN 主要是為集群提供更好的資源管理與任務(wù)調(diào)度,然而這在單機(jī)上體現(xiàn)不出價(jià)值,反而會(huì)使程序跑得稍慢些。因此在單機(jī)上是否開(kāi)啟 YARN 就看實(shí)際情況了
[root@sht-sgmhadoopdn-01 hadoop]# mv /usr/local/hadoop-2.9.0/etc/hadoop/mapred-site.xml.template mapred-site.xml
[root@sht-sgmhadoopdn-01 hadoop]# cat mapred-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
[root@sht-sgmhadoopdn-01 hadoop]# cat yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
[root@sht-sgmhadoopdn-01 hadoop]# jps
27988 -- process information unavailable
30341 DataNode
32663 Jps
27832 -- process information unavailable
30188 NameNode
30525 SecondaryNameNode
#前提是已經(jīng)使用start-dfs.sh腳本啟動(dòng)過(guò)
[root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/start-yarn.sh
#相比使用MapReduce多了ResourceManager和NodeManager這兩個(gè)進(jìn)程
[root@sht-sgmhadoopdn-01 hadoop]# jps
27988 -- process information unavailable
30341 DataNode
32758 ResourceManager
855 Jps
27832 -- process information unavailable
411 NodeManager
30188 NameNode
30525 SecondaryNameNode
#啟動(dòng)后可以通過(guò)瀏覽器訪問(wèn):
ResourceManager - http://172.16.101.58:8088
停止hadoop集群
[root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/stop-yarn.sh
[root@sht-sgmhadoopdn-01 hadoop]#/usr/local/hadoop-2.9.0/sbin/stop-dfs.sh
[root@sht-sgmhadoopdn-01 hadoop]# /usr/local/hadoop-2.9.0/sbin/mr-jobhistory-daemon.sh stop historyserver
no historyserver to stop
參考鏈接:
http://www.powerxing.com/install-hadoop/
http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-common/SingleCluster.html
分享文章:安裝hadoop偽分布式模式(SingleNodeCluster)
文章位置:http://aaarwkj.com/article44/gghjee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、商城網(wǎng)站、面包屑導(dǎo)航、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)