經過cloudera-manager來安裝hadoop node
本人笨,裝的過程碰了很多東西,其餘網站轉載的文章也沒具體寫清楚,如下我實戰了下總結下來。 linux
1. ssh登錄要安裝管理界面的機器,肯定關閉防火牆和selinux,而後安裝cloudera-manager-installer.bin shell
2. 修改host,並複製到全部節點 vim
vim /etc/hosts api
##內容———————————————— 瀏覽器
172.16.1.1x node1 tomcat
172.16.1.2x node2 服務器
172.16.1.3x node3 網絡
127.0.0.1 localhost # 這是必須指定爲localhost,且必須爲第一個127.0.0.1的域 ssh
3. 打開管理界面 http://{{host}}:7180/
1)用來安裝hadoop組件的賬號必須有ssh 且 root 權限
2)像咱們的服務器都使用了key登錄,因此在安裝時,必須爲選用的賬號設置sudo權限且不需輸入密碼,如下操做是每一臺節點機器必須進行
a. 用root操做,修改文件可寫權限: chmod +w /etc/sudoers
b. vim /etc/sudoers 添加如: nic ALL=(ALL) NOPASSWD: ALL
c. 去除可寫權限,chmod -w /etc/sudoers
3)給你安裝hadoop的帳戶賦予這些文件的讀權限和執行權限
chmod +r /bin/mktemp
chmod +x /bin/mktemp
chmod +r /usr/bin/tee
chmod +x /usr/bin/tee
chmod +r /usr/bin/tr
chmod +x /usr/bin/tr
4)隨便進去一個目錄wget下載各類hadoop組件安裝包 (cloudera-manager所在機器若是不須要安裝任何hadoop組件,則不須要下載和安裝)
wget http://archive.cloudera.com/cm4/redhat/5/x86_64/cm/4.1.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpm
wget http://archive.cloudera.com/cdh4/redhat/5/x86_64/cdh/4/RPMS/noarch/oozie-3.2.0+126-1.cdh4.1.2.p0.10.el5.noarch.rpm -O oozie-3.2.0-cdh4.1.2.p0.10.el5.noarch.rpm
### 注意這只是其中一部分,而且各個版本可能不同,所需的文件能夠從以上路徑下找,或者用cloudera-manager來自動安裝,把整個過程複製下來,慢慢找它自動下載的*.rpm包的路徑 ###
### 既然有自動下載和安裝功能,爲何還手動下載呢? 由於cloudera-manager安裝過程只要一發生失敗(安裝過程有權限問題、或者下載超時等問題.),一切行爲都將回滾,包括下載和安裝的文件,
即若是依賴cloudera-manager每次安裝都必須從新下載、從新安裝。再說,有的rpm包很大,我們服務器不像國外服務器,咱國內服務器下載這下資源包過程很慢並且還有很大可能下載不了,也就是說很容易出現辛辛苦苦裝半天,一下回到解放前。
要一勞永逸,在本地迅雷下好了,再scp上去平均速度也有90kb/s,比服務器下載要快(親測,不一樣網絡環境可能有不同), 下載後再從一個節點scp到各個節點 ###
### 要用到的安裝包名有以下列表,請各自尋找下載 ###
###
hadoop-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
hadoop-hdfs-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
hadoop-httpfs-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
hadoop-yarn-2.0.0.1.cdh4.1.2.p0.27.el5.x86_64.rpm
hadoop-mapreduce-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
hadoop-0.20-mapreduce-0.20.21.cdh4.1.2.p0.24.el5.x86_64.rpm
hadoop-libhdfs-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
hadoop-client-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
hadoop-hdfs-fuse-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
zookeeper-3.4.31.cdh4.1.2.p0.34.el5.noarch.rpm
hbase-0.92.1-cdh4.1.2.p0.24.el5.noarch.rpm
hive-0.9.0-cdh4.1.2.p0.21.el5.noarch.rpm
oozie-3.2.0-cdh4.1.2.p0.10.el5.noarch.rpm
oozie-client-3.2.0-cdh4.1.2.p0.10.el5.noarch.rpm
pig-0.10.01.cdh4.1.2.p0.24.el5.noarch.rpm
hue-common-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-about-2.1.-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-help-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-filebrowser-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-jobbrowser-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-jobsub-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-beeswax-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-plugins-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-proxy-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-shell-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
hue-useradmin-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
sqoop-1.4.11.cdh4.1.2.p0.21.el5.noarch.rpm
###
5)執行安裝
yum install cyrus-sasl-gssapi
rpm -ivh jdk-6u31-linux-amd64.rpm # 居然還指定裝這個,有點莫名奇妙,我給機器本身裝了jdk1.7的還配了環境變量,但這個cloudera仍是說沒找到,還本身下載安裝,不知道是否是我沒配置好呢?
rpm -ivh cloudera-manager-agent-4.1.2-1.cm412.p0.428.x86_64.rpm
rpm -ivh cloudera-manager-daemons-4.1.2-1.cm412.p0.428.x86_64.rpm
rpm -ivh bigtop-utils-0.4+359-1.cdh4.1.2.p0.34.el5.noarch.rpm
rpm -ivh bigtop-jsvc-0.4-cdh4.1.2.p0.43.el5.x86_64.rpm
rpm -ivh bigtop-tomcat-0.4-cdh4.1.2.p0.38.el5.noarch.rpm
rpm -ivh flume-ng-1.2.0-cdh4.1.2.p0.7.el5.noarch.rpm
rpm -ivh hadoop-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh hadoop-hdfs-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh hadoop-httpfs-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh hadoop-yarn-2.0.0.1.cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh hadoop-mapreduce-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh hadoop-0.20-mapreduce-0.20.21.cdh4.1.2.p0.24.el5.x86_64.rpm
rpm -ivh hadoop-libhdfs-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh hadoop-client-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh hadoop-hdfs-fuse-2.0.0-cdh4.1.2.p0.27.el5.x86_64.rpm
rpm -ivh zookeeper-3.4.31.cdh4.1.2.p0.34.el5.noarch.rpm
rpm -ivh hbase-0.92.1-cdh4.1.2.p0.24.el5.noarch.rpm
rpm -ivh hive-0.9.0-cdh4.1.2.p0.21.el5.noarch.rpm
rpm -ivh oozie-3.2.0-cdh4.1.2.p0.10.el5.noarch.rpm
rpm -ivh oozie-client-3.2.0-cdh4.1.2.p0.10.el5.noarch.rpm
rpm -ivh pig-0.10.01.cdh4.1.2.p0.24.el5.noarch.rpm
rpm -ivh hue-common-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-about-2.1.-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-help-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-filebrowser-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-jobbrowser-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-jobsub-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-beeswax-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-oozie-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-plugins-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-proxy-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-shell-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh hue-useradmin-2.1.0-cdh4.1.2.p0.9.el5.x86_64.rpm
rpm -ivh sqoop-1.4.11.cdh4.1.2.p0.21.el5.noarch.rpm
6)安裝過程有因爲順序問題引發某些包安裝不全,請重複執行上述命令4-5次直到全部安裝包提示已經安裝爲止
7)用cloudera-manager進行「安裝」,這過程基本上就是完成配置文件和啓動cloudera-scm-agent(這個重要,有可能會提示出錯,出錯緣由稍後補充)而已,很快。
8)最後提示成功,則這臺機器已經受cloudera-scm-agent管理,基本上安裝配置完畢,剩下的就是根據cloudera-manager提示界面按須要完成hadoop組件、節點配置,如選擇namenode,datanode等。
這個過程很簡單很方便,但固然若是配置完成並啓動後再修改某些節點的內容如什麼什麼mapreduce、什麼Tracker之類,可能會出現問題再也啓動不了,具體內容出現過但沒深刻研究,
有的問題還無法解決只能換了機器(除了hadoop安裝過程依賴多,配置多,服務器自己環境也複雜。因此官方文檔建議用乾淨的機器)。
4.安裝過程問題補充
1)cloudera-scm-agent 沒法啓動:查看機器名,機器名不能包含下劃線
2)安裝過程、或配置有問題,需徹底刪除cloudera-scm-agent的,除了上述反安裝rpm包的命令,還需手動刪除部分文件
rm -rf /var/run/cloudera-scm-agent
rm -rf /var/log/cloudera-scm-agent
3)若是cloudera-manager上管理的機器識別標識總是機器名(應該是host上配置的)或ip不對, 手動修改啓動腳本參數
vim /usr/sbin/cmf-agent
大概內容、位置
agent/src/cmf/agent.py
—hostname vip1 —ip_address 172.16.22.1
4)重啓agent
/etc/init.d/cloudera-scm-agent restart
5)卸載全部安裝內容的命令:
rpm -e cloudera-manager-agent
rpm -e cloudera-manager-daemons
rpm -e sqoop
rpm -e pig
rpm -e oozie
rpm -e oozie-client
rpm -e flume-ng
rpm -e hadoop-hdfs-fuse
rpm -e hadoop-libhdfs
rpm -e hue
rpm -e hue-useradmin
rpm -e hue-about
rpm -e hue-oozie
rpm -e hue-beeswax
rpm -e hue-jobsub
rpm -e hue-jobbrowser
rpm -e hue-shell
rpm -e hue-proxy
rpm -e hue-plugins
rpm -e hue-filebrowser
rpm -e hue-help
rpm -e hue-common
rpm -e hive
rpm -e hadoop-client
rpm -e hadoop-0.20-mapreduce
rpm -e hadoop-mapreduce
rpm -e hadoop-yarn
rpm -e hadoop-httpfs
rpm -e hbase
rpm -e hadoop-hdfs
rpm -e bigtop-tomcat
rpm -e bigtop-jsvc
rpm -e hadoop
rpm -e zookeeper
rpm -e bigtop-utils
rm -f /etc/cloudera-scm-agent/config.ini.rpmsave
rm -rf /etc/hadoop
rm -rf /usr/lib/hadoop
rm -rf /etc/hadoop-httpfs/
rm -rf /usr/lib/hadoop-httpfs
rm -rf /etc/hive
rm -rf /usr/lib/hive
rm -rf /etc/hbase
rm -rf /usr/lib/hbase
rm -rf /usr/lib/hadoop-0.20-mapreduce/
rm -rf /usr/lib/hadoop-hdfs
rm -rf /usr/lib/hadoop-mapreduce
rm -rf /usr/lib/hadoop-yarn
rm -rf /usr/lib/zookeeper
rm -rf /etc/zookeeper
rm -rf /usr/lib/oozie
rm -rf /etc/oozie
rm -rf /usr/lib/bigtop-tomcat
rm -rf /usr/lib/flume-ng
rm -rf /etc/flume-ng
rm -rf /var/lib/hive
rm -rf /var/lib/oozie
rm -rf /var/lib/zookeeper
rm -rf /dfs # cloudera 默認是這個配置路徑,根據實際吧,別亂刪
rm -rf /data/dfs/ # cloudera 默認是這個配置路徑,根據實際吧,別亂刪
6. 測試。
1)用瀏覽器打開hdfs-site.xml中配置的dfs.namenode.http-address所對應的地址,則看看到該hadoop集羣機器當前相應情況。
2)登錄集羣中的任意一臺機器,直接執行」hadoop fs -ls / 」 來查看hadoop中的文件,或」hadoop fs -put xxx /tmp」 把文件放到hadoop中存放。(這裏固然須要配置系統環境變量PATH的$HADOOP_HOME/bin)。
3)非集羣內機器訪問並操做該hadoop集羣文件,仍是下載hadoop,配置什麼的跟上面同樣,不須要啓動什麼,而後直接hadoop fs 看看,或者hadoop fs -ls hdfs://xxxx:12345/。(前提,這臺機器能直接訪問集羣的namenode、datanode)。