hadoop_cluster搭建

配置環境:
ubuntu 14.0.4 +hadoop.2.7.1
1.設置用戶sudo權限

chmod u+w /etc/sudoers
vim /etc/sudoers

在root ALL=(ALL) ALL添加
cms(這是我的用戶名根據實際情況填寫) ALL=(ALL) ALL

chmod u-w /etc/sudoers

2.設置靜態IP
systems settings---network----wired---options
彈出框,選擇ipv4 settings
地址為192.168.31.131(注意ip地址、網關、DNS等與自動方式的ip一致)

需設置的內容

3.安裝jdk
4.配置另外兩臺機器
虛擬機--管理--克隆
選擇(虛擬機中的當前狀態--創建連接克隆)
設置靜態ip,分別為192.168.31.132,192.168.31.133

5.集群環境配置
1)修改當前機器名稱
修改三臺機器里文件/etc/hostname里的值即可,修改成功后用hostname命令查看當前主機名是否設置成功。

一定要將圖中該行注釋掉,否則最后通過命令hdfs dfsadmin -report
查看 DataNode 是否正常啟動時 Live datanodes 為 0 (個人在這個坑里搗鼓了好久)

特別注意

2)配置hosts文件
在所有機器/etc/hosts文件后面加
192.168.31.131 Master
192.168.31.132 Slave1
192.168.31.133 Slave2
ping 測試

Paste_Image.png

配置ssh免登錄
1)三臺機器安裝ssh
2)Master機器利用ssh-keygen命令生成一個無密碼密鑰對。
在Master機器上執行以下命令:
ssh-keygen –t rsa
生成的密鑰對:id_rsa(私鑰)和id_rsa.pub(公鑰),默認存儲在/home/用戶名/.ssh目錄下。


查看"/home/用戶名/"下是否有".ssh"文件夾,且".ssh"文件下是否有兩個剛生產的無密碼密鑰對。
3)接著在Master節點上做如下配置,把id_rsa.pub追加到授權的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
查看是否成功


4)將公鑰復制到slave1和slave2
在master上執行

ssh-copy-id -i ~/.ssh/id_rsa.pub slave2```
并且ssh slave1等測試。

####hadoop配置文件(路徑hadoop.2.7.1/etc/hadoop)(在master上配置)
#####安裝hadoop
1.在官網上下載hadoop-2.7.1.tar.gz
2.解壓:```tar -zxvf hadoop-2.7.1.tar.gz```
3.配置環境變量
打開/etc/profile
添加(連同java的環境變量,一起給出):

![環境變量](http://upload-images.jianshu.io/upload_images/1908836-6dcb17be3a5221d9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

```soure /etc/profile```  讓配置文件立即執行
####修改配置文件
這里我只把我的實例貼出來,經供參考,更多詳細配置請參照官方文檔
1.hadoop-env.sh
該文件是 hadoop運行基本環境的配置,需要修改的為 java虛擬機的位置。
故在該文件中修改 JAVA_HOME值為本機安裝位置

The java implementation to use.

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

2.core-site.xml

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop</value> #記住該位置,為防止找不到該文件位置以及hadoop namenode -format不成功,每次在應在/opt新建一個hadoop目錄
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>

3.hdfs-site.xml
```<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///opt/hadoop/datanode</value>
  </property>
  <property>#該namenode屬性在復制到slave中去時應刪除
    <name>dfs.namenode.name.dir</name>
    <value>file:///opt/hadoop/namenode</value>
  </property>
    <property>#該namenode屬性在復制到slave中去時應刪除
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
<property>#該namenode屬性在復制到slave中去時應刪除
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

4.mapred-site.xml
這個是mapreduce 任務的配置,由于 hadoop2.x使用了yarn 框架,所以要實現分布式部署,必須在 mapreduce.framework.name屬性下配置為yarn。
版本中/etc/hadoop/ 中找不到 mapred-site.xml文件,默認情況下,/hadoop-2。7.1/etc/hadoop/文件夾下有 mapred.xml.template文件
復制并重命名
cp mapred-site.xml.template mapred-site.xml
編輯器打開此新建文件
vi mapred-site.xml
然后編輯mapred-site.xml

<configuration>
<property>  
          <name>mapreduce.framework.name</name>  
          <value>yarn</value>  
          <description>Execution framework set to Hadoop YARN.</description>  
     </property>
<property>  
          <name>mapreduce.jobhistory.address</name>  
          <value>master:10020</value>  
          <description>MapReduce JobHistory Server host:port, default port is 10020</description>  
     </property>  
     <property>  
          <name>mapreduce.jobhistory.webapp.address</name>  
          <value>master:19888</value>  
          <description>MapReduce JobHistory Server Web UI host:port, default port is 19888.</description>  
     </property>  

</configuration>

jobhistory是 Hadoop自帶了一個歷史服務器,用于記錄 Mapreduce歷史作業。默認情況下, jobhistory沒有啟動,可用手動通過命令啟動,如下所示:
Shell代碼
``jobhistory-daemon.sh start historyserver```

5.yarn-site.xml
該文件為yarn 框架的配置

<configuration>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
       <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value>                                                                                                  
    </property>


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

</configuration>

6.slaves
該文件里面保存所有slave節點的信息,hdfs
寫入以下內容(hosts里從機的主機名):

Slave1
Slave2

7.向節點服務器slave1、slave2復制我們剛剛在master服務器上配置好的hadoop

scp -r  hadoop-2.7.1 slave1 
scp -r  hadoop-2.7.1 slave2 

配置slave1、slave2
1)配置環境變量,/etc/profile 與上面master配置一致
2)刪除hdfs-site中的多余屬性(在前面已標注)

啟動hadoop

在每次namenod之前,最好
在三個機器/opt下 先刪除臨時文件 hadoop
然后新建 hadoop/
修改權限:

chown -R cms hadoop

避免
hadoop namenode -format 失敗
1)執行hadoop namenode -format
出現

則成功格式化HDFS
如果不成功,執行上述刪除臨時文件夾等步驟再格式化

2)在master上啟動集群
start-dfs.sh
start-yarn.sh

3)用jps檢驗各后臺進程是否成功啟動
master


slave1

slave2

缺少任一進程都表示出錯。另外還需要在 Master 節點上通過命令 hdfs dfsadmin -report
查看 DataNode 是否正常啟動,如果 Live datanodes 不為 0 ,則說明集群啟動成功。例如我這邊一共有2 個 Datanodes:

master:8088能顯示你的集群狀態
master: 50070能進行一些節點的管理

#######向hadoop集群系統提交第一個mapreduce任務
1)hadoop fs -mkdir /tmp 在虛擬分布式文件系統上創建一個測試目錄tmp
2)hadoop fs -put 1.txt /tmp/1.txt
將當前目錄下的帶有任意單詞的文件復制到虛擬分布式文件系統中
例如,我的文件

3)hadoop fs -ls /tmp查看文件系統中是否存在我們所復制的文件


4)復制hadoop安裝目錄下的mapreduce example 的jar 包到/opt目錄下
cp /hadoop-2.7.1/share/mapreduce/hadoop-mapreduce-examples-2.7.1.jar /opt
5)運行單詞計數mapreduce任務
hadoop jar /opt/hadoop-mapreduce-examples-2.7.1.jar wordcount /tmp/1.txt /tmp/1_out

運行成功

4)查看任務輸出

li  1
ou  2
rt  2
we  3```
至此,集群搭建成功
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,048評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,414評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,169評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,722評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,465評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,823評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,813評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,000評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,554評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,295評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,513評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,722評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,125評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,430評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,237評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,482評論 2 379

推薦閱讀更多精彩內容