天天看點

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證

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

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

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

hadoop下載下傳位址:

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

選擇hadoop-2.6.0.tar.gz這個二進制檔案

安裝之前首先考慮的是hadoop的版本問題,hadoop-1x和hadoop-2x其實完全是兩個東西,生産環境下多采用hadoop1.2.1-這是一個穩定的版本。而hadoop-2x版本更适合做實驗。

其次hadoop2.6.0本地庫檔案是64位的,而hadoop2.4.0本地庫是32位的。如果跟系統版本不比對,運作hadoop例子時會出現:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable(這個錯誤也可能是其他原因導緻的,我遇到的是其他原因,後面會說解決辦法)

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

1.安裝前準備

一、添加hadoop使用者組和hadoop使用者

建立hadoop使用者組:sudo addgroup hadoop
建立hadoop使用者:  sudo adduser -ingroup hadoop hadoop



添加結果如下(其中通過系統設定設定hadoop賬戶類型為管理者):


      
進入hadoop使用者的賬号

二、安裝ssh
安裝指令:sudo apt-get install openssh-server 
啟動服務:sudo /etc/init.d/ssh start
檢視服務是否啟動:ps -e | grep ssh      
ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證
設定免密碼登入,生成私鑰和公鑰: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。如果還是需要密碼,則沒有成功。

      
三、安裝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

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證

  我的結果是/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

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證

  (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/hadoop$ bin/hdfs namenode -format
/usr/local/hadoop$ bin/hdfs namenode -format
           

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

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證
  • hadoop啟動,執行:/usr/local/hadoop$ sbin/start-all.sh
ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證

輸入指令檢測:jps。如果成功啟動的話會有:jps,NameNode,DataNode,SecondaryNameNode,ResourceManager,NodeManager六個程序。

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證

  并且檢視NameNode- http://localhost:50070/  

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證

  ResourceManager-http://localhost:8088/  

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證

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/*

ubuntu14.04安裝hadoop2.6.0(僞分布模式)1.安裝前準備2.hadoop配置3.hadoop運作4.WordCount驗證
  • 關閉hadoop:/usr/local/hadoop$ bin/stop-all.sh
/usr/local/hadoop$ bin/stop-all.sh  
           

至此搭建完成。

轉載于:https://www.cnblogs.com/zhangduo/p/4592749.html