ubuntu下配置hadoop的狀態監控頁面

1、配置Hadoop

$ cd /usr/local/hadoop/etc/hadoop 
$ vim core-site.xml 
將下面的內容複製到 <configuration> 標籤內java

<property>
   <name>fs.default.name</name>
   <value>hdfs://localhost:9000</value>
</property>

$ vim yarn-site.xmlnode

將下面的內容複製到 <configuration> 標籤內apache

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

$ mv mapred-site.xml.template mapred-site.xml 
$ vim mapred-site.xmlvim

將下面的內容複製到 <configuration> 標籤內app

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

$ mkdir -p ~/mydata/hdfs/namenode 
$ mkdir -p ~/mydata/hdfs/datanode 
$ vim hdfs-site.xmlcurl

將下面的內容複製到 <configuration> 標籤內maven

<property>
   <name>dfs.replication</name>
   <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/home/hduser/mydata/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/home/hduser/mydata/hdfs/datanode</value>
 </property>

2、格式化 namenode

第一次啓動hadoop服務以前,必須執行格式化namenodeoop

$ hdfs namenode -format測試

部分截圖:ui

3、啓動服務

$ start-dfs.sh && start-yarn.sh 
使用jps查看服務

$ jps

若是一切順利,你會看到: 
17785 SecondaryNameNode 
17436 NameNode 
17591 DataNode 
18096 NodeManager 
17952 ResourceManager 
23635 Jps 
當執行start-dfs.sh的時候,你可能會看到  WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable ,不用擔憂,其實能夠正常使用,咱們會在問題解決那一節談到這個問題。  

4、測試並運行示例

$ cd /usr/local/hadoop 
$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.2.0-tests.jar TestDFSIO -write -nrFiles 20 -fileSize 10 
$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.2.0-tests.jar TestDFSIO -clean 
$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi 2 5 

5、網頁界面

Cluster status: http://localhost:8088 
HDFS status: http://localhost:50070 
Secondary NameNode status: http://localhost:50090 

6、一些問題解決方案

1. Unable to load native-hadoop library for your platform.

這是一個警告,基本不會影響hadoop的使用,可是在以後咱們仍是給予解決這個warning的方法。一般來說,出現這個warning的緣由是你在64位的系統上,可是hadoop的package是爲32位的機器編譯的。在這種狀況下,確認你不要忘記在hadoop-env.sh中加入這幾行:

export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/" 
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/"

不然你的hadoop不能正常工做。若是你用的系統和hadoop的package相符(32位),這兩行是沒必要要的。 
咱們不但願有warning,如何解決?方法是本身從新編譯源代碼。從新編譯其實很簡單: 
安裝 maven 
$ sudo apt-get install maven 
安裝 protobuf-2.5.0 or later 
$ curl -# -O https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz 
$ tar -xzvf protobuf-2.5.0.tar.gz 
$ cd protobuf-2.5.0 
$ ./configure --prefix=/usr 
$ make 
$ sudo make install 
$ cd .. 
如今並編譯hadoop源代碼,注意編譯以前須要先給源代碼打個補丁 
$ wget http://www.eu.apache.org/dist/hadoop/common/stable/hadoop-2.2.0-src.tar.gz 
$ tar -xzvf hadoop-2.2.0-src.tar.gz 
$ cd hadoop-2.2.0-src 
$ wget https://issues.apache.org/jira/secure/attachment/12614482/HADOOP-10110.patch 
$ patch -p0 < HADOOP-10110.patch 
$ mvn package -Pdist,native -DskipTests -Dtar 
如今到 hadoop-dist/target/ 目錄下, 你會看到 hadoop-2.2.0.tar.gz or hadoop-2.2.0, 他們就是編譯後的hadoop包。 你可使用本身編譯的包,一樣按照以前的步驟安裝64位的hadoop。若是你已經安裝了32位的hadoop,只須要替換 /usr/local/hadoop/lib/native 目錄,而後將以下兩行從hadoop-env.sh中移除便可: 
export HADOOP_COMMON_LIB_NATIVE_DIR="/usr/local/hadoop/lib/native/" 
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/" 

2. datanode 不能被啓動

一個經常使用的方法是先刪掉datanode對應的文件夾試試,注意這樣作可能會丟失你的數據。另外一種方法是到 /usr/local/hadoop/logs/hadoop-hduser-datanode-*.log 中檢查緣由並對症下藥。

相關文章
相關標籤/搜索