hadoop僞分佈式搭建以及配置,JDK的安裝配置,超詳細,超級適合新手。

一、Hadoop 簡介

Hadoop 是一個由 Apache 基金會所開發的分佈式系統基礎架構,它可以使用戶在不瞭解分佈式底層細節的情況下開發分佈式程序,充分利用集羣的威力進行高速運算和存儲。

從其定義就可以發現,它解決了兩大問題:大數據存儲、大數據分析。也就是 Hadoop 的兩大核心:HDFS 和 MapReduce。

  1. HDFS(Hadoop Distributed File System)是可擴展、容錯、高性能的分佈式文件系統,異步複製,一次寫入多次讀取,主要負責存儲。

  2. MapReduce 爲分佈式計算框架,包含map(映射)和 reduce(歸約)過程,負責在 HDFS 上進行計算

二、hadoop以及JDK的下載

JDK官方下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

我JDK雲盤鏈接:https://pan.baidu.com/s/1QDYb2smSdPt_hSpDBTdr0g

提取碼:u64i

hadoop官方鏈接:http://mirror.bit.edu.cn/apache/hadoop/common/  (這裏有所有的hadoop版本)

我的百度雲盤鏈接:https://pan.baidu.com/s/10T3YbaEmaPkcXi04idZtYw                 

提取碼:4iv0

裏面有一個詳細的搭建視頻,以及一個最新的版本,一個2.7版本的hadoop。由於個人後續學習原因,這裏搭建的爲2.7版本的hadoop

      

三、JDK的安裝及配置

hadoop搭建之前我們需要安裝jdk

  1.  將壓縮包放入xftp中,進去到JDK安裝包的目錄下,解壓 tar -zxvf jdk-8u211-linux-x64.tar.gz

  2. 配置環境變量:

    export JAVA_HOME=/home/ubuntu/jdk1.8.0_211  (此路徑爲你jdk安裝目錄的路徑,就是之前創建的目錄路徑)
    export JRE_HOME=${JAVA_HOME}/jre  
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
    export PATH=${JAVA_HOME}/bin:$PATH
  3. 配置完後,重啓配置使其生效。source /etc/profile
  4. 分別輸入 :java -version,javac驗證是否成功

四、hadoop的搭建

  1. 將安裝包放入xftp中解壓(不能加壓後放入,可能會導致文件丟失,所以一定要將安裝包放入後再解壓),然後通過tar   -zxvf  文件名.tar.gz 解壓 ,  我的安裝包放在:/home/ubun/ 故應該進入該目錄下進行解壓 。解壓命令:tar -zxvf hadoop-2.7.6.tar.gz
  2. 配置hadoop的環境變量

    在/etc/profile文件中添加如下語句:(進入/etc/profile命令:vim /etc/profile

    export HADOOP_HOME=/home/ubuntu/hadoop-2.7.6  (此路徑爲你hadoop解壓文件的路徑)

    export PATH=$PATH:$JAVA_HOME:$HADOOP_HOME/bin

  3. 配置完後,重啓配置使其生效。source /etc/profile。

  4. 運行 hadoop輸出一長串信息,說明hadoop環境變量配置成功

  5. 修改hadoop中etc/hadoop目錄下hadoop-env.sh文件 ,將其中的JAVA_HOME改爲jdk安裝目錄,我們的jdk安裝目錄爲/home/ubuntu/jdk1.8.0_211。修改後如下圖所

  6. 修改hadoop中etc/hadoop/目錄下的core-site.xml文件。這個文件的詳解可以查看官網http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml   上的說明。我們先看看io.seqfile.local.dir配置項,這個是用來指定序列文件在合併期間存儲中間數據文件的本地目錄,而它的值是 ${hadoop.tmp.dir}/io/local。我們再看看這裏面引用的臨時文件目錄配置項 hadoop.tmp.dir,它的值爲 /tmp/hadoop-${user.name}。也就是說,默認情況下,文件合併期間產生的中間數據文件存放在臨時目錄/tmp/hadoop下。大家都知道這是一個臨時文件目錄,當我們再次啓動服務器的時候,該目錄下的文件就會清空,所以,爲了更久的保存數據,我們可以重新指定一個目錄,用來存儲這些數據文件。

    我們在當前用戶目錄下創建tmp(mkdir tmp)目錄,路徑爲/home/ubuntu/tmp。打開core-site.xml文件路徑爲 //home/ubuntu/hadoop-2.7.6/etc/hadoop,如圖:   

    在<configuration>中添加如下配置

    (1)添加指定中間數據文件存放目錄的配置。

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/ubuntu/tmp</value>
    </property>

    (2)添加指定默認文件系統名稱的配置。即,請求這個hdfs的URL地址。

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

     

  7. 添加完後,使用cat命令 ---> cat  core-site.xml查看該文件信息,如下圖所示

  8. 修改hadoop中etc/hadoop目錄下的hdfs-site.xml文件。這個文件的詳解可以查看官網 http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml 上的說明。我們先看這個配置文件中的 dfs.replication 配置項,這個是用來指定hdfs的副本數的,默認值爲3。現在我們用的是僞分佈式,沒有那麼多副本節點,所以我們將其改爲1。打開hdfs-site.xml文件,在<configuration></configuration>標籤中添加如下代碼:

          

    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    修改完後,如下圖所示:

 9.設置ssh無密碼登錄。

現在當我們每次使用ssh localhost訪問的時候,都需要輸入密碼。此時我們可以改成無密碼登錄。執行 ssh-keygen -t rsa(使用rsa加密,還有一種方式是dsa)命令生成密鑰。

執行後會在用戶登錄目錄下生成.ssh目錄和id_rsa、id_rsa.pub個文件,如下圖所示:

將生成的公鑰加入到許可文件中,即將公鑰複製到 .ssh/authorized_keys中,這樣登錄就不需要密碼了。

進入/root/執行命令 cd /root/.ssh/   

cp id_rsa.pub authorized_keys,完成後.ssh目錄中的文件如下:

10. 格式化文件系統。執行hadoop中bin目錄下的hdfs namenode -format 指令即可。

11.開啓節點守護進程。執行進入hadoop 中sbin目錄 cd home/ubuntu/hadoop-2.7.6/sbin/ 執行./start-dfs.sh 指令即可。此時,可能會提示 rcmd: socket: Permission denied(沒有則更好),如下圖所示:

此時,可以在/etc/pdsh目錄下新建 rcmd_default(touch rcmd_default)文件,然後用vi打開此文件,寫入ssh,然後回車(注意:一定要回車另起一行,不然會報錯)。然後在運行 sbin/start-dfs.sh 開啓守護進程。使用jps查看進程啓動情況,如下圖所示:

12.如果想全局啓動hadoop服務器,可以配置環境變量

export HADOOP_HOME=/home/ubuntu/hadoop-2.7.6
export PATH=${JAVA_HOME}/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

輸入命令:source /etc/profile 時環境變量立即生效

start-all.sh 啓動hadoop所有服務

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章