hadoop安裝教程,分佈式配置 CentOS7 Hadoop3.1.2 CentOS7卸載 OpenJDK 安裝Sun的JDK8

 

安裝前的準備

1、 準備4臺機器、或虛擬機

4臺機器的名稱和IP對應以下html

master:192.168.199.128java

slave1:192.168.199.129node

slave2:192.168.199.130linux

slave3:192.168.199.131vim

 

二、分別爲4臺機器安裝JDK8

步驟詳細請參考: CentOS7卸載 OpenJDK 安裝Sun的JDK8瀏覽器

 

三、爲4臺機器配置host name

192.168.199.128配置hostname爲masterapp

192.168.199.129配置hostname爲slave1框架

192.168.199.130配置hostname爲slave2ssh

192.168.199.131配置hostname爲slave3分佈式

 具體操做爲:

執行以下命令修改本身所用節點的IP映射:

$ sudo vim /etc/hosts

咱們在 /etc/hosts 中將該映射關係填寫上去便可,以下圖所示(通常該文件中只有一個 127.0.0.1,其對應名爲 localhost,若是有多餘的應刪除,特別是不能有 「127.0.0.1 Master」 這樣的記錄)

4臺機器執行上面一樣操做,所有配置相同的hostname

 

四、爲master機器配置 slave一、slave二、slave3的SSH免密登陸

這個操做是要讓 Master 節點能夠無密碼 SSH 登錄到各個 Slave 節點上。

首先生成 Master 節點的公匙,在 Master 節點的終端中執行(由於改過主機名,因此還須要刪掉原有的再從新生成一次)

$ cd ~/.ssh               # 若是沒有該目錄,先執行一次ssh localhost
$ rm ./id_rsa*            # 刪除以前生成的公匙(若是有)
$ ssh-keygen -t rsa       # 一直按回車就能夠

 讓 Master 節點需能無密碼 SSH 本機,在 Master 節點上執行:

cat ./id_rsa.pub >> ./authorized_keys

完成後可執行 ssh Master 驗證一下(可能須要輸入 yes,成功後執行 exit 返回原來的終端)。接着在 Master 節點將上公匙傳輸到 Slave1 節點:

$ scp ~/.ssh/id_rsa.pub root@slave1:/home

scp 是 secure copy 的簡寫,用於在 Linux 下進行遠程拷貝文件,相似於 cp 命令,不過 cp 只能在本機中拷貝。執行 scp 時會要求輸入 Slave1 上 hadoop 用戶的密碼(hadoop),輸入完成後會提示傳輸完畢,以下圖所示:

接着在 Slave1 節點上,將 ssh 公匙加入受權:

$ mkdir ~/.ssh       # 若是不存在該文件夾需先建立,若已存在則忽略
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ rm id_rsa.pub    # 用完就能夠刪掉了

若是有其餘 Slave 節點,也要執行將 Master 公匙傳輸到 Slave 節點、在 Slave 節點上加入受權這兩步。

這樣,在 Master 節點上就能夠無密碼 SSH 到各個 Slave 節點了,可在 Master 節點上執行以下命令進行檢驗,以下圖所示:

$ ssh slave1

 

 slave二、slave3 執行以上一樣操做,將maser的公鑰文件導入到本身的authorized_keys文件中,而後測試master的免密登陸

 

Hadoop安裝教程分佈式配置 CentOS7 Hadoop3.1.2

 

3 安裝hadoop

一、在linux根路徑建立目錄cloud:sudo mkdir cloud

二、解壓hadoop到cloud目錄中:tar -zxvf hadoop-2.2.0.tar.gz -C /cloud/

三、進入目錄:/cloud/hadoop/etc/hadoop

3、修改配置文件

一、修改hadoop-env.sh,配置java jdk路徑,大概在27行配置,以下:

export JAVA_HOME=/home/software/jdk1.7

二、修改core-site.xml,配置內容以下

1
2
3
4
5
6
7
8
9
10
11
12
< configuration >
     <!-- 指定HDFS老大(namenode)的通訊地址 -->
< property >
     < name >fs.defaultFS</ name >
     < value >hdfs://locahost:9000</ value >
