1. 程式人生 > >(二)hadoop偽分佈模式安裝

(二)hadoop偽分佈模式安裝

本文以偽分散式模式搭建hadoop

1、三種安裝模式:

  • 單機模式:無法使用HDFS,只能使用MapReduce,主要目的是在本機測試mapreduce程式碼
  • 偽分散式模式:使用一臺機器,使用多個執行緒模擬多臺真實機器,模擬真實的分散式環境
  • 完全分散式模式:用多臺機器(虛擬機器)來完成部署叢集

2、修改主機名

使用主機名代替ip,更易配置。

  • vim /etc/hosts
127.0.0.1   localhost
::1         localhost
192.168.101.100 hadoop01
  • vim  /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop01
  • 判斷/etc/hostname檔案是否存在,若存在則修改主機名  vim /etc/hostname

hadoop01
  • 重啟:reboot

3、配置免密登入

不配置免密登入,啟動hadoop時,需要輸入密碼,很繁瑣。配置步驟如下:

  • 生成祕鑰:ssh-keygen,一直回車即可。
  • 把祕鑰傳送給自己:ssh-copy-id [email protected]

4、關閉防火牆

此處使用的centeros7版本,關閉防火牆使用命令為:systemctl stop firewalld

詳情見文章:https://blog.csdn.net/song_csdn1550/article/details/51768671

5、下載並解壓hadoop壓縮包

  • 下載:連結 :https://pan.baidu.com/s/1r5SgRD4Bi2VdaldI-wxwcw   提取碼:8mg1
  • 解壓:tar -ixf hadoop-2.7.1_64bit.tar.gz

解壓後hadoop目錄如下:

6、修改etc/hadoop/ 目錄下的配置檔案

  • vim hadoop-env.sh

修改JAVA_HOME,HADOOP_CONF_DIR,

並執行 source hadoop-env.sh 命令,讓配置立即生效。

#指定jdk的安裝路徑,儘管環境變數PATH配置了JAVA_HOME,但hadoop也需要配置
export JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
#hadoop配置檔案存放路徑
export HADOOP_CONF_DIR=/opt/hadoop-2.7.1/etc/hadoop
  • vim core-site.xml
<configuration> 
  <property> 
<!--用來指定hdfs的老大,namenode的地址-->
    <name>fs.default.name</name>  
    <value>hdfs://hadoop01:9000</value> 
  </property>  
  <property> 
<!--用來指定hadoop執行時產生檔案的存放目錄。注意目錄是要真實存在的,若沒有則自己建立-->
    <name>hadoop.tmp.dir</name>  
    <value>/opt/hadoop-2.7.1/tmp</value> 
  </property> 
<!--value的時間單位是分鐘,如果配置成0,表示不開啟HDFS的回收站
    1440=24*60,表示的一天的回收間隔,即檔案在回收站存在一天後,被清空-->
  <property>
    <name>fs.trash.interval</name>
    <value>1440</value>
  </property>
</configuration>
  • vim hdfs-site.xml
<configuration> 
<!--指定hdfs儲存資料副本的數量,包括自己,預設值是3-->
<!--如果是偽分佈模式,此值是1,因為只有一臺伺服器-->
  <property> 
    <name>dfs.replication</name>  
    <value>1</value> 
  </property> 
<!--設定hdfs的操作許可權,false表示任何使用者都可以在hdfs上操作檔案-->
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>
  • vim mapred-site.xml

先檢視當前目錄下是否存在檔案 mapred-site.xml,若沒有則把模板複製一份,複製命令如下:cp mapred-site.xml.template mapred-site.xml

<configuration> 
<!--指定mapreduce執行在yarn上-->
  <property> 
    <name>mapreduce.framework.name</name>  
    <value>yarn</value> 
  </property> 
</configuration>
  • vim yarn-site.xml
<configuration> 
<!--指定yarn的老大 resoucemanager的地址-->
  <property> 
    <name>yarn.resourcemanager.hostname</name>  
    <value>hadoop01</value> 
  </property>  
<!--NodeManager獲取資料的方式-->
  <property> 
    <name>yarn.nodemanager.aux-services</name>  
    <value>mapreduce_shuffle</value> 
  </property> 
</configuration>
  • vim slaves

從分散式的角度來看,datanode是從,namenode是主。若有多個datanode則往下寫多個即可。

對於偽分散式配置,只能配置為自己。

hadoop01
  • vim /etc/profile

啟動hadoop的命令在bin和sbin目錄裡,為了方便啟動,則把bin和sbin目錄配置到環境變數。

在檔案末尾新增如下內容:jkd和hadoop的配置。

最後執行命令執 source /etc/profile 讓配置立即生效。

#JDK安裝目錄
JAVA_HOME=/usr/java/jdk1.8.0_172-amd64
#hadoop的安裝目錄
HADOOP_HOME=/opt/hadoop-2.7.1
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH HADOOP_HOME

7、格式化

第一次啟動hadoop需要先格式化,格式化命令:hadoop namenode -format

若不成功可以重啟linux再執行命令,注意檢查自己的ip,jdk,配置檔案是否正確。

若列印資訊如下,則表示格式化成功。

8、啟動以及關閉

進入hadoop的sbin目錄,可以看到很多可以使用的命令

  • 啟動:sh start-dfs.sh  啟動後輸入命令 jps 檢視是否有如下三個程序,若有則表示成功。