Hadoop Yarn(一)―― 單機偽分布式環境安裝
來源:程序員人生 發布時間:2014-11-13 09:07:00 閱讀次數:3202次
HamaWhite(QQ:530422429)原創作品,轉載請注明出處:http://write.blog.csdn.net/postedit/40556267。
本文是根據Hadoop官網安裝教程寫的Hadoop YARN在單機偽散布式環境下的安裝報告,僅供參考。
1. 安裝環境以下:
系統:Ubuntu14.04
Hadoop版本:hadoop⑵.5.0
Java版本:openjdk⑴.7.0_55
2. 下載Hadoop⑵.5.0,http://mirrors.cnnic.cn/apache/hadoop/common/hadoop⑵.5.0/hadoop⑵.5.0.tar.gz
本文的
$HADOOP_HOME為:
/home/baisong/hadoop⑵.5.0(用戶名為baisong)。
在 ~/.bashrc文件中添加環境變量,以下:
export HADOOP_HOME=/home/baisong/hadoop⑵.5.0
然后編譯,命令以下:
$ source ~/.bashrc
3. 安裝JDK,并設置JAVA_HOME環境變量。在/etc/profile文件最后添加以下內容
export JAVA_HOME=/usr/lib/jvm/java⑺-openjdk-i386 //根據自己Java安裝目錄而定
export PATH=$JAVA_HOME/bin:$PATH
輸入以下命令使配置生效
$ source /etc/profile
4. 配置SSH。首先生成秘鑰,命令以下,然后1路回車確認,不需要任何輸入。
$ ssh-keygen -t rsa 然后把公鑰寫入authorized_keys文件中,命令以下:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
最后,輸入下述命令,按提示輸入
yes 便可。
$ ssh localhost
5. 修改Hadoop配置文件,進入${HADOOP_HOME}/etc/hadoop/目錄。
1)設置環境變量,hadoop-env.sh中添加Java安裝目錄,以下:
export JAVA_HOME=/usr/lib/jvm/java⑺-openjdk-i386
2)修改core-site.xml,添加以下內容。
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/baisong/hadooptmp</value>
</property>
注:hadoop.tmp.dir項可選(上述設置需手動創建hadooptmp文件夾)。
3)修改hdfs-site.xml,添加以下內容“。
<property>
<name>dfs.repliacation</name>
<value>1</value>
</property>
4)將mapred-site.xml.template重命名為mapred-site.xml,并添加以下內容。
$ mv mapred-site.xml.template mapred-site.xml //重命名
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)修改yarn-site.xml,添加以下內容。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6. 格式化HDFS,命令以下:
bin/hdfs namenode -format 注釋:bin/hadoop namenode -format命令已過時
格式化成功會在/home/baisong/hadooptmp創建dfs文件夾。
7.啟動HDFS,命令以下:
$ sbin/start-dfs.sh
遇到以下毛病:
14/10/29 16:49:01 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [OpenJDK Server VM warning: You have loaded library /home/baisong/hadoop⑵.5.0/lib/native/libhadoop.so.1.0.0
which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
localhost]
sed: -e expression #1, char 6: unknown option to `s'
VM: ssh: Could not resolve hostname vm: Name or service not known
library: ssh: Could not resolve hostname library: Name or service not known
have: ssh: Could not resolve hostname have: Name or service not known
which: ssh: Could not resolve hostname which: Name or service not known
might: ssh: Could not resolve hostname might: Name or service not known
warning:: ssh: Could not resolve hostname warning:: Name or service not known
loaded: ssh: Could not resolve hostname loaded: Name or service not known
have: ssh: Could not resolve hostname have: Name or service not known
Server: ssh: Could not resolve hostname server: Name or service not known
分析緣由知,沒有設置
HADOOP_COMMON_LIB_NATIVE_DIR和
HADOOP_OPTS環境變量,在 ~/.bashrc文件中添加以下內容并編譯。
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
$ source ~/.bashrc
重新啟動HDFS,輸出以下,表示啟動成功。
可以用過Web界面來查看NameNode運行狀態,URL為 http://localhost:50070
停止HDFS的命令為:
$ sbin/stop-dfs.sh
8. 啟動YARN,命令以下:
$ sbin/start-yarn.sh
可以用過Web界面來查看NameNode運行狀態,URL為 http://localhost:8088
停止HDFS的命令為:
$ sbin/stop-yarn.sh
上述HDFS和YARN啟動完成后,可通過jps命令查看是不是啟動成功。
9. 運行測試程序。
1)測試計算PI,命令以下:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples⑵.5.0.jar
pi 20 10
2)測試 grep,首先需要上傳輸入文件到HDFS上,命令以下:
$
bin/hdfs dfs -put etc/hadoop input
運行grep程序,命令以下:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples⑵.5.0.jar grep input output 'dfs[a-z.]+'
運行結果輸出以下:

10. 添加環境變量,方便使用start-dfs.sh、start-yarn.sh等命令(可選)。
在 ~/.bashrc文件中添加環境變量,以下:
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
然后編譯,命令以下:
$ source ~/.bashrc
下圖是 ~/.bashrc文件中添加的變量,以便參考。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