ubuntu14.04安裝hadoop2.6.0(僞分佈模式)

版本:虛擬機下安裝的ubuntu14.04(64位),hadoop-2.6.0html

下面是hadoop2.6.0的官方英文教程:java

http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operationnode

hadoop下載地址:web

http://mirror.bit.edu.cn/apache/hadoop/common/ apache

選擇hadoop-2.6.0.tar.gz這個二進制文件ubuntu

安裝以前首先考慮的是hadoop的版本問題,hadoop-1x和hadoop-2x其實徹底是兩個東西,生產環境下多采用hadoop1.2.1-這是一個穩定的版本。而hadoop-2x版本更適合作實驗。bash

其次hadoop2.6.0本地庫文件是64位的,而hadoop2.4.0本地庫是32位的。若是跟系統版本不匹配,運行hadoop例子時會出現:oracle

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable(這個錯誤也多是其餘緣由致使的,我遇到的是其餘緣由,後面會說解決辦法)app

最後是hadoop的三種模式:單機、僞分佈、全分佈。其中全分佈模式至少須要三個節點。ssh

1.安裝前準備

 
1、添加hadoop用戶組和hadoop用戶

建立hadoop用戶組:sudo addgroup hadoop
建立hadoop用戶: sudo adduser -ingroup hadoop hadoop



添加結果以下(其中經過系統設置設置hadoop帳戶類型爲管理員):


進入hadoop用戶的帳號

2、安裝ssh
安裝命令:sudo apt-get install openssh-server
啓動服務:sudo /etc/init.d/ssh start

查看服務是否啓動:ps -e | grep ssh
 


設置免密碼登陸,生成私鑰和公鑰:ssh-keygen -t rsa -P ""



默認會在/home/hadoop/.ssh下生成兩個文件:id_rsa和id_rsa.pub,前者爲私鑰,後者爲公鑰。(.ssh文件是隱藏文件,CTRL+H 顯示隱藏文件)



將公鑰追加到authorized_keys中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
而後用ssh鏈接本身:ssh localhost。若是仍是須要密碼,則沒有成功。




3、安裝java jdk和配置環境變量
  
  安裝openjdk命令:sudo apt-get install openjdk-7-jdk
  然而openjdk東西比較少,能夠安裝oraclejdk:(推薦安裝Java-7-oracle)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

   最後經過:java -version查看是否安裝成功,並顯示java版本。

    查看JAVA_HOME位置:sudo update-alternatives --config java

  個人結果是/usr/lib/jvm/java-7-oracle/bin/jre/java。配置環境變量只寫到java-7-oracle。

    配置環境變量:

   命令:sudo gedit ~/.bashrc     (配置.bashrc文件,或者.profile文件)

   在文件末尾加入(第二行JAVA_HOME和第三行HADOOP_INSTALL安裝路徑改爲本身的)#HADOOP VARIABLES START

export JAVA_HOME=/usr/lib/jvm/java-7-oracle

export HADOOP_INSTALL=/usr/local/hadoop

export PATH=$PATH:$HADOOP_INSTALL/bin

export PATH=$PATH:$HADOOP_INSTALL/sbin

export HADOOP_MAPRED_HOME=$HADOOP_INSTALL

export HADOOP_COMMON_HOME=$HADOOP_INSTALL

export HADOOP_HDFS_HOME=$HADOOP_INSTALL

export YARN_HOME=$HADOOP_INSTALL

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

#HADOOP VARIABLES END

   使環境變量設置當即生效(從新註銷或者重啓都行):source ~/.bashrc

2.hadoop配置

    個人hadoop安裝路徑/usr/local/hadoop,下載的文件解壓縮後的文件名改爲了hadoop。給hadoop文件夾及其文件夾全部文件提升權限!

   hadoop配置文件放在{HADOOP安裝路徑}/etc/hadoop文件夾下:須要修改hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml五個文件。

   1.hadoop-env.sh文件,在末尾添加(第一行JAVA_HOME和第二行HADOOP_PREFIX(hadoop安裝路徑)改爲本身的)

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export HADOOP_PREFIX=/usr/local/hadoop
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"

    注意第三行的HADOOP_OPTS,若是沒有這一項運行會有:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable的錯誤提示。若是你是32位的系統,運行hadoop2.6.0還須要從新編譯本地庫。本地庫路徑爲:{hadoop安裝路徑}/lib/natives。

  查看本地庫版本命令:file /usr/loacl/hadoop/lib/native/libhadoop.so.1.0.0

  (32位)libhadoop.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

  (64位)libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

  查看系統位數:uname -a,若是有x86_64就是64位的,沒有就是32位的。

  2.core-site.xml文件,在末尾<configuration></configuration>中間添加內容,最後:

<configuration>
    <property>  
        <name>hadoop.tmp.dir</name>  
        <value>/usr/local/hadoop/tmp</value>  
        <description>Abase for other temporary directories.
</description>  
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

 

其中前一部分的hadoop.tmp.dir參數官方教程裏沒有,若是沒有配置臨時文件會默認生成在:根目錄/tmp/hadoop-hadoop中,可是重啓系統後內容會從新刪掉,會有意想不到的問題出現!!注意修改路徑.

  3.mapred-site.xml是沒有的,有一個mapred-site.xml.template文件將其更名爲mapred-site.xml就好。一樣在末尾<configuration></configuration>中間添加內容,最後:

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

 

  4.yarn-site.xml文件,在末尾<configuration><!-- Site specific YARN configuration properties --></configuration>添加內容,最後:

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

 

  5.hdfs-site.xml文件,在末尾<configuration></configuration>中間添加內容,最後:

<configuration>
<property>  
        <name>dfs.replication</name>  
        <value>1</value>  
    </property>  
    <property>  
        <name>dfs.namenode.name.dir</name>  
        <value>file:/usr/local/hadoop/dfs/name</value>  
    </property>  
    <property>  
        <name>dfs.datanode.data.dir</name>  
        <value>file:/usr/local/hadoop/dfs/data</value>  
    </property>  
</configuration>

 

  後面兩個dfs.name.dir,dfs.datanode.data.dir參數官網教程沒有(注意修改路徑),新建dfs和tmp文件夾並沒必要須,hadoop啓動後會自動生成。

3.hadoop運行

  • 格式化hdfs:/usr/local/hadoopbin/hdfs namenode -format
/usr/local/hadoop$ bin/hdfs namenode -format

當出現:INFO common.Storage: Storage directory /home/hadoop/tmp/dfs/name has been successfully formatted.表示成功。只須要格式化一次。

  • hadoop啓動,執行:/usr/local/hadoop$ sbin/start-all.sh

輸入命令檢測:jps。若是成功啓動的話會有:jps,NameNode,DataNode,SecondaryNameNode,ResourceManager,NodeManager六個進程。
 
而且查看NameNode- http://localhost:50070/
 
 
ResourceManager-http://localhost:8088/
 

4.WordCount驗證

  • dfs下建立input目錄

  /usr/local/hadoop$ bin/hadoop fs -mkdir -p input

  • 運行例子:

(1)複製一些文件到HDFS目錄/usr/<usrname>下:/usr/local/hadoop$ hadoop fs -copyFromLocal README.txt input

(2)運行:/usr/local/hadoop$ hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output

(3)運行完畢後,查看單詞統計結果  /usr/local/hadoop$ hadoop fs -cat output/*

 

  • 關閉hadoop:/usr/local/hadoop$ bin/stop-all.sh
/usr/local/hadoop$ bin/stop-all.sh  

至此搭建完成。

相關文章
相關標籤/搜索