使用了五臺機器,其中兩臺8c16g,三臺4c8g。一臺4c8g用於搭建cmServer和NFS服務端,另外4臺做爲cloudera-manager agent部署CDH集羣。java
ip | 主要服務/角色 | hostname(hosts配置與此一致) | 機器規格 |
---|---|---|---|
10.2.223.237 | cmServer NFS server | v-xstest-849-171208-cdh-1.hx | 4c8g200g |
10.2.223.239 | Namenode,resouceManager,Hbase Master等 | v-xstest-855-171208-cdh2-1.novalocal | 8c16g200g |
10.2.223.242 | SecondaryNamenode,hive,hue等 | v-xstest-856-171208-cdh2-2.novalocal | 8c16g200g |
10.2.223.224 | Datanode,regionServer,nodeManager等 | v-xstest-850-171208-cdh-2.novalocal | 4c8g200g |
10.2.223.197 | Datanode,regionServer,nodeManager等 | v-xstest-851-171208-cdh-3.novalocal | 4c8g200g |
NFS 就是 Network FileSystem 的縮寫,最先以前是由sun 這家公司所發展出來的。 它最大的功能就是能夠透過網絡,讓不一樣的機器、不一樣的操做系統、能夠彼此分享個別的檔案 (share files)。因此,你也能夠簡單的將他看作是一個文件服務器 (file server) 呢!這個 NFS 服務器可讓你的 PC 來將網絡遠程的 NFS 服務器分享的目錄,掛載到本地端的機器當中, 在本地端的機器看起來,那個遠程主機的目錄就好像是本身的一個磁盤分區槽同樣 (partition)!使用上面至關的便利!node
rpm -qa | grep nfs rpm -qa | grep rpcbind
yum -y install nfs-utils rpcbind
mkdir -p /opt/share chmod 666 /opt/share
vim /etc/exports /opt/share *(rw,no_root_squash,no_all_squash,sync) 配置生效命令: exportfs -r
參數值 內容說明 rw ro 該目錄分享的權限是可擦寫 (read-write) 或只讀 (read-only),但最終能不能讀寫,仍是與文件系統的 rwx 及身份有關。 sync async sync 表明數據會同步寫入到內存與硬盤中,async 則表明數據會先暫存於內存當中,而非直接寫入硬盤! no_root_squash root_squash 客戶端使用 NFS 文件系統的帳號若爲 root 時,系統該如何判斷這個帳號的身份?預設的狀況下,客戶端 root 的身份會由 root_squash 的設定壓縮成 nfsnobody, 如此對服務器的系統會較有保障。但若是你想要開放客戶端使用 root 身份來操做服務器的文件系統,那麼這裏就得要開 no_root_squash 才行! all_squash 不論登入 NFS 的使用者身份爲什麼, 他的身份都會被壓縮成爲匿名用戶,一般也就是 nobody(nfsnobody) 啦! anonuid anongid anon 意指 anonymous (匿名者) 前面關於 *_squash 提到的匿名用戶的 UID 設定值,一般爲 nobody(nfsnobody),可是你能夠自行設定這個 UID 的值!固然,這個 UID 必須要存在於你的 /etc/passwd 當中! anonuid 指的是 UID 而 anongid 則是羣組的 GID 囉。
service rpcbind start service nfs start
mkdir -p /opt/share showmount -e 10.2.223.237 mount -t nfs 10.2.223.237:/opt/share /opt/share -o proto=tcp -o nolock
要實現多臺機器相互之間免密登陸,只須要將每臺機器ssh-keygen生成的公鑰(id_rsa.pub)寫到一個文件authorized_keys,而後將這個文件複製到每臺機器的~/.ssh/authorized_keys,這樣就能夠互通了。python
hosts文件編輯,注意必定要保持與每臺機器hostname一致,將hosts文件寫到/opt/share/ssh,便於同步 每臺機器執行 ssh-keygen -t rsa -f ~/.ssh/id_rsa,連續回車兩次 將每臺機器的id\_rsa.pub寫到/opt/share/ssh/authorized\_keys 每臺機器執行/opt/share/ssh/sync\_config.sh,保持hosts,authorized\_keys一致 sync\_config.sh: #!/bin/bash rm -f /etc/hosts cp /opt/share/ssh/hosts /etc/hosts rm -f /root/.ssh/authorized_keys cp /opt/share/ssh/authorized_keys /root/.ssh/authorized_keys
使用cm5.4.1 el6版本,el5會有python版本問題,el6內置的python2.6.mysql
cm安裝包:http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.4.1_x86_64.tar.gz cm資源包(parcel):http://archive.cloudera.com/cdh5/parcels/5.4.1/CDH-5.4.1-1.cdh5.4.1.p0.6-el6.parcel 其餘:http://archive.cloudera.com/cdh5/parcels/5.4.1/CDH-5.4.1-1.cdh5.4.1.p0.6-el6.parcel.sha1 http://archive.cloudera.com/cdh5/parcels/5.4.1/manifest.json 另外須要準備mysql-jdbc jar包,這個從maven倉庫找一個就行,我用的是:mysql-connector-java-5.1.34.jar
將上面下載資源上傳到NFS目錄/opt/share/cdh,mysql-connector-java-5.1.34.jar放到/opt/sharesql
mkdir -p /opt/cloudera-manager tar xvzf share/cloudera-manager*.tar.gz -C /opt/cloudera-manager
useradd --system --home=/opt/cloudera-manager/cm-5.4.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
vim /opt/cloudera-manager/cm-5.4.1/etc/cloudera-scm-agent/config.ini 修改server.host=10.2.223.237 #即cloudera manager Server地址
cp /opt/share/mysql-connector-java-5.1.34.jar /opt/cloudera-manager/cm-5.4.1/share/cmf/lib /opt/cloudera-manager/cm-5.4.1/share/cmf/schema/scm_prepare_database.sh mysql cm_new -h 10.2.222.25 -ubigdata -p'bigdata123' --scm-host 10.2.223.237 bigdata bigdata123 --force 註釋:cm_new 數據庫名稱,本身填寫 -h -u -p鏈接數據庫配置,若是沒有mysql須要本身搭建 ,--scm-host 後面bigdata bigdata123這兩個是須要鏈接的數據庫配置,而不是網上的scm scm scm 注2:這個命令執行主要是建立數據庫,而且在/opt/cloudera-manager/cm-5.4.1/etc/cloudera-scm-server/db.properties生成數據庫配置,若是配置成功就OK了,能夠忽略其餘報錯
mkdir -p /opt/cloudera/parcel-repo cp /opt/share/cdh/CDH-5.4.1-1.cdh5.4.1.p0.6-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.4.1-1.cdh5.4.1.p0.6-el6.parcel.sha #注意修更名稱sha1 sha cp /opt/share/cdh/manifest.json /opt/cloudera/parcel-repo chown cloudera-scm:cloudera-scm -R /opt/cloudera/parcel-repo/
mkdir -p /opt/cloudera/parcels chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
登陸配置頁面10.2.223.237:7180 默認帳號祕密: admin admin
因爲本人安裝時候沒有一個個頁面截圖,具體你們第一次進入以後就能夠看到,傻瓜式操做。shell
以前我也是參考網上的執行命令,可是沒人解釋最後三個scm scm scm是什麼意思,具體在4.2中我已經強調了,只要後面數據庫建立成功而且對應的db.properties文件配置沒錯就好了
要提早建立數據庫,而且安裝服務的機器上在/opt/cloudera-manager/cm-5.4.1/share/cmf/lib有mysql-connector jar包
在安裝服務界面,執行失敗時,點擊查看詳細信息,會給出這樣相似的錯誤信息。查看/opt/cloudera-manager/cm-5.4.1/run/cloudera-scm-agent/process目錄下相關日誌。 發現上面這個錯誤信息是因爲JAVA_HOME問題,啓動腳本中,JAVA_HOME並非根據環境變量來獲取,而是在它列舉的幾個目錄下尋找,因此只要把你的java路徑ln -s過去就行,好比個人 ln -s /opt/jdk/jdk1.7-7u80/ /usr/java/jdk1.7
將mysql-connectorxxx.jar拷貝到/opt/cloudera/parcels/CDH-5.4.1-1.cdh5.4.1.p0.6/lib/hive/lib下,只須要拷貝hive metastore server這臺就好了
我以前爲了識別方便,修改了hosts和機器的hostname,可是在咱們的DNS服務器中仍沒法修改,能夠經過nslookup ip 查看好比nslookup 10.2.223.237,發現這個裏面的name仍然是修改hostname以前的。 因此建議不要輕易修改hostname,在配置的hosts中也要保持與hostname一致
cp /opt/share/mysql-connector-java-5.1.34.jar /opt/cloudera/parcels/CDH-5.4.1-1.cdh5.4.1.p0.6/lib/hadoop/lib)
cp /opt/share/mysql-connector-java-5.1.34.jar /opt/cloudera/parcels/CDH-5.4.1-1.cdh5.4.1.p0.6/lib/oozie/libtools
首先,刪除oozie數據庫並從新建立 而後cp /opt/share/mysql-connector-java-5.1.34.jar /opt/cloudera/parcels/CDH-5.4.1-1.cdh5.4.1.p0.6/lib/hadoop/lib