生產(chǎn)環(huán)境磁盤規(guī)劃問題
首先我們datanode節(jié)點的數(shù)據(jù)是否需要做RAID爬立??
RAID的很大一部分意義是冗余的功能(RAID0除外)儒士,但是我們的HADOOP本身就是副本匾委,自帶冗余功能啊薯鳍,所以HADOOP不建議我們做RAID获三,可以基于JBOD模型將多個磁盤串聯(lián)成單個設(shè)備即可
jbod:多塊硬盤合并出來的一個存儲空間鸠项,當(dāng)?shù)匾粔K硬盤存滿了做粤,會繼續(xù)存到第2塊贴唇,一次類推,當(dāng)一塊硬盤損壞絮记,所有數(shù)據(jù)丟失,HADOOP 推薦單盤JBOD
raid0:區(qū)別就是如果你一塊硬盤1T肝集,另一塊硬盤500G奋救,JBOD之后就是1.5T岭参,速度不變。
但是如果你raid 0尝艘,那總?cè)萘恐挥?T演侯,相當(dāng)于500Gx2,以最小的容量硬盤大小來決定背亥,速度大幅提高秒际。
生產(chǎn)環(huán)境中我司datanode服務(wù)器不支持JBOD模式,所以采取了單盤做raid0的方式
datanode節(jié)點:JBOD或者單盤RAID0
namenode節(jié)點:namenode存儲元數(shù)據(jù)狡汉,可靠性要求極高娄徊,所以我們一定要做raid
主從節(jié)點通信問題
如果我們想在HADOOP的主控節(jié)點上使用hadoop用戶使用命令直接控制從節(jié)點,需要怎么辦盾戴?寄锐?
ok,那么我們需要打通ssh-key
具體配置方式為:
ssh免密詳解
真實HADOOP 結(jié)構(gòu)
說明一下 根據(jù)mapreduce的”數(shù)據(jù)本地優(yōu)化“”,(data locality optimization)原理橄仆,數(shù)據(jù)的存儲節(jié)點應(yīng)該同時是數(shù)據(jù)的計算分析節(jié)點
搭建
1.確定ip 與 角色
我們選擇四臺設(shè)備:
- 10.1.10.196 NN SNN Resourcemanager
- 10.1.10.197 Datanode&nodemanager
- 10.1.10.198 Datanode&nodemanager
- 10.1.10.199 Datanode&nodemanager
2.修改4臺設(shè)備主機名
第一步
hostname test001.ziepiyi.corp
第二步:
sed -i "s#HOSTNAME=localhost.localdomain#HOSTNAME=test001.zipeiyi.corp#g" /etc/sysconfig/network
3. 修改/etc/hosts 添加域名映射
在每臺上面修改
vim /etc/hosts
10.1.10.196 test001.zipeiyi.corp
10.1.10.197 test002.zipeiyi.corp
10.1.10.198 test003.zipeiyi.corp
10.1.10.199 test004.zipeiyi.corp
4. 下載并安裝java
下載:wget http://10.0.70.5/pkgs/jdk-8u51-linux-x64.tar.gz
創(chuàng)建java工作目錄:mkdir -p /app/zpy/java
解壓:tar zxvf jdk-8u51-linux-x64.tar.gz -C /app/zpy/java > /dev/null 2>&1
配置環(huán)境變量:
echo '# JAVA-8u51' >> /etc/profile
echo 'JAVA_HOME=/app/zpy/java/jdk1.8.0_51' >> /etc/profile
echo 'JAVA_BIN=/app/zpy/java/jdk1.8.0_51/bin' >> /etc/profile
echo 'PATH=$PATH:$JAVA_BIN' >> /etc/profile
echo 'CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
echo 'export JAVA_HOME JAVA_BIN PATH CLASSPATH' >> /etc/profile
即時生效:source /etc/profile
退出本機重新登陸剩膘,或者重新打開一個session,
檢測:java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
You have new mail in /var/spool/mail/root
5.配置NTP時間服務(wù)
ntp時間服務(wù)器是用來保證所有機器的機器時間是同步的盆顾,hadoop集群對時間同步有一定要求
這里我們直接使用公網(wǎng)NTP時間服務(wù)器進行同步,使用阿里云ntp服務(wù)器
ntpdate ntp1.aliyun.com(執(zhí)行兩遍怠褐,因為第一次偏移量有時會很大,可以使用第二次進行再次校準(zhǔn))
結(jié)果:
1 Sep 10:51:59 ntpdate[2558]: adjust time server 182.92.12.11 offset 0.019492 sec
加入到 crontab里面
vim /etc/crontab
*/15 * * * * root /usr/sbin/ntpdate ntp1.aliyun.com
6.創(chuàng)建hadoop用戶及用戶組并創(chuàng)建hadoop的數(shù)據(jù)和日志目錄
useradd hadoop
echo 1qaz@WSX? | passwd --stdin hadoop
mkdir -pv /data/hadoop/hdfs/{nn,snn,dn} ##說明:nn:namenode dn:datanode snn:second namenode
mkdir -pv /data/hadoop/logs
修改屬主您宪,屬組
chown -R hadoop:hadoop /data/hadoop/
7.配置hadoop用戶的ssh免登陸
首先su hadoop
三臺分別執(zhí)行:
ssh-keygen -t rsa
cd ~
chmod -R 700 .ssh
每臺上分別執(zhí)行四條:(記住每臺設(shè)備與自己的ssh也要打通)
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.196
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.197
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.198
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.1.10.199
我們?yōu)閔adoop用戶做ssh 免登陸是因為后面hadoop程序需要奈懒,下面我們?yōu)閞oot用戶也做ssh免登陸,純粹是為了操作方便