1. 程式人生 > >最新版hadoop2.7.1單機版與偽分散式安裝配置

最新版hadoop2.7.1單機版與偽分散式安裝配置

前提:熟悉Linux系統操作,掌握基本的Linux命令

注意:安裝路徑中不能有任何中文字元和空格!

我安裝的是ubuntu14,使用者名稱是ubuntu,機器名是ubuntu,hadoop的版本是hadoop-2.7.1.tar.gz

一、在Ubuntu下建立hadoop使用者組和使用者

1、  將hadoop使用者新增到系統使用者

ubuntu@ubuntu:~$ sudo addgroup hadoop 
ubuntu@ubuntu:~$ sudo adduser --ingroup hadoop hadoop 

2、 現在只是添加了一個使用者hadoop,它並不具備管理員許可權,我們給

hadoop使用者新增許可權,開啟/etc/sudoers檔案

ubuntu@ubuntu:~$ sudo vim /etc/sudoers

在root  ALL=(ALL:ALL)  ALL下新增hadoop  ALL=(ALL:ALL)  ALL

二、配置Java環境

1、 將jdk-7u80-linux-x64.tar.gz解壓到相應路徑(可以用命令也可以直接選中右鍵解壓),我這裡是解壓/home/ubuntu/software/java,解壓後文件夾為jdk1.7.0_80(所在路徑為/home/ubuntu/software/java/jdk1.7.0_80)

2、 解壓完之後配置環境變數

ubuntu@ubuntu:$ sudo vim /etc/profile

在最後新增如下:

export JAVA_HOME=/home/ubuntu/software/java/jdk1.7.0_80
export JRE_HOME=/home/ubuntu/software/java/jdk1.7.0_80/jre
exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
exportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
執行java -version命令驗證Java是否安裝配置成功。
ubuntu@ubuntu:~$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)


三、SSH安裝

1、  先安裝ssh。記住:從這裡開始需要先從ubuntu使用者切換到hadoop使用者

ubuntu@ubuntu:~$ su - hadoop
Password:
hadoop@ubuntu:~$ sudo apt-get install openssh-server

2、  如果ssh安裝完成之後,先啟動服務

hadoop@ubuntu:~$ sudo /etc/init.d/ssh start

啟動後通過命令檢視是否正確啟動

 hadoop@ubuntu:~$ ps -e |grep ssh

3、  作為一個安全通訊協議(ssh生成金鑰有rsa和dsa兩種生成方式,預設情況下采用rsa方式),使用時需要密碼,因此我們要設定成免密碼登入,生成私鑰和公鑰:

hadoop@ubuntu:~$ ssh-keygen -t rsa -P ""

(注:回車後會在~/.ssh/下生成兩個檔案:id_rsa和id_rsa.pub這兩個檔案是成對出現的前者為私鑰,後者為公鑰)

進入~/.ssh/目錄下,將公鑰id_rsa.pub追加到authorized_keys授權檔案中,開始是沒有authorized_keys檔案的(authorized_keys 用於儲存所有允許以當前使用者身份登入到ssh客戶端使用者的公鑰內容):

hadoop@ubuntu:~$ cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

執行ssh localhost命令進行登入:

hadoop@ubuntu:~$ ssh localhost
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-43-generic x86_64)
 
 * Documentation:  https://help.ubuntu.com/
 
18 packages can be updated.
18 updates are security updates.
 
Last login: Thu Jan 21 14:40:38 2016 from localhost

出現“Welcome to Ubuntu 14.04.3 LTS。。。”則表示登入成功。

( 注:當ssh遠端登入到其它機器後,現在你控制的是遠端的機器,需要執行退出命令才能重新控制本地主機。)

使用命令exit可以進行退出

hadoop@ubuntu:~$ exit
logout
Connection to localhost closed.

編輯/etc/hosts檔案,將

127.0.0.1      localhost
127.0.1.1       ubuntu

改為

192.168.1.128       localhost
192.168.1.128       ubuntu

注:192.168.1.128為虛擬機器機的ip地址(用命令ifconfig可以檢視ip)

四、安裝hadoop-2.7.1

1、  將hadoop-2.7.gz解壓到/usr/local下面

hadoop@ubuntu:~$ sudo tar –xzf hadoop-2.7.gz

重新命名hadoop-2.7.1資料夾名為hadoop(為了敲命令方便)

