關於技術選型 --- http://www.tuicool.com/articles/7RRriehtml
同時可參考: http://www.doc88.com/p-0042075356791.htmllinux
1. 概述
本文概述了在CentOS6環境下,離線安裝Cloudera Manager5(如下稱CM5)及CDH5的相關步驟說明。web
至於Cloudera Manager及CDH所表明的含義屬本文範圍外。若是你不瞭解什麼是Cloudera Manager及CDH,建議先進行相關知識的瞭解,再閱讀本文。sql
本次安裝的環境以下:
IP HOSTNAME Role
192.168.10.101 work01 CM5數據庫
CDH5
192.168.10.102 work02 CDH5
192.168.10.103 work03 CDH5
192.168.10.104 work04 CDH5json
特別說明:
1.採用的安裝順序是先安裝CM5,再經過CM5來安裝CDH5。
2.之因此選擇離線安裝是由於國內鏈接國外的網速實在太慢,且一旦安裝失敗就會致使所有回滾從頭安裝,因此不得不選擇離線安裝。不然選擇聯機安裝將會更簡單。
3.本次安裝說明裏記述的CentOS6的具體版本爲CentOS release 6.4 (Final),CDH5具體版本爲CDH5.0.2。
4.全程root用戶操做。
5.HOSTNAME不能帶特殊字符,以下劃線等。centos
2. 準備工做 ---這個在每一個機器上都要作api
對全部節點機器work0[1-4]修改主機名及hosts文件。
修改/etc/sysconfig/network文件:
NETWORKING=yes
HOSTNAME=work01
NETWORKING_IPV6=no
GATEWAY=192.168.10.1
其中HOSTNAME與主機名一致。主機名若是跟系統安裝時不一致請執行hostname命令讓其當即生效,不然會影響各節點互相訪問。服務器
修改/etc/hosts文件,添加:
192.168.10.101 work01
192.168.10.102 work02
192.168.10.102 work03
192.168.10.102 work04dom
2.1 全部節點打通SSH
此操做過程省略,目的只有一個,就是使全部DataNode(work0[2-4])與NameNode(work01)之間能夠進行無密碼SSH鏈接。
2.2 關閉防火牆
對全部節點機器work0[1-4]關閉防火牆。
# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
永久關閉防火牆,可使用:chkconfig iptables off
2.3 關閉selinux
對全部節點機器work0[1-4]關閉selinux。
修改:/etc/selinux/config
SELINUX=disabled
修改後,重啓機器生效。
2.4 安裝NTP服務
對全部節點機器work0[1-4]安裝NTP服務,以同步時間。 可參考: http://blog.163.com/zhaomin_allen/blog/static/622448482012111184742965/
安裝: yum install -y ntp
馬上啓動: service ntpd start
配置開機啓動: chkconfig ntpd on
手動找一臺服務器對時,好比: ntpdate us.pool.ntp.org,通常自動便可
最後驗證服務: watch ntpq -p
推薦配置:也能夠選擇某一臺機器與外部對時,集羣內的其餘機器與這臺機器對時。 好比,在crontab中添加 cd /etc/cron.d touch ntpd chmod 644 ntpd echo "0 * * * * root /usr/sbin/ntpdate machine1" 1>ntpd 這樣,會在天天的任意點0分,同步一次時間。ntp服務器爲machine1 查看日誌 tail /var/log/cron|grep ntpd
2.5 安裝Apache httpd web服務器
對須要安裝CM5的機器(work01)安裝Web服務器
檢查是否存在httpd服務:
# service httpd status
若是不存在,則用下面的命令安裝:
# yum install httpd
CentOS6默認安裝了httpd,啓動:
# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[ OK ]
將httpd加入到啓動列表:chkconfig httpd on
2.6 安裝postgresql
在離線安裝CM5時,有時會報以下的錯誤:
Resolving Dependencies
--> Running transaction check
---> Package cloudera-manager-server-db-2.x86_64 0:5.0.2-25px502.p0.297.el6 will be installed
--> Processing Dependency: postgresql-server >= 8.4 for package: cloudera-manager-server-db-2-5.0.2-25px502.p0.297.el6.x86_64
--> Finished Dependency Resolution
Error: Package: cloudera-manager-server-db-2-5.0.2-25px502.p0.297.el6.x86_64 (cloudera-manager)
Requires: postgresql-server >= 8.4
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
這是因爲CM5依賴postgresql,須要在本機上安裝postgresql,若是是在線安裝,自動以Yum方式安裝,因爲是離線,沒法自動安裝postgresql。
檢查是否安裝了postgresql:
# rpm -qa|grep postgres
若是已經安裝,但版本小於8.4,則使用rpm -e卸載。
如要要安裝postgres,可選擇下面[2.6.1]的在線或是[2.6.2]的離線中的任一一種方式安裝。
說明:我不是用下面的2個操做的,我是直接 一鍵 yum -y install postgresql* 解決的。
2.6.1 [在線]添加PostgreSQL Yum Repository並經過yum安裝
訪問 http://yum.pgrpms.org/reporpms/repoview/letter_p.group.html
下載並安裝和當前系統對應的rpm文件。
# wget http://yum.pgrpms.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
# rpm -ivh pgdg-centos93-9.3-1.noarch.rpm
修改原始的yum倉庫配置,在[base]和[updates]部分的尾部追加exclude=postgresql*用以取消從默認倉庫安裝和更新PostgreSQL。
# cd /etc/yum.repos.d
# vi CentOS-Base.repo
安裝或者升級postgresql-libs
# yum upgrade postgresql-libs
安裝PostgreSQL Server
# yum install postgresql93-server
2.6.2 [離線]下載安裝用的RPM包並經過rpm命令安裝
從 http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/repoview/postgresqldbserver93.group.html 下載:
postgresql93-libs-9.3.5-1PGDG.rhel6.x86_64.rpm
postgresql93-9.3.5-1PGDG.rhel6.x86_64.rpm
postgresql93-server-9.3.5-1PGDG.rhel6.x86_64.rpm
依次經過下面的命令安裝:
rpm –ivh xxxx.rpm
3. CM5安裝 ---只須要在一臺機器上操做
3.1 CM5離線安裝資源包
到CM資源頁面: http://archive-primary.cloudera.com/cm5/repo-as-tarball/你的版本號,好比5.4.7/
下載資源包,對應CentOS6的資源包爲: cm版本號-centos6.tar.gz 11-Jun-1014 18:12 517M
這是壓縮包,解壓後包含CM安裝過程當中須要的RPM文件,除了 postgresql 數據庫安裝文件。
3.2 本地發佈CM5安裝資源包
在須要安裝CM5的機器(work01)進行如下操做。發佈本地資源文件的目的是使在安裝過程當中,原本應該聯機下載的部分改從本地下載。
解壓下載的[CM5離線安裝資源包]:
# tar -zvxf cm5.4.7-centos6.tar.gz
# ll ---以實際爲準!!!
total 529080
drwxrwxr-x. 3 1106 592 4096 Jun 11 11:08 cm
-rw-r--r--. 1 root root 541768507 Jun 14 09:14 cm5.4.7-centos6.tar.gz
下面是講如何在centos6中發佈web工程的。
移動解壓後的cm文件夾到Web目錄,並設置權限:
# pwd
/var/www/html
# mkdir -p cm5/redhat/6/x86_64
# cd cm5/redhat/6/x86_64
# mv /xxxxxx/cm .
# chmod -R ugo+rX cm
訪問 http://你的IP地址/cm5/redhat/6/x86_64/cm/ ,測試文件索引頁面是否正常。
若是頁面空白或者爲 You don't have permission to access,請檢查準備工做中的防火牆和selinux是否關閉。
實際看到的如圖所示:
3.3 修改客戶端配置
爲了離線安裝,需在本地搭建CM5的Yum軟件源。
修改相關配置,使安裝過程當中能夠找到以前在本地搭建的CM5的安裝資源包。
新建名稱爲 myrepo.repo 的軟件源配置文件,內容以下:
[myrepo]
name=myrepo
baseurl=http://192.168.10.101/cm5/redhat/6/x86_64/cm/5/
enabled=1
gpgcheck=0
將myrepo.repo保存到客戶端機器的 /etc/yum.repos.d/目錄,並刪除這個目錄下的其餘*.repo文件,其餘庫有可能須要鏈接互聯網,有可能使安裝失敗。
這時/etc/yum.repos.d目錄的清單以下:
# pwd
/etc/yum.repos.d
# ll
total 4
-rw-r--r-- 1 root root 100 Jun 14 21:14 myrepo.repo
設置了軟件源還不夠,安裝過程還會從互聯網上下載一些配置文件,雖然軟件源中包含了須要的全部文件,修改 /etc/hosts,在最後添加:
192.168.10.101 archive.cloudera.com
特別說明:
在後面CDH5安裝時,因爲CM5要給work0[2-4]這幾臺機器安裝cloudera-manager-agent、cloudera-manager-daemons等組件,因此給work0[2-4]也進行以上的配置修改。
完成了以上步驟,能夠開始正式安裝CM5了。
3.4 CM5安裝引導文件
從 http://archive-primary.cloudera.com/cm5/installer,選擇本身須要的版本下載便可:
或者乾脆直接去 http://archive-primary.cloudera.com/cm5/installer/latest/下載最新版( 當前是 5.4.7 )
wget http://archive-primary.cloudera.com/cm5/installer/latest/cloudera-manager-installer.bin
結果以下:
100%[===========================================================================================>] 514,296 165K/s in 3.0s
2015-10-26 09:47:32 (165 KB/s) - 「cloudera-manager-installer.bin」 saved [514296/514296]
其實是安裝引導文件,在安裝過程當中動態下載安裝中須要的rpm包。
既然是離線安裝,因此先不要急着執行下載的bin文件,先進行下面一步。
給CM5安裝引導文件: cloudera-manager-installer.bin 添加可執行權限:
# chmod +x cloudera-manager-installer.bin
進行安裝:
# ./cloudera-manager-installer.bin
彈出安裝圖形界面,
一路next、accept就能夠了,
最後出現下面的提示框,讓你訪問 http://localhost:7180/,說明已經安裝成功了。
若是是遠程經過SSH等文字終端鏈接安裝的話,想要彈出圖形界面則需使用一些相關工具,好比putty+xming等。
4. CDH5安裝
因爲咱們經過CM5來進行CDH5的安裝,如下操做也在work01上進行。 也就是跟CM5都在同一臺機器上操做。
4.0 CDH5離線安裝資源包下載
本次採用parcel包進行離線安裝,因此從
http://archive-primary.cloudera.com/cdh5/parcels/版本號/ 下載,因爲咱們是CentOS6,因此選擇如下兩個文件下載。
CDH-5.0.2-1.cdh5.0.2.p0.13-el6.parcel 11-Jun-1014 17:56 1.7G (請選擇本身對應的版本號的文件下載!!!!!!)
manifest.json 11-Jun-1014 17:59 32K
注意:這裏是2個文件!
關於爲何要選擇parcel,而不是傳統的tarball,官方的說明以下:
Cloudera recommends the use of parcels for installation over packages, because parcels enable Cloudera Manager to easily manage the software on your cluster, automating the deployment and upgrade of service binaries. Electing not to use parcels will require you to manually upgrade packages on all hosts in your cluster when software updates are available, and will prevent you from using Cloudera Manager's rolling upgrade capabilities.
4.1 安置parcel包
將下載完成的[CDH5離線安裝資源包]放到/opt/cloudera/parcel-repo下(目錄在安裝CM5時已經生成,經過CM5安裝CDH5時,它會自動從這個路徑下讀取parcel包),
接下來打開manifest.json文件,裏面是json格式的配置,咱們須要的就是與咱們系統版本相對應的 hash碼,
由於咱們用的是Centos6,因此找到以下位置:
"parcelName": "CDH-5.4.7-1.cdh5.4.7.p0.3-el6.parcel",
"components": [
在這個大括號的最下面找到「hash」所對應的值。
"hash": "8f333e6918b8141269cab9c8033fb890ff51db9c"
將「hash」的值複製下來,而後建立一個文件,文件名與你的parel包名一致,並加上.sha後綴:
#pwd
/opt/cloudera/parcel-repo
# ls
CDH-5.4.7-1.cdh5.4.7.p0.3-el6.parcel
touch CDH-5.4.7-1.cdh5.4.7.p0.3-el6.parcel.sha
manifest.json
這樣你的目錄下將有這3個文件,將「hash」的值複製到新建的sha文件中,並保存。
至此,CDH5的本地離線安裝資源包完成配置。以後的操做就是控制檯按照步驟安裝便可。
4.2 安裝CDH5
4.2.1 登陸CM管理頁面
用戶名和密碼都爲admin登陸 http://localhost:7180/ ,界面以下:
4.2.2 選擇版本
特別說明:
之前免費版本有50節點的限制,如今沒有了。
後面有一步選擇是否安裝新的Java,建議選中。
4.2.3 選擇主機
選擇要安裝CDH5的主機,好比192.168.10.20[1-4],或是work0[1-4]等。
點擊搜索按鈕
4.2.4 選擇parcel
CDH選擇5.4.7,爲了怕安裝過程不會自動讀取/opt/cloudera/parcel-repo,我在[更多選項]處添加了 http://192.168.10.101/parcel-repo
特別說明:
當時我在/opt/cloudera/parcel-repo下放置後,在CDH5的安裝過程當中並無直接認出,因此我在 http://192.168.10.101/parcel-repo 下也放置了一份並在相應的parcel包設定環節中指定該路徑。
具體來講,就是
點開「更多選項」
4.2.5 完成安裝
後面直到安裝完成,雖然還有很多步驟,但過程都較爲簡單,此處省略說明。
點擊「繼續」
最後一步:會檢查主機,出現一些問題:
請依次解決。
個人最終爲:
點擊「完成」後,出來以下界面:
選擇自定義服務:
==============================================
錯誤1:
解決方案:
http://blog.csdn.net/sparkjvm/article/details/42388717
建立文件163.repo
[base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
enabled=1
gpgcheck=0
[updates]
name=CentOS-$releasever - Updates - 163.com
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
enabled=1
gpgcheck=0
[extras]
name=CentOS-$releasever - Extras - 163.com
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
enabled=1
gpgcheck=0
而後執行 yum install redhat-lsb cyrus-sasl-gssapi portmap fuse-libs fuse -y
錯誤2:
這是由於以前設置了archive.cloudera.com在/etc/hosts裏配置了統一的IP.可是這個機器上沒有對應的/redhat/文件夾。
本身設置便可,注意:是從真實的服務器上下載文件放到本地的httpd服務器裏。