1.CDH簡單介紹?
CDH是什么?
hadoop是一個(gè)開源項(xiàng)目,所以很多公司在這個(gè)基礎(chǔ)進(jìn)行商業(yè)化,不收費(fèi)的Hadoop版本主要有三個(gè)(均是國外廠商)灯萍,分別是:Apache(最原始的版本跳座,所有發(fā)行版均基于這個(gè)版本進(jìn)行改進(jìn))端铛、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,簡稱CDH)疲眷、Hortonworks版本(Hortonworks Data Platform禾蚕,簡稱“HDP”)。對(duì)于國內(nèi)而言狂丝,絕大多數(shù)選擇CDH版本换淆,Cloudera對(duì)hadoop做了相應(yīng)的改變。Cloudera公司的發(fā)行版美侦,我們將該版本稱為CDH(Cloudera Distribution Hadoop)产舞。
2.搭建CDH集群的準(zhǔn)備工作
此部分工作主要是為處理器集群中每臺(tái)處理器分配合理的系統(tǒng)資源如計(jì)算資源和存儲(chǔ)資源等,以及構(gòu)建獨(dú)立的運(yùn)行環(huán)境和通信能力等菠剩。
2.1創(chuàng)建虛擬機(jī)和centos操作系統(tǒng)的安裝
(此部分暫時(shí)略過)
2.2處理節(jié)點(diǎn)的網(wǎng)卡的配置
網(wǎng)卡配置文件路徑:
<pre>/etc/sysconfig/network-scripts/ifcfg-eth0</pre>
網(wǎng)卡配置文件信息:
<pre>DEVICE=eth0 //物理設(shè)備的名稱
HWADDR=00:0C:29:74:A9:86 //MAC的地址
TYPE=Ethernet //網(wǎng)卡類型以太網(wǎng)
UUID=3efa6ffe-d23c-4240-8f94-3175be11cc98
ONBOOT=yes //引導(dǎo)時(shí)是否激活設(shè)備
NM_CONTROLLED=yes
IPADDR=172.16.1.86 //ip地址
NETMASK=255.255.255.0 //子網(wǎng)掩碼
BOOTPROTO=static //dhcp表示動(dòng)態(tài)獲得易猫,static表示靜態(tài)ip地址
GATEWAY=172.16.1.254 //網(wǎng)關(guān)地址
</pre>
網(wǎng)卡激活和禁用相關(guān)命令
<pre>ifup eth0:激活網(wǎng)卡
ifdown eth0:禁用網(wǎng)卡
</pre>
網(wǎng)關(guān),子網(wǎng)掩碼具壮,ip地址之間的關(guān)聯(lián)
<p> 網(wǎng)卡配置的重點(diǎn) IPADDR准颓,NETMASK,GATEWAY這三個(gè)屬性的成功配置是成功的保障棺妓。ip與netmask確定主機(jī)所屬的位置和子網(wǎng)攘已,gateway是該網(wǎng)段路由的默認(rèn)設(shè)置。</br>
首先IPADDR和NETMASK確定該主機(jī)所處的網(wǎng)絡(luò)段172.16.1.0~172.16.1.255怜跑。而且此網(wǎng)絡(luò)段的網(wǎng)關(guān)地址在路由器(本文中的配置)中配置的為GATEWAY=172.16.1.254样勃,此網(wǎng)關(guān)即為這個(gè)網(wǎng)段向其他網(wǎng)段收發(fā)信息的中轉(zhuǎn)站。一般數(shù)據(jù)包在IP層發(fā)送時(shí)首先比較發(fā)送端的ip地址的網(wǎng)絡(luò)號(hào)與接受端的ip地址的網(wǎng)絡(luò)號(hào)性芬,如果判斷處于同一網(wǎng)段則不經(jīng)過網(wǎng)關(guān)直接發(fā)送到目的主機(jī)峡眶,但如果發(fā)送端的ip地址的網(wǎng)絡(luò)號(hào)與接受端的ip地址的網(wǎng)絡(luò)號(hào)不同,則將該數(shù)據(jù)包發(fā)送至該網(wǎng)段的網(wǎng)關(guān)植锉,并由網(wǎng)關(guān)負(fù)責(zé)轉(zhuǎn)發(fā)到接受端所處的網(wǎng)絡(luò)段的網(wǎng)關(guān)辫樱,然后再由該網(wǎng)絡(luò)段的網(wǎng)關(guān)發(fā)送至目標(biāo)主機(jī)。至此整個(gè)網(wǎng)絡(luò)通信完成俊庇。</p>
2.3關(guān)閉防火墻和SELinux
<code>/etc/init.d/iptables stop:關(guān)閉防火墻 </code>
<code>修改/etc/selinux/config的SELINUX=disabled:關(guān)閉SELinux </code>
2.4配置ntp時(shí)間同步
ntp配置路徑:
<code>/etc/ntp.conf</code>
ntp配置文件信息:
<code>driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1 # 開啟內(nèi)部遞歸網(wǎng)絡(luò)接口 lo
restrict -6 ::1
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
server 127.127.1.0 #開啟內(nèi)部遞歸網(wǎng)絡(luò)接口 lo
fudge 127.127.1.0 stratum 10</code>
配置文件信息詳解:
<code>
1.權(quán)限的設(shè)定主要以 restrict 這個(gè)參數(shù)來設(shè)定狮暑,格式如下:
restrict IP地址 mask 子網(wǎng)掩碼 參數(shù)
其中 IP 可以是IP地址,也可以是 default 辉饱,default 就是指所有的IP參數(shù)有以下幾個(gè):
ignore“崮小:關(guān)閉所有的 NTP 聯(lián)機(jī)服務(wù)
nomodify:客戶端不能更改服務(wù)端的時(shí)間參數(shù),但是客戶端可以通過服務(wù)端進(jìn)行網(wǎng)絡(luò)校時(shí)彭沼。
notrust :客戶端除非通過認(rèn)證止后,否則該客戶端來源將被視為不信任子網(wǎng)
noquery :不提供客戶端的時(shí)間查詢
nopeer : 不與其他同一層的ntp服務(wù)器進(jìn)行時(shí)間同步
kod : 訪問違規(guī)時(shí)發(fā)送 KoD 包。
restrict 127.0.0.1
確保localhost(這個(gè)常用的IP地址用來指Linux服務(wù)器本身)有足夠權(quán)限.使用沒有任何限制關(guān)鍵詞的語法溜腐。
restrict -6 ::1
restrict -6 表示IPV6地址的權(quán)限設(shè)置译株。
2.用server這個(gè)參數(shù)設(shè)定上級(jí)時(shí)間服務(wù)器,格式如下:
server IP地址或域名 [prefer]
IP地址或域名就是我們指定的上級(jí)時(shí)間服務(wù)器挺益,如果 Server 參數(shù)最后加上 prefer歉糜,表示我們的 NTP 服務(wù)器主要以該部主機(jī)時(shí)間進(jìn)行校準(zhǔn)。
3.driftfile格式如下:
driftfile 文件名
在與上級(jí)時(shí)間服務(wù)器聯(lián)系時(shí)所花費(fèi)的時(shí)間望众,記錄在driftfile參數(shù)后面的文件內(nèi)匪补。
注意: driftfile 后面接的文件需要使用完整的路徑文件名,不能是鏈接文件烂翰,并且文件的權(quán)限需要設(shè)定成 ntpd守護(hù)進(jìn)程可以寫入夯缺。
</code>
ntp相關(guān)命令:
<code>ntpq -p:查看ntp服務(wù)器與上層ntp的狀態(tài)
remote refid st t when poll reach delay offset jitter
172.16.1.86 LOCAL(0) 11 u 6 64 7 0.118 617.782 0.169
remote - 本機(jī)和上層ntp的ip或主機(jī)名,“+”表示優(yōu)先甘耿,“*”表示次優(yōu)先
refid - 參考上一層ntp主機(jī)地址
st - stratum階層
when - 多少秒前曾經(jīng)同步過時(shí)間
poll - 下次更新在多少秒后
reach - 已經(jīng)向上層ntp服務(wù)器要求更新的次數(shù)
delay - 網(wǎng)絡(luò)延遲
offset - 時(shí)間補(bǔ)償
jitter - 系統(tǒng)時(shí)間與bios時(shí)間差
</code>
2.5 綁定主機(jī)名與IP
將所有主機(jī)名與IP地址的對(duì)應(yīng)關(guān)系寫入所有主機(jī)的/etc/hosts踊兜。
2.6 安裝jdk與mysql
jdk的配置主要是安裝路徑和環(huán)境變量的設(shè)置(網(wǎng)上資料交豐富,此處略去詳細(xì)步驟)
mysql的安裝(同上)
因?yàn)镃M主要用到mysql數(shù)據(jù)庫做管理佳恬,所以我們需要我CM創(chuàng)建數(shù)據(jù)庫以及其管理賬號(hào)捏境。
<code>
Mysql>
create database scm;
create database hive;
grant all on scm.* to scm@'localhost'identified by 'abc123';
grant all on hive.* to hive@'POC-S1' identified by'abc123';
</code>
2.7 系統(tǒng)參數(shù)和內(nèi)核優(yōu)化
系統(tǒng)參數(shù)文件路徑:
<code>/etc/security/limits.conf</code>
系統(tǒng)參數(shù)優(yōu)化:
<code>
limits.conf的格式如下:
username|@groupname type resource limit
* soft nofile 327680
* hard nofile 327680
* soft nproc 131072
* hard nproc 131072
username|@groupname:設(shè)置需要被限制的用戶名,組名前面加@和用戶名區(qū)別毁葱。也可以用通配符*來做所有用戶的限制垫言。
type:有soft,hard以及-,soft指的是當(dāng)前系統(tǒng)生效的設(shè)置值。
hard 表明系統(tǒng)中所能設(shè)定的最大值倾剿。
soft的限制不能比hard限制高筷频。
用-就表明同時(shí)設(shè)置了soft和hard的值。
resource:
core - 限制內(nèi)核文件的大小
date - 最大數(shù)據(jù)大小
fsize - 最大文件大小
memlock - 最大鎖定內(nèi)存地址空間
nofile - 打開文件的最大數(shù)目
rss - 最大持久設(shè)置大小
stack - 最大棧大小
cpu - 以分鐘為單位的最多CPU時(shí)間
noproc - 進(jìn)程的最大數(shù)目
as - 地址空間限制
maxlogins - 此用戶允許登錄的最大數(shù)目
//要使limits.conf文件配置生效前痘,必須要確保 pam_limits.so文件被加入到啟動(dòng)文件中凛捏。查看 (64位)/etc/pam.d/login 文件中有:(沒有就添加)session required /lib64/security/pam_limits.so
</code>
內(nèi)核參數(shù)文件路徑:
<code>/etc/sysctl.conf</code>
配置命令:
<code>sysctl -p</code>
內(nèi)核參數(shù)優(yōu)化:
<code>
net.ipv4.ip_default_ttl = 65
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
參數(shù)詳解:(暫時(shí)略過)
</code>
3 安裝cloudera manager server/agents
3.1解壓CM安裝包至/opt目錄下
解壓CM安裝包
<code>
tar xzvfcloudera-manager-el6-cm5.2.1_x86_64.tar.gz -C /opt/
</code>
然后將<code>CDH-5.2.1-1.cdh5.2.1.p0.12-el6.parcel
CDH-5.2.1-1.cdh5.2.1.p0.12-el6.parcel.sha
manifest.json</code>,三個(gè)安裝包移至<code>/opt/cloudera/parcel-repo/际度。</code>
3.2 創(chuàng)建cloudera-scm用戶
在所有節(jié)點(diǎn)上創(chuàng)建該用戶
命令groupadd和useradd
3.3 修改Agent配置文件
將agent的config.ini配置文件server_host配置項(xiàng)修改為主節(jié)點(diǎn)主機(jī)名
配置文件路徑:
<code>
/opt/cm-5.2.1/etc/cloudera-scm-agent/config.ini</code>
3.4 上傳mysql jdbc驅(qū)動(dòng)
主要是為hive和sqoop等組件鏈接mysql數(shù)據(jù)庫葵袭。通常用軟連接的形式將驅(qū)動(dòng)鏈入每個(gè)組件的lib庫中。
3.5啟動(dòng)服務(wù)
只有主節(jié)點(diǎn)啟動(dòng)CM-Server
<code>
/opt/cm-5.2.1/etc/init.d/cloudera-scm-serverstart</code>
所有節(jié)點(diǎn)啟動(dòng)CM-Agent
<code>/opt/cm-5.2.1/etc/init.d/cloudera-scm-agent start</code>
4配置Cloudera Manager環(huán)境
由于是第一次安裝該集群乖菱,配置是按照默認(rèn)的來坡锡。以后熟悉后再補(bǔ)充該部分。