Hadoop安裝

環境

ubuntu18 + hadoop2.7.7 + jdk1.8


準備

  1. 版本選擇
    根據Hadoop HBase JAVA版本兼容情況, 推薦安裝 Hadoop-2.7.1+ 與 Java1.8
  2. 安裝java, 並添加環境變量
    添加PPA倉庫(這是OpenJdk 8 PPA倉庫)
    sudo add-apt-repository ppa:openjdk-r/ppa
    sudo apt-get update 
    sudo apt-get install openjdk-8-jdk
    
    vi /etc/profile   # vi---vim
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
    export PATH=/opt/hadoop/hdfs/bin:$PATH      # 爲之後安裝的Hadoop配置變量
    
    source /etc/profile    # 讓設置生效
    
    若系統安裝了多個版本的java, 可用下面語句進行切換
    sudo update-alternatives --config java   # 更新可選java配置
    java -version         # 查看Java版本
    
    安裝ssh (略)

安裝

Hadoop部署方式分三種,Standalone mode、Pseudo-Distributed mode、Cluster mode,其中前兩種都是在單機部署。

  1. Hadoop單機模式安裝
    standalone mode(獨立模式)這種模式下僅1個節點運行1個java進程,主要用於調試
    本地模式是最簡單的模式,所有模塊都運行與一個JVM進程中,使用的本地文件系統,而不是HDFS,本地模式主要是用於本地開發過程中的運行調試用。下載hadoop安裝包後不用任何設置,默認的就是本地模式。

    • 創建 hadoop 用戶, 並加入 sudo 用戶組.
      sudo adduser hadoop   
      sudo usermod -G sudo hadoop
      
    • 下載並安裝Hadoop
      wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz  #或者從官網下載
      tar zxvf hadoop-2.7.7.tar.gz
      mv hadoop2.7.7 /opt/hadoop/hdfs  # 移動文件並重命名
      chmod 777 /opt/hadoop      # 授予hadoop用戶讀寫權限
      
    • 配置Hadoop
      cd /opt/hadoop/hdfs
      vi etc/hadoop/hadoop-env.sh       # 
      
      在文件中添加以下語句
      export JAVA_HOME=/usr/java/latest                      # set to the root of your Java installation
      export HADOOP_PREFIX=/opt/hadoop/hdfs         # 設置成你的hadoop安裝文件夾
      
    • 驗證(運行自帶的wordcount程序)
      hadoop version   
      
      mkdir input                           # 在Hadoop的安裝目錄下,創建input目錄
      cp etc/hadoop/*.xml input       # 拷貝input文件到input目錄下
      bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input output 'dfs[a-z.]+'          執行Hadoop job
      cat output/*                      # 查看結果
      
  2. 僞分佈式安裝
    修改設定文件 (確保當前所在目錄爲hadoop安裝目錄)

    # vi etc/hadoop/core-site.xml   
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    
    # vi etc/hadoop/hdfs-site.xml
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    

    設置ssh免密碼登錄
    現在檢查你是否可以在沒有密碼的情況下ssh到localhost

    ssh localhost
    

    如果在沒有密碼短語的情況下無法ssh到localhost,請執行以下命令

      ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
      cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    

    執行
    以下是在本地運行MapReduce作業。如果要在YARN上執行作業,請參閱單節點上的YARN

    格式化文件系統

    bin/hdfs namenode -format

    啓動NameNode守護程序和DataNode守護程序

    sbin/start-dfs.sh

    hadoop守護程序日誌輸出將寫入$ HADOOP_LOG_DIR目錄(默認爲$ HADOOP_HOME / logs)

    打開瀏覽器檢查是否運行成功
    輸入:http://localhost:8088 進入ResourceManager管理頁面 (需要配置yarn)
    輸入:http://localhost:50070 進入HDFS頁面

    測試驗證

       hdfs dfs -mkdir -p /user/hadoop/input     # 創建執行MapReduce作業所需的HDFS目錄
       hdfs dfs -put etc/hadoop input      # 將輸入文件複製到分佈式文件系統中
       bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input output 'dfs[a-z.]+'                # 執行示例
        # 將輸出文件從分佈式文件系統複製到本地文件系統並檢查
       bin/hdfs dfs -get output output
       cat output/*
       # 或 直接查看分佈式文件系統上的輸出文件
       hdfs dfs -cat output/*
    

    測試驗證完成, 停止守護進程

    sbin/stop-dfs.sh

    單節點上的YARN
    可以通過設置一些參數並運行ResourceManager守護程序和NodeManager守護程序,以僞分佈式模式在YARN上運行MapReduce作業。
    配置參數如下:
    修改mapred-site.xml文件

    # vi etc/hadoop/mapred-site.xml
    	<configuration> 
    	    <property> 
    	        <name> mapreduce.framework.name </name> 
    	        <value> yarn </value> 
    	    </property> 
    	</configuration>
    

    修改yarn-site.xml文件

    #vi etc/hadoop/
    <configuration> 
        <property> 
           <name> yarn.nodemanager.aux-services </name> 
           <value> mapreduce_shuffle </value> 
       </ property> 
    </configuration>
    

    啓動ResourceManager守護程序和NodeManager守護程序:

    sbin/start-yarn.sh

    運行MapReduce作業
    完成後,停止守護進程

    stop-yarn.sh


總結分析

  1. ConnectionRefused Exception錯誤
    官方解答
    開關防火牆及端口命令
    Check that there isn’t an entry for your hostname mapped to 127.0.0.1 or 127.0.1.1 in /etc/hosts (Ubuntu is notorious for this)
  2. 重裝方法
    直接刪除Hadoop文件
  3. 足以hosts文件配置

[參考與拓展]

HBase參考指南
Hadoop、Hbase、Hive版本兼容性
Hadoop官方文檔
Hadoop單機部署
Hadoop環境搭建
[HBase安裝]

[小貼士

jps , chmod , hosts文件

chmod

hosts原理及作用
環境變量的作用?

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