hadoop 基礎安裝配置

1. 目的說明

本文檔提供apache hadoop的基礎安裝手冊质涛,適用于快速入門練習使用阐斜;生產環(huán)境配置,在關鍵步驟和重要參數(shù)設置需要小心對待。

2. 參考文檔

《hadoop權威指南-第3版》
hadoop Reference Document

3. 系統(tǒng)準備

準備3臺centos6.5服務器御毅,機器配置保證2g內存根欧,連通外網。

server info:
hostname            ip
master          192.168.0.180
slave1          192.168.0.181
slave2          192.168.0.182

準備oracle JDK

http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html

準備apache hadoop

http://hadoop.apache.org/releases.html
#選擇已經編譯好的binary

4. 基礎環(huán)境配置

基礎環(huán)境搭建端蛆,主要是用戶創(chuàng)建凤粗、JDK環(huán)境和ssh無密碼登陸;在虛擬機環(huán)境中今豆,通常先在一個虛擬機上配置好JDK和ssh無密碼登陸嫌拣,只需要clone或者直接copy2份虛擬機,然后更改ip和主機名呆躲。本次實驗是按完整的3臺完整虛擬機操作异逐,安裝時選擇basic server。

4.1 網絡環(huán)境配置

先在master機器上操作插掂,slave1和slave2重復同樣的操作:

主機名配置

vi /etc/sysconfig/network
#修改hostname
hostname=master

hosts配置

vi /etc/hosts
#添加以下內容
192.168.0.180   master
192.168.0.181   slave1
192.168.0.182   slave2

網卡文件配置

vi /etc/sysconfig/network-scripts/ifcfg-etho
#修改以下內容
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.181
GATEWAY=192.168.0.1
NETMASK=255.255.255.0

#重啟網絡服務
service network restart

DNS配置

vi /etc/resolv.conf
#添加以下內容
nameserver  114.114.114.114

關閉防火墻

service iptables stop
chkconfig iptables off

關閉selinux

vi /etc/selinux/config
#修改SELINUX
SELINUX=disabled

4.2 JDK安裝配置

#檢查是否安裝JDK:
rpm -qa | grep java

#卸載JDK
rpm -e java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

#安裝oracle JDK
scp jdk-8u111-linux-x64.tar.gz root@master:~/

mkdir -p /usr/java
tar -zxvf jdk-8u111-linux-x64.tar.gz -C /usr/java

#修改環(huán)境變量
vi /etc/profile

#末行添加以下內容
export JAVA_HOME=/usr/java/jdk1.8.0_111
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#環(huán)境變量生效
source /etc/profile

#驗證環(huán)境變量
java -version
javac -version

4.3 用戶和目錄創(chuàng)建

#創(chuàng)建用戶組和用戶
groupadd hadoop
useradd -g hadoop -s /bin/bash -d /home/hadoop -m hadoop
passwd hadoop

#創(chuàng)建hadoop介質目錄
mkdir -p /opt/hadoop/

#創(chuàng)建hadoop存儲目錄
mkdir -p /hadoop/hdfs/name
mkdir -p /hadoop/hdfs/data
mkdir -p /hadoop/tmp

#目錄權限
chown hadoop.hadoop -R /hadoop
chown hadoop.hadoop -R /opt/hadoop

4.4 ssh無密碼登陸

master和slave操作灰瞻。

#生成公鑰私鑰
su - hadoop
ssh-keygen -t rsa -P ''
chmod 700 ~/.ssh

master操作

#復制公鑰到slave機器
ssh-copy-id hadoop@slave1
ssh-copy-id hadoop@slave2

#測試是否可以登陸
ssh slave1
ssh slave2

5. hadoop安裝配置

5.1 hadoop介質配置

上傳hadoop介質

scp hadoop-2.7.3.tar.gz root@master:~/

配置hadoop介質和環(huán)境變量

su - hadoop

#解壓介質
tar -zxvf hadoop-2.7.3.tar.gz -C /opt/hadoop/

