Cloudera Manager和CDH4.1的安裝
剛開始安裝時,覺得是各種麻煩。現在反思以下,覺得這個過程也不是太麻煩。下面我就把我在整個安裝過程中,敘述如下,如果整個過程理解有錯或不到位的地方,歡迎咱們互相交流,共同進步。
- Cloudera Manager的安裝需要先修改機器的三個配置:
- 關閉防火牆:service iptables stop;
- 關閉selinux:setenforce 0或修改/etc/selinux/config:SELINUX=disabled;
- 配置代理:在/etc/yum.conf加入如下內容:http_proxy=http://server:port。
- 最好在/etc/yum.conf增加timeout時間,timeout=55555。自己設置長點就行。
- 准備安裝文件cloudera-manager-installer.bin,這是個二進制文件,下載地址:https://ccp.cloudera.com/display/SUPPORT/Cloudera+Manager+Downloads,這個要在64位的機器上運行,我讓它運行在CentOS-6.2,x86_64上。然后設置下執行權限,chmod u+x cloudera-manager-installer.bin,接着就直接執行它./ cloudera-manager-installer.bin。這里有個問題,在我自己的虛擬機上一直運行不了,出現的問題:cannot execute binary file,可能因為它是32位的吧。
- 在整個安裝過程中,要確保你的機器能夠聯網,會出現讓你選擇的畫面,一般就ENTER,next,accpet就行了,然后慢慢等待等到它自行安裝結束。
- 啟動cloudera manager:在瀏覽器輸入你的主機,我的是http:192.168.20.195:7180。注冊一個賬號登陸如(admin,admin),進去后,會讓我們選擇主機,我就裝了偽分布式,然后安裝CDH4.1和impala,這個安裝過程時間比較長,因為它是外國的網站,網絡穩定與否對安裝的影響很大,我裝這個花費很長時間,期間如果出現某個安裝包錯誤,就必須重新開始安裝,因此強調下,最好使用一個干凈的系統(沒裝過hadoop相關程序),它會去網上下載很多rpm包,默認地把hadoop,hbase,zookeeper,hive,impala等都裝到了user/lib底下,耐心等待吧。
- 安裝好了之后,我們就可以啟動自己需要的服務,當然某些服務彼此會有依賴,沒關系的cloudera manager太強大了,它能幫你識別,幫助你開啟相關服務。我開啟的服務界面如下圖所示:
在開啟服務的過程中,其他的服務都正常開啟了,但是最關鍵的我需要的服務卻一直顯示不良狀態,如下圖:
Impala沒正常啟動,這是我這次研究的重中之重。出現問題,就開始找問題,后來發現是impala和數據庫(我用的是mysql)沒連接成功。下面着重講述下配置mysql連接impala。
Impala的運行需要有配置了Mysql或PostgreSQL的hive metastore,hive本身支持的derby數據庫,impala不支持。
一、配置遠程數據庫作為Hive Mestastore。
A:安裝MySQL JDBC連接器,從'http://www.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.22.tar.gz下載連接器,並把解壓后的mysql-connector-java-5.1.22-bin.jar文件拷貝至/usr/lib/hive/lib下。
B:MySQL管理員需要用hive-schema-0.9.0.mysql.sql來建立初始數據庫:
$ mysql –u root –p mysql > CREATE DATABASE hivemetastoredb; mysql > USE hivemetastoredb; mysql > SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/ hive-schema-0.9.0.mysql.sql; mysql > CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘hive’; mysql > CREATE ALL PRIVILEGES ON hivemetastoredb.* TO ‘hive’@’%’ WITH GRANT OPTION; mysql > FLUSH PRIVILEGES; mysql > QUIT; |
C:配置mysql用utf8作為默認的字符編碼。
$ vim /etc/my.cnf 在[mysqld]下加入 Default-character-set=utf8 |
這是因為,impala去連接mysql時所用到的連接字符串為:URL="jdbc:mysql://localhost:3306/hivemetastoredb?useUnicode=true&characterEncoding=UTF-8”,它默認用的就是utf8。
二、新增Impala服務
進入cloudera manager管理界面,新增impala服務,點擊impala,點擊配置,可看到如下界面:
在這個配置里面,需要配置如下參數:
Property |
Value |
DataNode Local Path Access Users dfs.block.local-path-access.user |
impala |
DataNode Data Directory Permissions dfs.datanode.data.dir.perm |
755 |
Enable HDFS Block Metadata API dfs.datanode.hdfs-blocks-metadata.enabled |
true |
Enable HDFS Short Circuit Read dfs.client.read.shortcircuit |
true |
Hive Metastore的配置如上圖所示,數據庫連接密碼:hive。
三、配置好impala后,點擊重新啟動impala。啟動成功后可以看到如下界面:
兩個服務都完成,才算impala啟動成功。
- 配置Hue Beeswax連接到Impala。
這個配置是為了讓Hue Beeswax網站接口來執行Impala語句。修改/etc/hue/hue.ini,如下內容:
[beeswax] beeswax_server_host=192.168.20.195 beeswax_server_port=8003 |
重啟Hue服務。至此,impala這個服務也算是正常啟動了。
最后說明一下,這次配置遇到的問題及解決方法。
問題一:無法安裝hadoop-hdfs包。
如下圖所示:
圖中說明的錯誤是:事務驗證出錯,后面的信息顯示了是版本沖突問題。也就是說,本來電腦里面已經有裝了hadoop-1.0.3現在和cloudera的hadoop-hdfs-2.0.0沖突,導致hadoo-hdfs無法安裝,也就使得安裝失敗,又得重新來一次了,悲劇啊。
解決問題,我找到了系統里安裝hadoop-1.0.3的所有包,然后把它們全部刪掉,包括安裝的目錄。
$ rpm –qa | grep –i hadoop-1.0.3 hadoop-1.0.3+20.38283-1.el6.x86_64 $ rpm –ql hadoop-1.0.3+20.38283-1.el6.x86_64(查找安裝的位置) $ rpm –e hadoop-1.0.3+20.38283-1.el6.x86_64(卸載) |
卸載過程中,可能會有包依賴,沒關系,繼續按照上述方法把他們全部刪光,重新安裝就行啦。
問題二:啟動impala時,impala daemon無法啟動,查看日志出現如下問題。
這個問題,說是連接到mysql被禁止,但是我用java自己做了個程序去連接mysql沒有問題,很奇怪,
javax.jdo.JDOFatalDataStoreException: Access denied for user 'hive'@'localhost' (using password: YES),最主要是這句話,我本來連接數據庫是,用root登錄mysql建立了個新用戶hive,然后不使用密碼,同時在impala中的配置目錄里,默認數據庫用戶hive登錄也是不需要密碼的,但是卻始終連不上,后來經過分析這句話,using password:YES,也就是說,本來不需要密碼,你卻用了密碼登陸到mysql,這就有問題了,也就是說,雖然配置里的密碼是空的,但是impala默認還是以有密碼的形式登錄到mysql,這樣連接就一直被禁止了。解決的方案是:刪掉hive用戶,建立一個用戶名和密碼都是hive的用戶接着,把配置里密碼也輸入hive,問題終於解決了。
問題三:如下圖,這個問題不大,沒什么影響。
安裝到此算告一段落了,但是還有很多問題需要讓我去探究,cloudera這么一個開源的,強大的公司,做的產品也是如此之美,我才只是初涉淺灘,擺在目前還有很多問題不能解決,如下:
1:impa為什么要依賴hive呢,又為何要獨立配置數據庫,
2:impalad和impala-state-store之間的具體關系是怎樣的。
3:impala可以直接操作hdfs,那為什么啟動服務時,它有依賴於HBase;
4:現在只是配置了偽分布式,在大型集群中,又該如何操作它們。
--------------------------------------------------------------------------------------------------------------------------------------本文說明得有些簡陋,希望得到高手們的指點,謝謝。
--------------------------------------------------------------------------------------------------------------------------------------草原戰狼 2012/11/16 16:42