</ property >
     <!-- 指定hadoop運行時產生文件的存儲路徑 -->
< property >
         < name >hadoop.tmp.dir</ name >
         < value >/cloud/hadoop/tmp</ value >
</ property >
</ configuration >

三、修改hdfs-site.xml,修改配置以下

1
2
3
4
5
<!-- 設置hdfs副本數量 -->
< property >
     < name >dfs.replication</ name >
     < value >1</ value >
</ property >

四、修改mapred-site.xml 因爲在配置文件目錄下沒有,須要修更名稱:mv mapred-site.xml.template mapred-site.xml

複製代碼
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>
複製代碼

五、修改yarn-site.xml,修改內容以下

1
2
3
4
5
6
7
8
9
10
11
< configuration >
<!-- reducer取數據的方式是mapreduce_shuffle -->
< property >
     < name >yarn.nodemanager.aux-services</ name >
     < value >mapreduce_shuffle</ value >
</ property >
< property >
     < name >yarn.resourcemanager.hostname</ name >
     < value >localhost</ value >
</ property >
</ configuration >

六、講hadoop添加到環境變量,而後更新一下環境變量:source /etc/profile

export JAVA_HOME=//home/software/jdk1.7
export HADOOP_HOME=/cloud/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
.7. workers中設置slave節點,將slave機器的名稱寫入
  1. slave1
  2. slave2
  3. slave3

 

4、啓動hadoop

一、格式化hadoop,進入目錄:/cloud/hadoop/etc/hadoo,執行下列之一命令便可


hdfs namenode -format

二、啓動hdfs和yarn

先啓動HDFS
sbin/start-dfs.sh

再啓動YARN
sbin/start-yarn.sh

三、驗證是否成功,使用命令:jps,輸出以下即表示配置成功。

1
2
3
4
5
6
7
12272 Jps
4135 JobTracker
9500 SecondaryNameNode
9943 NodeManager
9664 ResourceManager
8898 NameNode
9174 DataNode

四、能夠在瀏覽器中查看hdfs和mr的狀態.hdfs管理界面:http://localhost:50070  MR的管理界面:http://localhost:8088 

5、hdfs基本操做和wordcount程序

 一、進入hadoop安裝目錄中的share:/cloud/hadoop/share/hadoop/mapreduce

二、ls列出當前路徑下的文件,內容以下,其中帶有example字樣的爲樣例程序

1
2
3
4
5
6
7
8
9
10
11
12
hadoop-mapreduce-client-app-2.2.0.jar
hadoop-mapreduce-client-common-2.2.0.jar
hadoop-mapreduce-client-core-2.2.0.jar
hadoop-mapreduce-client-hs-2.2.0.jar
hadoop-mapreduce-client-hs-plugins-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0.jar
hadoop-mapreduce-client-jobclient-2.2.0-tests.jar
hadoop-mapreduce-client-shuffle-2.2.0.jar
hadoop-mapreduce-examples-2.2.0.jar
lib
lib-examples
sources

 三、新建words文件,內容輸入以下,而後使用命令上傳到hdfs目錄下:hadoop fs -put words hdfs://localhost:9000/words

1
2
3
4
hello tom
hello kitty
hello world
hello tom

四、在命令行中敲入:hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcounthdfs://localhost:9000/wordshdfs://localhost:9000/out

五、打開頁面:http://192.168.199.128:9870

 

 

 

六、點擊上圖中的Browse the filesystem,跳轉到文件系統界面,以下所示:

 

七、繼續點擊上圖的out/part-r-00000,wordcount程序最終運行的結果如圖所示:

 

 

 

5可能出現的錯誤提示

there is no YARN_RESOURCEMANAGER_USER defined

there is no HDFS_NAMENODE_USER defined

解決辦法:

將start-dfs.sh,stop-dfs.sh兩個文件頂部添加如下參數

HDFS_NAMENODE_USER=root

HDFS_DATANODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

YARN_RESOURCEMANAGER_USER=root

YARN_NODEMANAGER_USER=root

 

 start-yarn.sh,stop-yarn.sh頂部也需添加如下

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

相關文章
相關標籤/搜索