#編輯環(huán)境變量,slave最好也配置一下hadoop環(huán)境變量辅甥。
vi ~/.bash_profile
#添加以下內容
export HADOOP_HOME=/opt/hadoop/hadoop-2.7.3/

#PATH增加hadoop的bin目錄
PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin

#使之生效
source ~/.bash_profile

5.2 配置core-site.xml

vi core-site.xml
#修改以下內容
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
</configuration>

5.3 配置hdfs-site.xml

vi hdfs-site.xml
#添加以下內容
<configuration>
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/hadoop/hdfs/name</value>
   </property>
   <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/hadoop/hdfs/data</value>
   </property>
   <property>
       <name>dfs.replication</name>
       <value>2</value>
   </property>
   <property>
       <name>dfs.namenode.secondary.http-address</name>
       <value>master:9001</value>
   </property>
   <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
   </property>
</configuration>

5.4 配置mapred-site.xml

#默認沒有mapred-site.xml酝润,需要copy一份模版
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vi etc/hadoop/mapred-site.xml

#添加以下內容
<configuration>
   <property>
        <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.address</name>
       <value>master:10020</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.webapp.address</name>
       <value>master:19888</value>
   </property>
</configuration>

5.5 配置yarn-site.xml

vi yarn-site.xml
#添加以下內容
<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>
   <property>
       <name>yarn.nodemanager.resource.memory-mb</name>
       <value>1600</value>
   </property>
</configuration>
```

### 5.6 配置相關env.sh
配置hadoop-env.sh
```bash
cd $HADOOP_HOME
vi etc/hadoop/hadoop-env.sh
```

配置yarn-env.sh
```bash
cd $HADOOP_HOME
vi etc/hadoop/yarn-env.sh
#修改JAVE_HOME
#修改JAVA_HEAP_MAX=-Xmx3072m
```
5.7 配置slave文件
添加slave機器
```bash
vi etc/hadoop/slaves
#添加以下內容
slave1
slave2
```

### 5.8 同步hadoop介質
```bash
scp -r hadoop-2.7.3 slave1:/opt/hadoop
scp -r hadoop-2.7.3 slave2:/opt/hadoop
```
## 6. hadoop環(huán)境驗證

### 6.1 hadoop進程管理
```bash
#啟動hadoop進程
cd $HADOOP_HOME
sbin/start-dfs.sh
sbin/start-yarn.sh

#關閉hadoop進程
sbin/stop-dfs.sh
sbin/stop-yarn.sh
#start-all.sh和stop-all.sh雖然支持,但已經標明被廢棄了璃弄。
```
### 6.2 hadoop運行狀態(tài)檢查
分別在3臺虛擬機上驗證進程
master狀態(tài):
```bash
#狀態(tài)檢查
hdfs dfsadmin -report

#進程檢查
[hadoop@master hadoop-2.7.3]$ jps
31616 Jps
31355 ResourceManager
31071 SecondaryNameNode
```

slave狀態(tài):
```bash
[hadoop@slave1 ~]$ jps
30885 NodeManager
30987 Jps
30669 DataNode
```
登陸web管理平臺
```
http://master:8088/cluster
```

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/68803-ea481d5c8dc91eec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


```
http://master:50070
```

![Paste_Image.png](http://upload-images.jianshu.io/upload_images/68803-d0a4caf99ea5b853.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 6.3 運行wordcount示例
```bash
#創(chuàng)建hadoop目錄
hdfs dfs -mkdir /test

#上傳運行的文本要销,隨便寫幾個單詞
hdfs dfs -put test.txt /test/
hdfs dfs -ls /test/

#運行wordcount
cd $HADOOP_HOME
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/test.txt /test/out

#驗證運行結果
[hadoop@master hadoop-2.7.3]$ hdfs dfs -ls /test/out
Found 2 items
-rw-r--r--   2 hadoop supergroup          0 2016-11-20 20:56 /test/out/_SUCCESS
-rw-r--r--   2 hadoop supergroup         41 2016-11-20 20:56 /test/out/part-r-00000

