Cloudera manager free 的使用

Cloudera可以簡化Hadoop的安裝配置過程,自動在集羣節點上安裝hadoop相關組件,創建用戶。

所有機器上一定要安裝好Perl包。

 

cloudera manager free是個免費的版本,對普通的應用也夠了。  安裝比較簡單,下載相應的.bin文件運行即可。  不過DNS要配好,如果不用DNS服務器解析每個集羣主機,那麼每個集羣機器上面hosts文件都要準備好。

 

安裝好後用web 界面建立集羣,各臺機器上即遠程安裝CDH

安裝過程默認都是到網上下載rpm包,容易超時。比較煩人。

可以自鍵repo, 本來覺得太複雜,後來試了。 其實方法也不難, 把CDH, cloudera-manager-相關的RPM都存放在某一機器上,運行createrepo(要安裝此yum包先), 然後用httpd吧這個目錄發佈出去就可以。

但是每個host上都要創建myrepo.repo文件,指向此httpd的repo URL, 還要記住repo文件里加一句 cost=300,這樣纔可以優先從這裏下載rpm包。

如果是用parcel安裝,你們第一步安裝好之後,只是在各機器上安裝了cloudera-agent, 下一步纔是安裝CDH各組件。

 

在安裝CDH3的 默認情況下,配置是這樣的

Hbase, habse.rootfir 存放在/hbase

datanode, dfs.data.dir 存放在/dfs/dn

Namenode, dfs.name.dir 存放在 /dfs/nn

Jobtracker 本地數據目錄 mapred.local.dir 存放在 /mapred/jt

Tasktracker 本地數據目錄mapred.local.dir 存放在 /mapred/local

Secondary NAme node, fs.checkpoint.dir 存放在 /dfs/snn

Hive, 倉庫目錄  hive.metastore.warehouse.dir 存放在 /user/hive/warehouse;端口 hive.metastore.port  9083

Oozie服務器 數據目錄 /var/lib/oozie/data

zookeeper dataDir datalogDir 都存放在 /var/zookeeper

選擇默認。

/dfs 和/mapred 都是本地磁盤上的目錄,實際環境中也許應該事先建好目錄,mount在單獨的一塊磁盤上。

安裝好以後是這樣的界面

服務相關的用戶都會自動創建好。

啓動後默認的端口:

master上面 

50060  task tracker status

50030  mapreduce 管理界面

50070  NameNode管理界面

8020  DFS系統

 

安裝好了以後會發現和自己下載apache 的 tar包不一樣, 可執行文件和配置文件被分別放到了不同目錄。 這個給人感覺不是很好, 維護起來不太便捷。 conf目錄下的master和slaves文件也沒有了,很奇怪! 不過可能因爲這兩個文件只是start-???和stop-???的腳本里面用到,CDH是由數據庫裏的信息管理集羣,啓動停止都有CDHweb界面操作,所以就不用了。這些配置什麼的信息cloudera網站上沒有詳細提到,有的提到了但是不是對應最新版的,按照他的文檔你找不到配置文件的路徑,比較麻煩。

 

如果是按照的CDH4, 那麼很多配置文件比如hive的文件都放在了/var/run/目錄下了,也就是動態生成的?  那麼原始配置參數大概都在 cloudera manager的本地數據庫裏。 真不知道它是怎麼改寫的。

 

CDH3的hadoop版本是 0.20, 是比較老的一個版本了。 配置則和睦的基本都放在/etc下面

 

sqoop 的rpm默認已安裝在master上面, 運行命令

sqoop import --connect jdbc:mysql://serveraddress/DBname --username somename -P --table tablename --hive-import --hive-table hivename --split-by keyname

如果是添加記錄到某個表要加上 --append選項,但不知道這個是不是必須的。

即可導入數據到hive中,並且會自動建立hive表。 不過運行時的用戶要用hdfs, 還有一個hive用戶但是它是不能登錄的,搞不明白cloudera的設計。

 

impala,據說性能比hive高很多,但是還沒有做比較。 它可以用JDBC連接,要運行你的java程序,官方文檔上說CLASSPATH 裏面可以設/opt/jar/*.jar, 結果試下來不行,你必須一個一個指定/opt/jar/下面 impala/hive 的各個jar纔可以 運行你的java程序。

 

 

Hadoop本身帶有一個IO性能測試的工具, TestDFSIO,運行是這樣的:

hadoop jar hadoop-test.jar TestDFSIO -write -nrFiles 5 -fileSize 1000

hadoop jar hadoop-test.jar TestDFSIO -read -nrFiles 5 -fileSize 1000

hadoop jar hadoop-test.jar TestDFSIO -clean

這個工具在cloudera下運行會出錯, 其實map和reduce分別都完成了,但就是在最後一步會報錯:

java.io.FileNotFoundException: TestDFSIO_results.log (Permission denied)

原因是運行程序一般使用hdfs身份運行,但是這時寫result文件沒有權限。

必須加一個參數:

hadoop jar hadoop-test.jar TestDFSIO -write -nrFiles 1 -fileSize 512 

-resFile /tmp/TestDFSIOresults.txt 

這樣就可以看到測試的結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章