ubuntu中搭建Hadoop環境20180908(全)


一. Ubuntu Java8 的安裝

  添加ppa

    sudo add-apt-repository ppa:webupd8team/java

    sudo apt-get update

  安裝oracle-java-installer

    sudo apt-get install oracle-java8-installer

  設置系統默認jdk

    sudo update-java-alternatives -s java-8-oracle

        java安裝測試

    java -version  

    javac -version

二、配置SSH

  1. 安裝ssh服務

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

    sudo apt-get install ssh openssh-server

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

  2. 使用ssh進行無密碼驗證登錄

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

    ssh-keygen -t rsa -P ""

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

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

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

    ssh localhost

三、Hadoop的安裝與配置

  1. 下載Hadoop安裝包

  下載Hadoop安裝也有兩種方式

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

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

      wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz 

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

 

  2. 解壓縮Hadoop安裝包

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

    tar -zxvf hadoop-2.7.7.tar.gz

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

  3. 配置Hadoop中相應的文件

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

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

    <configuration>

      <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/zjp/hadoop-2.7.7/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/zjp/hadoop-2.7.7/tmp/dfs/name</value>
         </property>
       <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/zjp/hadoop-2.7.7/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="/usr/lib/jvm/java-8-oracle"

  4.hadoop-env.sh

  5.yarn-env.sh

  6./etc/profile

4. 運行Hadoop(截圖為2.7.1版本的hadoop僅供參考)

  在配置完成后,運行hadoop。

  1.初始化HDFS系統

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

    bin/hdfs namenode -format

    截圖如下:

     

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

    成功的截圖如下:

    

    表示已經初始化完成。

  2.開啟NameNodeDataNode守護進程

    使用如下命令開啟:

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

    

  3.查看進程信息

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

    jps,截圖如下:

    

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

  4.查看Web UI

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

    

 

  至此,hadoop的環境就已經搭建好了。

四. 備注:

1. ubantu中查看java的安裝路徑

有時候,使用apt-get install 安裝了某個軟件之后,卻不知道這個軟件的安裝路徑在哪里。 那怎么樣去找出這個軟件的安裝路徑呢?

1. 首先 java -version , 輸出信息顯示確實已經安裝了java

2. whereis java , 輸出信息看出路徑在哪里

3. ls -l /usr/bin/java 看看這是否是個軟連接,找出這個軟連接指向的路徑即可

發現輸出的信息,顯示還是個軟連接,繼續找出, ls -l /etc/alternatives/java

發現輸出的信息,顯示還是個軟連接,繼續找出,ls  /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

這個就是實實在在的文件路徑了,到此,就找到了java的路徑地址。

----------------------------------------------------------------------------------

參考:http://www.blogjava.net/paulwong/archive/2014/05/04/413199.html

有時候不知道java安裝在哪里了 通過whereis java命令不能知道java真是的安裝路徑 
可以通過 update-alternatives --config java 命令察看

zjp@ubuntu :~$ update-alternatives --config java
There is only one alternative in link group java: /usr/lib/jvm/java-7-oracle/jre/bin/java
Nothing to configure.
zjp@ubuntu :~$ 


或者這種方法也可以:
進入到相應的目錄:cd /usr/bin

查看java鏈接到了哪里:ls -l java

 ------------------------------------------------------------------------------

 2. 解決hadoop啟動時,沒有啟動Datanode

hadoop在多次運行下列指令

    hadoop namenode -format

    sbin/start-dfs.sh

經常會出現沒有啟動datanode的情況。

運行命令:jps 發現沒有啟動datanode線程,現給出原因和解決方案。

原因:

當我們使用hadoop namenode -format格式化namenode時,會在namenode數據文件夾(這個文件夾為自己配置文件中dfs.name.dir的路徑)中保存一個current/VERSION文件,記錄clusterID,datanode中保存的current/VERSION文件中的clustreID的值是上一次格式化保存的clusterID,這樣,datanode和namenode之間的ID不一致。

解決方法:

第一種:如果dfs文件夾中沒有重要的數據,那么刪除dfs文件夾,再重新運行下列指令。(刪除所有節點下的dfs文件夾,dfs目錄在${HADOOP_HOME}/tmp/)  

    hadoop namenode -format

    sbin/start-dfs.sh

第二種:如果dfs文件中有重要的數據,那么在dfs/name目錄下找到一個current/VERSION文件,記錄clusterID並復制。然后dfs/data目錄下找到一個current/VERSION文件,將其中的clusterID的值替換成剛剛復制的clusterID的值即可。

總結:

其實每次運行結束Hadoop后,都應該關閉Hadoop

    sbin/stop-dfs.sh

下次想重新運行Hadoop,不用再格式化namenode,直接啟動Hadoop即可

    sbin/start-dfs.sh

 

 

 

 

 

 

 

 


免責聲明!

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



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