[hadoop@master hadoop-2.7.3]$ hdfs dfs -cat /test/out/part-r-00000
china   1
hadoop  1
hello   1
people  1
word    1
```

## 7. hadoop故障排查
### 7.1 啟動前的檢查
檢查防火墻關閉
檢查hosts正確配置
檢查主機網絡正確配置
檢查selinux關閉
檢查JDK安裝正確
檢查ssh無密碼登陸正確
檢查hadoop存儲和介質目錄權限正確
檢查hadoop配置文件(重要的4個)是否正確

檢查yarn-site.xml,此項參數(shù)設計hadoop性能調優(yōu)夏块,入門暫不考慮這個參數(shù)疏咐,保證大于1536即可,否則有可能會導致wordcount運行失敗脐供。
 ```xml
 <property>
       <name>yarn.nodemanager.resource.memory-mb</name>
       <value>1600</value>
   </property>
```
檢查yarn-env.sh浑塞,此項參數(shù)涉及hadoop性能調優(yōu),入門暫不考慮這個參數(shù)政己。
```bash
JAVA_HEAP_MAX=-Xmx3072m
```

### 7.2 運行日志
運行日志在$HADOOP_HOME/logs中:
```bash
cd $HADOOP_HOME
[hadoop@master logs]$ ls
hadoop-hadoop-namenode-master.log             hadoop-hadoop-secondarynamenode-master.out.2
hadoop-hadoop-namenode-master.out             hadoop-hadoop-secondarynamenode-master.out.3
hadoop-hadoop-namenode-master.out.1           SecurityAuth-hadoop.audit
hadoop-hadoop-namenode-master.out.2           yarn-hadoop-resourcemanager-master.log
hadoop-hadoop-namenode-master.out.3           yarn-hadoop-resourcemanager-master.out
hadoop-hadoop-secondarynamenode-master.log    yarn-hadoop-resourcemanager-master.out.1
hadoop-hadoop-secondarynamenode-master.out    yarn-hadoop-resourcemanager-master.out.2
hadoop-hadoop-secondarynamenode-master.out.1  yarn-hadoop-resourcemanager-master.out.3

#查看日志信息酌壕,slave機器類似操作
vi hadoop-hadoop-namenode-master.log
```
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市匹颤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌托猩,老刑警劉巖印蓖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異京腥,居然都是意外死亡赦肃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來他宛,“玉大人船侧,你說我怎么就攤上這事√鳎” “怎么了镜撩?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長队塘。 經常有香客問我袁梗,道長,這世上最難降的妖魔是什么憔古? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任遮怜,我火速辦了婚禮,結果婚禮上鸿市,老公的妹妹穿的比我還像新娘锯梁。我一直安慰自己,他們只是感情好焰情,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布陌凳。 她就那樣靜靜地躺著,像睡著了一般烙样。 火紅的嫁衣襯著肌膚如雪冯遂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天谒获,我揣著相機與錄音蛤肌,去河邊找鬼。 笑死批狱,一個胖子當著我的面吹牛裸准,可吹牛的內容都是我干的。 我是一名探鬼主播赔硫,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼炒俱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了爪膊?” 一聲冷哼從身側響起权悟,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎推盛,沒想到半個月后峦阁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡耘成,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年榔昔,在試婚紗的時候發(fā)現(xiàn)自己被綠了驹闰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡撒会,死狀恐怖嘹朗,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情诵肛,我是刑警寧澤屹培,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站曾掂,受9級特大地震影響惫谤,放射性物質發(fā)生泄漏。R本人自食惡果不足惜珠洗,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一溜歪、第九天 我趴在偏房一處隱蔽的房頂上張望许蓖。 院中可真熱鬧蝴猪,春花似錦、人聲如沸膊爪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽米酬。三九已至沛豌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赃额,已是汗流浹背加派。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跳芳,地道東北人芍锦。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像飞盆,于是被迫代替她去往敵國和親娄琉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容