hadoop@ubuntu:~$ sudo mv hadoop-2.7.1 hadoop

2、 要確保所有的操作都是在使用者hadoop下完成的,所以將該hadoop資料夾的屬主使用者設為hadoop。

hadoop@ubuntu:/usr/local$sudo chown –R hadoop:hadoop hadoop

3、  配置hadoop-env.sh檔案(hadoop-env.sh檔案在hadoop/etc/hadoop路徑下面)

hadoop@ubuntu:/usr/local$ sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

在hadoop-env.sh中export JAVA_HOME後面新增以下資訊(JAVA_HOME路徑改為實際路徑):

export JAVA_HOME=/home/ubuntu/software/java/jdk1.7.0_80
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL

儲存之後執行下面命令使配置生效

 hadoop@ubuntu:/usr/local/hadoop/etc/hadoop$source hadoop-env.sh


再到/etc/profile中新增HADOOP_INSTALL並修改PATH,結果為

export JAVA_HOME=/home/ubuntu/software/java/jdk1.7.0_80
export JRE_HOME=/home/ubuntu/software/java/jdk1.7.0_80/jre
export HADOOP_INSTALL=/usr/local/hadoop
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
exportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin

儲存後重啟虛擬機器。

切換到hadoop使用者,

執行命令

hadoop@ubuntu:/usr/local/hadoop$ hadoop version

如果看到如下hadoop版本資訊則表示hadoop單機模式安裝成功

hadoop@ubuntu:/usr/local/hadoop$ hadoop version
Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r15ecc87ccf4a0228f35af08fc56de536e6ce657a
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using/usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.1.jar


現在執行一下hadoop自帶的例子wordcount來感受以下MapReduce過程:
在hadoop目錄下新建input資料夾

hadoop@ubuntu:/usr/local/hadoop$ sudo mkdir input 


將etc中的所有檔案拷貝到input資料夾中

hadoop@ubuntu:/usr/local/hadoop$ cp etc/*input 

執行wordcount程式,並將結果儲存到output中(注意input所在路徑、jar所在路徑)

hadoop@ubuntu:/usr/local/hadoop/share/hadoop/mapreduce$bin/hadoop jar hadoop-mapreduce-examples-2.7.1.jarwordcount /usr/local/hadoop/input/hadoop output

執行

hadoop@ubuntu:/usr/local/hadoop$ cat output/*

會看到conf所有檔案的單詞和頻數都被統計出來。 

到此單機模式已經安裝成功,下面可以接著偽分佈模式安裝

一、在/etc/hadoop下配置一下幾個檔案core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
在後面新增如下資訊

core-site.xml
<configuration>
<property>
       <name>hadoop.tmp.dir</name>
       <value>file:/usr/local/hadoop/tmp</value>
       <description>Abase for other temporarydirectories.</description>
</property>
<property> 
       <name>fs.defaultFS</name> 
       <value>hdfs://192.168.154.128:9000</value> 
</property> 
</configuration>

hdfs-site.xml
<configuration>
   <property> 
       <name>dfs.replication</name> 
       <value>1</value> 
   </property> 
   <property> 
       <name>dfs.namenode.name.dir</name> 
       <value>file:/usr/local/hadoop/tmp/dfs/name</value> 
   </property> 
   <property> 
       <name>dfs.datanode.data.dir</name> 
       <value>file:/usr/local/hadoop/tmp/dfs/data</value> 
   </property>
</configuration>

mapred-site.xml(沒有則複製一份mapred-site.xml.template並命名為mapred-site.xml)
<configuration>
<property>   
       <name>mapreduce.framework.name</name> 
       <value>yarn</value>    
</property>
</configuration>

yarn-site.xml
<configuration>
<property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
</property>
<property>
       <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
       <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

二、HDFS檔案系統格式化和系統啟動

下面進行HDFS檔案系統進行格式化:

 $bin/hdfs namenode -format

然後啟用NameNode及DataNode程序:

hadoop@ubuntu:/usr/local/hadoop$ sbin/start-dfs.sh
hadoop@ubuntu:/usr/local/hadoop$ sbin/start-yarn.sh

啟動程序之後用jps命令檢視程序情況,出現6個程序名字說明啟動成功

8431 JobTracker  
8684 TaskTracker  
7821 NameNode  
7281 DataNode
8915 Jps  
8341 SecondaryNameNode 


至此,hadoop偽分散式安裝成功。