以下描述了centos linux(2.6.32-279.el6.x86_64)位機器下,安裝32位hadoop 2.3,並通過運行
系統自帶的 WordCount 例子來驗證服務正確性的步驟。
建立目錄
/usr/local/hadoop2.3,以後這個是 hadoop 的安裝目錄。
java 系統安裝(32位版本,jdk-7u51-linux-i586.tar.gz)
http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260.html
oracle 官方網站下載,覆蓋原來機器上的版本。
解壓 jdk-7u51-linux-i586.tar.gz 版本到 /usr/local/
[root@six hadoop2.3]# ls /usr/local/jdk1.7.0_51
bin jdk-7u51-linux-i586.tar.gz README.html
COPYRIGHT jre release
db lib src.zip
include LICENSE THIRDPARTYLICENSEREADME-JAVAFX.txt
jdk1.7.0_51 man THIRDPARTYLICENSEREADME.txt
修改配置文件,增加環境變量JAVA_HOME
[root@six hadoop2.3]# vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.7.0_51
執行命令,生效配置
[root@six hadoop2.3]# source /etc/profile
覆蓋或者更新系統 java 版本
sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.7.0_51/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.7.0_51/bin/javac 300
sudo update-alternatives --config java
sudo update-alternatives --config javac
下載 hadoop 2.3 版本
官網http://hadoop.apache.org/去下載,具體地址可能是
http://www.apache.org/dyn/closer.cgi/hadoop/common/
其中一個鏡像
http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.3.0/
下載得到文件 hadoop-2.3.0.tar.gz,特別注意,這個是32位版本,
官網沒有提供 64位版本的下載,如果需要,自己編譯安裝。
安裝 hadoop 2.3,解壓hadoop-2.3.0.tar.gz到目錄 /usr/local/hadoop2.3即可
[root@six hadoop2.3]# ls
bin etc hadoop-2.3.0.tar.gz lib LICENSE.txt NOTICE.txt sbin
dfs example include
配置 etc/hadoop/hadoop-env.sh
[root@six hadoop2.3]# cat etc/hadoop/hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.7.0_51
配置 etc/hadoop/hdfs-site.xml
[root@six hadoop2.3]# cat etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop2.3/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop2.3/dfs/data</value>
</property>
</configuration>
配置 etc/hadoop/hdfs-site.xml
[root@six hadoop2.3]# cat etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9009</value>
</property>
</configuration>
配置 etc/hadoop/yarn-site.xml
[root@six hadoop2.3]# cat etc/hadoop/yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置日誌輸出方式,便於調試錯誤
export HADOOP_ROOT_LOGGER=INFO,console
格式化文件系統
[root@six hadoop2.3]# mkdir dfs/
[root@six hadoop2.3]# mkdir dfs/name
[root@six hadoop2.3]# mkdir dfs/data
[root@six hadoop2.3]# ./bin/hadoop namenode -format
啓動服務,這裏使用 root 用戶,需要輸入密碼的時候,輸入 root 用戶密碼
如果使用非 root,並假設 分佈式服務,需要先解決 ssh 登錄問題,此處不詳
細描述。
[root@six hadoop2.3]# ./sbin/hadoop-daemon.sh start namenode
[root@six hadoop2.3]# ./sbin/hadoop-daemon.sh start datanode
[root@six hadoop2.3]# ./sbin/hadoop-daemon.sh start dfs
[root@six hadoop2.3]# ./sbin/start-yarn.sh
查看狀態
[root@six hadoop2.3]# ./bin/hadoop dfsadmin -report
表示一個數據節點OK
Datanodes available: 1 (1 total, 0 dead)
http://127.0.0.1:50070/
能看到 hadoop 服務啓動
構造數據文件(file1.txt,file2.txt)
[root@six hadoop2.3]# cat example/file1.txt
hello world
hello markhuang
hello hadoop
[root@six hadoop2.3]# cat example/file2.txt
hadoop ok
hadoop fail
hadoop 2.3
把數據文件加入到 hadoop 系統。
[root@six hadoop2.3]# ./bin/hadoop fs -mkdir /data
[root@six hadoop2.3]# ./bin/hadoop fs -put -f example/file1.txt example/file2.txt /data
運行 WordCount(java) 版本。
[root@six hadoop2.3]# ./bin/hadoop jar ./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.3.0-sources.jar org.apache.hadoop.examples.WordCount /data /output
查看結果。
[root@six hadoop2.3]# ./bin/hadoop fs -cat /output/part-r-00000
2.3 1
fail 1
hadoop 4
hello 3
markhuang 1
ok 1
world 1