linux下安裝hadoop


【大數據】Linux下安裝Hadoop(2.7.1)詳解及WordCount運行

 

一、引言

  在完成了Storm的環境配置之后,想着鼓搗一下Hadoop的安裝,網上面的教程好多,但是沒有一個特別切合的,所以在安裝的過程中還是遇到了很多的麻煩,並且最后不斷的查閱資料,終於解決了問題,感覺還是很好的,下面廢話不多說,開始進入正題。

  本機器的配置環境如下:

    Hadoop(2.7.1)

    Ubuntu Linux(64位系統)

  下面分為幾個步驟來詳解配置過程。

二、安裝ssh服務

  進入shell命令,輸入如下命令,查看是否已經安裝好ssh服務,若沒有,則使用如下命令進行安裝:

    sudo apt-get install ssh openssh-server

  安裝過程還是比較輕松加愉快的。

三、使用ssh進行無密碼驗證登錄

  1.創建ssh-key,這里我們采用rsa方式,使用如下命令:

    ssh-keygen -t rsa -P ""

  2.出現一個圖形,出現的圖形就是密碼,不用管它

    cat ~/.ssh/id_rsa.pub >> authorized_keys(好像是可以省略的)

  3.然后即可無密碼驗證登錄了,如下:

    ssh localhost

  成功截圖如下:

    

四、下載Hadoop安裝包

  下載Hadoop安裝也有兩種方式

    1.直接上官網進行下載,http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-2.7.1.tar.gz

    2.使用shell進行下載,命令如下:

      wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-2.7.1.tar.gz

  貌似第二種的方法要快點,經過漫長的等待,終於下載完成。

五、解壓縮Hadoop安裝包

  使用如下命令解壓縮Hadoop安裝包

    tar -zxvf hadoop-2.7.1.tar.gz

  解壓縮完成后出現hadoop2.7.1的文件夾

六、配置Hadoop中相應的文件

  需要配置的文件如下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml,所有的文件均位於hadoop2.7.1/etc/hadoop下面,具體需要的配置如下:

  1.core-site.xml 配置如下:    

    <configuration>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/leesf/program/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的路徑可以根據自己的習慣進行設置。

  2.mapred-site.xml.template配置如下:    

    <configuration>
      <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9001</value>
      </property>
    </configuration>

  3.hdfs-site.xml配置如下:

    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/leesf/program/hadoop/tmp/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/leesf/program/hadoop/tmp/dfs/data</value>
      </property>
    </configuration>

  其中dfs.namenode.name.dir和dfs.datanode.data.dir的路徑可以自由設置,最好在hadoop.tmp.dir的目錄下面。

  補充,如果運行Hadoop的時候發現找不到jdk,可以直接將jdk的路徑放置在hadoop.env.sh里面,具體如下:

    export JAVA_HOME="/home/leesf/program/java/jdk1.8.0_60"

七、運行Hadoop

  在配置完成后,運行hadoop。

  1.初始化HDFS系統

    在hadop2.7.1目錄下使用如下命令:

    bin/hdfs namenode -format

    截圖如下:

     

    過程需要進行ssh驗證,之前已經登錄了,所以初始化過程之間鍵入y即可。

    成功的截圖如下:

    

    表示已經初始化完成。

  2.開啟NameNodeDataNode守護進程

    使用如下命令開啟:

    sbin/start-dfs.sh,成功的截圖如下:

    

  3.查看進程信息

    使用如下命令查看進程信息

    jps,截圖如下:

    

    表示數據DataNode和NameNode都已經開啟

  4.查看Web UI

    在瀏覽器中輸入http://localhost:50070,即可查看相關信息,截圖如下:

    

  至此,hadoop的環境就已經搭建好了。下面開始使用hadoop來運行一個WordCount例子。

八、運行WordCount Demo

  1.在本地新建一個文件,筆者在home/leesf目錄下新建了一個words文檔,里面的內容可以隨便填寫。

  2.在HDFS中新建一個文件夾,用於上傳本地的words文檔,在hadoop2.7.1目錄下輸入如下命令:

    bin/hdfs dfs -mkdir /test,表示在hdfs的根目錄下建立了一個test目錄

    使用如下命令可以查看HDFS根目錄下的目錄結構

    bin/hdfs dfs -ls /

    具體截圖如下:

    

    表示在HDFS的根目錄下已經建立了一個test目錄

  3.將本地words文檔上傳到test目錄中

    使用如下命令進行上傳操作:

    bin/hdfs dfs -put /home/leesf/words /test/

    使用如下命令進行查看

    bin/hdfs dfs -ls /test/

    結果截圖如下:

    

    表示已經將本地的words文檔上傳到了test目錄下了。

  4.運行wordcount

    使用如下命令運行wordcount:

    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /test/words /test/out

    截圖如下:

    

    運行完成后,在/test目錄下生成名為out的文件,使用如下命令查看/test目錄下的文件

    bin/hdfs dfs -ls /test

    截圖如下:

    

    表示在test目錄下已經有了一個名為Out的文件目錄

    輸入如下命令查看out目錄下的文件:

    bin/hdfs dfs -ls /test/out,結果截圖如下:

    

    表示已經成功運行了,結果保存在part-r-00000中。

  5.查看運行結果

    使用如下命令查看運行結果:

    bin/hadoop fs -cat /test/out/part-r-00000

    結果截圖如下:

    

  至此,運行過程就已經完成了。

九、總結

  在此次的hadoop配置過程遇到了很多問題,hadoop1.x和2.x的命令還是差別很大的,配置過程中還是一一的解決了問題,配置成功了,收獲也很多,特此把這次配置的經驗分享出來,也方便想要配置hadoop環境的各位園友,在配置的過程中有任何問題都歡迎討論,謝謝各位園友的觀看~

 

參考鏈接如下:

http://www.linuxidc.com/Linux/2015-02/113487.htm

http://www.cnblogs.com/madyina/p/3708153.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM