Hadoop偽分布式安裝


下載地址:

http://hadoop.apache.org/releases.html

   

   

   

注意:

source表示源碼

binary表示二級制包(安裝包)

   

   

   

安裝模式

單機模式:不能使用HDFS,只能使用MapReduce,所以單機模式最主要的目的是在本機調試mapreduce代碼

偽分布式模式:用多個線程模擬多台真實機器,即模擬真實的分布式環境。

完全分布式模式:用多台機器(或啟動多個虛擬機)來完成部署集群。

   

   

安裝步驟:

0.關閉防火牆

執行:service iptables stop 這個指令關閉完防火牆后,如果重啟,防火牆會重新建立,所以,如果想重啟后防火牆還關閉,

需額外執行:chkconfig iptables off

   

1.配置主機名

執行:vim /etc/sysconfig/network

編輯主機名

注意:主機名里不能有下滑線,或者特殊字符 #$,不然會找不到主機導致無法啟動

這種方式更改主機名需要重啟才能永久生效,因為主機名屬於內核參數。

如果不想重啟,可以執行:hostname hadoop01。但是這種更改是臨時的,重啟后會恢復原主機名。

所以可以結合使用。先修改配置文件,然后執行:hostname hadoop01 。可以達到不重啟或重啟都是主機名都是同一個的目的

   

   

   

2.配置hosts文件

執行:vim /etc/hosts

   

   

   

3.配置免秘鑰登錄

   

   

hadoop01節點執行:

執行:ssh-keygen

然后一直回車

   

   

生成節點的公鑰和私鑰,生成的文件會自動放在/root/.ssh目錄下

   

   

然后把公鑰發往遠程機器,比如hadoop01向hadoop01發送

執行:ssh-copy-id root@hadoop01

此時,hadoop02節點就是把收到的hadoop秘鑰保存在

/root/.ssh/authorized_keys 這個文件里,這個文件相當於訪問白名單,凡是在此白明白存儲的秘鑰對應的機器,登錄時都是免密碼登錄的。

當hadoop01再次通過ssh遠程登錄hadoop01時,發現不需要輸入密碼了。

   

hadoop02節點執行上述上述步驟,讓hadoop02節點連接hadoop01免密碼登錄

4.配置自己節點登錄的免密碼登錄

如果是單機的偽分布式環境,節點需要登錄自己節點,即hadoop01要登錄hadoop01

但是此時是需要輸入密碼的,所以要在hadoop01節點上

執行:ssh-copy-id root@hadoop01

   

   

5.安裝和配置jdk

執行: vi /etc/profile

2)在尾行添加

#set java environment

JAVA_HOME=/usr/local/src/java/jdk1.7.0_51

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME PATH CLASSPATH

保存退出

3)source /etc/profile 使更改的配置立即生效

4)java -version 查看JDK版本信息。如顯示1.7.0證明成功。

   

6.上傳和解壓hadoop安裝包

執行:tar -xvf hadoop……

目錄說明:

bin目錄:命令腳本

etc/hadoop:存放hadoop的配置文件

lib目錄:hadoop運行的依賴jar包

sbin目錄:啟動和關閉hadoop等命令都在這里

libexec目錄:存放的也是hadoop命令,但一般不常用

最常用的就是bin和etc目錄

   

7.配置hadoop-env.sh


這個文件里寫的是hadoop的環境變量,主要修改hadoopjava_home路徑

切換到 etc/hadoop目錄

執行:vim hadoop-env.sh

修改java_home路徑和hadoop_conf_dir 路徑

   

   

   

然后執行:source hadoop-env.sh 讓配置立即生效

   

8.修改core-site.xml

etc/hadoop目錄下

執行:vim core-site.xml

配置如下:

   

   

<configuration>

<!--用來指定hdfs的老大,namenode的地址-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop01:9000</value>

</property>

<!--用來指定hadoop運行時產生文件的存放目錄-->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/software/hadoop-2.7.1/tmp</value>

</property>

   

</configuration>

9.修改 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>

   

10.修改 mapred-site.xml

這個文件初始時是沒有的,有的是模板文件,mapred-site.xml.template

所以需要拷貝一份,並重命名為mapred-site.xml

執行:cp mapred-site.xml.template mapred-site.xml

配置如下:

   

   

<configuration>

<property>

<!--指定mapreduce運行在yarn-->

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

yarn是資源協調工具,

   

11.修改yarn-site.xml

配置如下:

   

   

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<!--指定yarn的老大 resoucemanager的地址-->

<name>yarn.resourcemanager.hostname</name>

<value>hadoop01</value>

</property>

<property>

<!--NodeManager獲取數據的方式-->

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

   

12.配置slaves文件

   

   

13.配置hadoop的環境變量

配置代碼:

   

   

JAVA_HOME=/home/software/jdk1.8

HADOOP_HOME=/home/software/hadoop-2.7.1

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

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

export JAVA_HOME PATH CLASSPATH HADOOP_HOME

   

14.格式化namenode

為什么要格式化

執行:hadoop namenode -format

如果不好使,可以重啟linux

當出現:successfully,證明格式化成功

   

 

15. hadoop的啟動

切換到sbin目錄下, 執行start-dfs.sh, 啟動hadoop相關服務; 執行start-yarn.sh, 啟動yarn相關服務。

 


免責聲明!

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



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