Cloudera Manager、CDH零基礎入門、線路指導 http://www.aboutyun.com/thread-9219-1-1.html (出處: about雲開發)

Cloudera Manager、CDH零基礎入門、線路指導
http://www.aboutyun.com/thread-9219-1-1.html
(出處: about雲開發)php

 

問題導讀:
1.什麼是cloudera CM 、CDH?
2.CDH、CM有哪些版本?
3.CDH、CM有哪些安裝方式?
4.CDH如何開發?



<ignore_js_op> 

咱們知道cloudera CDH 是爲簡化hadoop的安裝,也對對hadoop作了一些封裝。那麼咱們就像嘗試學習cloudera。
cloudera本質hadoop的封裝,那麼學起來,應該不難。不就是下載下來,而後自動安裝,最後管理hadoop生態系統的一些服務。
的確是這樣的,可是也沒有咱們想象的那麼簡單。

基礎知識
那麼咱們就開始第一步吧,第一步以前,那就是你的基礎,這個是很關鍵的,若是不會使用Linux,那麼你須要看一下另一篇文章:零基礎學習hadoop到上手工做線路指導(初級篇)。能夠看看Linux的基礎知識模塊。須要掌握的內容仍是很多的:



html


Linux掌握了,那麼咱們是否須要掌握虛擬機的基礎知識,在搭建hadoop集羣中,能夠這些是必須掌握的,那麼cloudera是否須要,也是須要的,這裏就不在羅列了,詳細參考零基礎學習hadoop到上手工做線路指導(初級篇)。可是cloudera CM的安裝比起hadoop集羣的安裝對硬件的要求更高。內存至少10G,爲何會這麼多,若是少於10G是否能夠,答案是能夠的,可是後面你會遇到各類問題,或許都找不到答案。
對於cloudera-scm-server就須要至少4G的內存,cloudera-scm-agent的內存至少也須要1.5G以上。那麼若是你的機器是8G的,仍是很吃力的。
在安裝的過程當中,後面有不少的服務安裝遇到問題的可能性是很大的。

什麼是CDH

hadoop是一個開源項目,因此不少公司在這個基礎進行商業化,Cloudera對hadoop作了相應的改變。
Cloudera公司的發行版,咱們將該版本稱爲CDH。


不少新手問的最多的問題是,哪一個是收費的,那個是免費的。
Cloudera Express版本是免費的
Cloudera Enterprise是須要購買註冊碼的

更多內容:
Cloudera Hadoop什麼是CDH及CDH版本介紹

CDH(Cloudera)與hadoop(apache)對比

大數據架構師基礎:hadoop家族,Cloudera產品系列等各類技術





官網介紹
<ignore_js_op> 
當咱們學習的時候,咱們該如何學習,有兩種方式:第一種:先理論,後實踐
第二種:先實踐,後理論

上面兩種方式各有各的場合,若是你要去面試、考試、搞理論思想類,第一種方式是沒有問題的。由於這些都是停留在思想層面的。
對於一個編程技術人員來說,本人以爲第二種方式更加的短平快。
上面兩種方式都有些絕對,最佳的方式就是實踐與理論相結合。
這裏撰文一下,引用孔子的一句話java

學而不思則罔 思而不學則殆


只看書,不實踐,或則只倒騰部署、停留在某些問題得不到解決,可是又不去看書、百度、谷歌查找解決問題,這樣也是不行的。



好了,開始咱們的官網:
官網是咱們學習標準,因此咱們首先要記住官網地址:
主頁:
http://www.cloudera.com/content/cloudera/en/home.html
進入官網咱們能夠作些什麼事情:
1.提供API
2.查看部署文檔
3.下載安裝包
那麼咱們如何查找API,如何查找部署文檔,如何下載安裝包?
詳細能夠查看
cloudera(CDH)官網介紹:安裝包、離線包該如何下載、官方文檔等介紹






安裝包下載:
同時附上各個版本包的地址:
Cloudera文檔彙總
http://www.cloudera.com/content/support/en/documentation.html
CDH四、CDH5包彙總
http://archive.cloudera.com/cdh4/
http://archive.cloudera.com/cdh5/
CM四、CM5包彙總
http://archive.cloudera.com/cm4/
http://archive.cloudera.com/cm5/

官網CDH5下載
http://www.cloudera.com/content/ ... /cdh/cdh-5-1-0.html

之前版本地址:
CDH1~CDH3
http://archive-primary.cloudera.com/cdh/


當咱們看到安裝的時候,同時也困擾着咱們,咱們該選擇哪一個安裝包。

首先須要介紹下CM(Cloudera Manager)及CDH的安裝方式:

CM(Cloudera Manager)有三種安裝方式:

1.第一種使用cloudera-manager-installer.bin安裝
這種安裝方式,只要從官網下載cloudera-manager-installer.bin,而後執行這個bin文件,剩下的就是等待下載和安裝。可是這個時間不是通常的長,最好吃個飯,睡個覺,最後看到還在安裝過程當中。此帖安裝步驟及遇到問題記錄很詳細,可參考
Cloudera Manager5及CDH5在線(cloudera-manager-installer.bin)安裝詳細文檔


Cloudera Manager5及CDH5安裝指導(終極在線安裝)

遇到的問題:
當咱們安裝完畢CM,那麼咱們就要添加主機,主機添加完畢,咱們會看到安裝進度:

<ignore_js_op> 


可是並非每一個人都能看到上面進度,而是看到下面錯誤:python

Detecting Cloudera Manager Server...
Detecting Cloudera Manager Server...
BEGIN host -t PTR 192.168.1.198
198.1.168.192.in-addr.arpa domain name pointer localhost.
END (0)
using localhost as scm server hostname
BEGIN which python
/usr/bin/python
END (0)
BEGIN python -c 'import socket; import sys; s = socket.socket(socket.AF_INET); s.settimeout(5.0); s.connect((sys.argv[1], int(sys.argv[2]))); s.close();' localhost 7182
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused
END (1)
could not contact scm server at localhost:7182, giving up
waiting for rollback request


上面錯誤該如何解決:
可使用下面方法解決:mysql

  1. mv /usr/bin/host /usr/bin/host.bak
複製代碼




2.第二種使用rpm、yum、apt-get方式在線安裝
這種安裝方式,在網上看的有點眼花繚亂,多是由於咱們對yum、apt、rpm瞭解的很少形成的,對於Linux基礎缺少的,能夠參考:yum與rpm、apt的區別:rpm的缺陷及yum的優點,總的來講:因爲rpm依賴關係很差,因此產生了yum,而yum和apt則都是Linux的包管理工具,而且解決了包與包的依賴關係。

這裏列出一些安裝文檔
ubuntu 12.04 安裝 Cloudera Manager5及CDH5(Mysql)【添加yum源方式安裝集羣】

遇到問題1:內存太小
使用yum安裝由於mysql的配置至少須要對Cloudera server 4G的內存,不然mysql的重啓過程當中,就會遇到unknown instance.

遇到問題2:界面沒法訪問
界面沒法訪問,分爲兩種狀況
一種是Cloudera-manager-server沒有徹底起來

當咱們運行下面命令:
<ignore_js_op> 


若是如今,輸入url,訪問web,可能會是沒法訪問
host/ip:7180,我這裏是172.16.77.60:7180

<ignore_js_op> 


大概須要等10分鐘左右,界面就能夠訪問了。

<ignore_js_op> 

一種則是權限問題
因此咱們初次安裝儘可能使用root.還有咱們須要會看日誌。

Linux日誌的位置:
下面爲server日誌

<ignore_js_op> 


下面爲agent日誌
<ignore_js_op> 

同時在咱們安裝服務的過程當中,咱們還須要會查看角色日誌,這樣從web界面就是能夠看到,由於在咱們安裝過程當中,服務的安裝沒有那麼順利。
這裏暫時沒有截圖,咱們只要記住角色日誌,在界面中找到便可。 


遇到問題3:沒法找到cloudera agent客戶端

咱們使用下面命令安裝了agentlinux

  1. sudo apt-get install cloudera-manager-agent cloudera-manager-daemons
複製代碼

固然還有不少其它須要安裝,當咱們的agent安裝成功後,爲何咱們的的界面中不能發現agent.


原本咱們有三臺,可是卻只有一臺,並且是cloudera server本地的agent





這是由於咱們的在安裝的過程當中,agent都指向了本地localhost.
咱們打開配置文件web

  1. sudo nano  /etc/cloudera-scm-agent/config.ini
複製代碼



修改
server_host爲server ip地址
server_port爲7180

下圖CDH即爲cloudera server的hostname



修改完畢:
首先重啓Agent
sudo service cloudera-scm-agent restart
而後重啓server
sudo service cloudera-scm-server restart
這時候會發現已經生效。
更詳細內容能夠參考
記錄cloudera Manager安裝Cloudera-Scm-Agent如何指向Cloudera-Scm-Server


更多文檔能夠參考:
Cloudera Manager 和 CDH 4 終極安裝(一)

ClouderaManager以及CHD5.1.0集羣部署安裝

Cloudera Manager (centos)離線安裝詳細介紹

CM五、CDH5安裝(CDH5半自動離線安裝)

Cloudera Manager 5 和 CDH5 本地(離線)安裝指南

Cloudera Manager 和 CDH5 本地(離線)安裝指導




3.第三種使用是Tarballs的方式

這種方式網上資料不多
安裝的命令以下:面試

  1. $ tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
複製代碼

這個跟hadoop的安裝方式是同樣的
安裝的方法詳細可參考:

spring


這裏在列出官網給出的三種安裝方式:sql



若是想安裝CM,此次再次強調必定要有足夠的內存。而且咱們安裝完畢CM,通常會

4.安裝失敗處理
上面若是咱們安裝失敗該如何處理:使用 cloudera-manager-installer.bin(Parcles)安裝失敗後卸載cloudera

卸載 Cloudera Manager 5.1.x.和 相關軟件【官網翻譯:高可用】
5.目錄結構:
因爲咱們大多采用在線安裝的方式,因此出血,咱們根本不知道cloudera安裝在了什麼位置,詳細能夠參考下面內容

解析Cloudera Manager內部結構、功能包括配置文件、目錄位置等
亦可參考下面帖子:
卸載 Cloudera Manager 5.1.x.和 相關軟件【官網翻譯:高可用】









CDH安裝方式:

Yum/Apt包,Tar包,RPM包,CM安裝
這些包的下載,能夠在上文安裝包彙總中能夠找到。
CDH1~CDH3
http://archive-primary.cloudera.com/cdh/

CDH4~CDH5
http://archive.cloudera.com/cdh4/
http://archive.cloudera.com/cdh5/


安裝文檔,下面能夠參考
Linux(ubuntu12.04)單節點僞分佈安裝CDH5.1.X及提交wordcount到yarn高可靠文檔
各個版本Linux單節點僞分佈安裝CDH5.1.X及提交wordcount到yarn高可靠文檔


Hadoop CDH5 手動安裝僞分佈式模式
經過CM方式安裝,大多在安裝CM的時候,已經安裝了CDH。




CDH開發

安裝完畢,咱們還想開發提到開發,咱們就想到eclipse插件,其實咱們在開發過程當中,插件做用就是幫助咱們可以方便的看到在Linux的文件。
因此開發方式也有兩種,
一種插件開發
咱們如何找到eclipse插件,能夠參考
cloudera CDH(5)開發方式及CDH eclipse插件編譯總結


一種是無插件開發
無插件開發,也就是直接添加開發包

能夠參考:hadoop開發方式總結及操做指導

先總結到此,但願你們有所收穫。




有的同窗反映寫的不夠細,這裏在補充一些內容:
Cloudera Manager Server啓動後又掛掉的緣由總結

咱們安裝CDH的時候,會碰到cloudera server啓動後又掛掉了,這是什麼緣由?
查看日誌:包下面問題

但是明明已經安裝jdk,而且已經設置了JAVA_HOME

  1. java -version
複製代碼



也能返回版本
這是怎麼回事,猜想cloudera server(5)認oracle jdk,對於sun jdk也須要是在線安裝(至因而不識別sun jdk還未驗證)。同時還必須是jdk1.7.





 



也就是須要執行下面命令:

  1. sudo apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -y install oracle-j2sdk1.7
複製代碼

緣由是在後面執行scm-server數據庫配合的時候,若是找不到Java_home可能會初始化失敗。
Java_home默認安裝路徑以下。

  1. /usr/lib/jvm/java-7-oracle-cloudera
複製代碼


從上面咱們得出,若是想安裝順序,咱們最好使用下面命令來安裝jdk1.7

sudo apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold -y install oracle-j2sdk1.7


執行上面命令,那麼還須要作下面工做:



而後咱們接着執行命令:

  1. service cloudera-scm-server restart
複製代碼


認爲終於好了,可是不幸的是,此次堅持了不到兩分鐘又掛掉了。


此次爲何會掛掉,不得不查看日誌了:

Caused by: org.springframework.beans.factory.BeanCreationException:  Error creati
ng bean with name 'entityManagerFactoryBean': FactoryBean threw exception on obj

ect creation; nested exception is javax.persistence.PersistenceException: org.hi
bernate.exception.GenericJDBCException: Could not open connection
        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.
doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
        at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.
getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getObje
ctForBeanInstance(AbstractBeanFactory.java:1440)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:247)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:192)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveReference(BeanDefinitionValueResolver.java:322)
        ... 17 more
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.Gener
icJDBCException: Could not open connection
        at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityMan
agerImpl.java:1387)
        at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityMan
agerImpl.java:1310)
        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException
(AbstractEntityManagerImpl.java:1397)
        at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:62)
        at com.cloudera.enterprise.AbstractWrappedEntityManager.beginForRollback
AndReadonly(AbstractWrappedEntityManager.java:85)
        at com.cloudera.enterprise.dbutil.DbUtil.isInnoDbEnabled(DbUtil.java:472
)



2014-09-22 17:51:27,328 ERROR [main:spi.SqlExceptionHelper@147] An attempt by a 
client to checkout a Connection has timed out.
2014-09-22 17:51:27,339  INFO [main:support.DefaultListableBeanFactory@422] Dest
roying singletons in org.springframework.beans.factory.support.DefaultListableBe
anFactory@715dcdeb: defining beans [commandLineConfigurationBean,entityManagerFa
ctoryBean,com.cloudera.server.cmf.TrialState,com.cloudera.server.cmf.TrialManage
r,com.cloudera.cmf.crypto.LicenseLoader]; root of factory hierarchy
2014-09-22 17:51:27,341 ERROR [main:cmf.Main@202] Server failed.
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
h name 'com.cloudera.server.cmf.TrialState': Cannot resolve reference to bean 'e
ntityManagerFactoryBean' while setting constructor argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean wi
th name 'entityManagerFactoryBean': FactoryBean threw exception on object creati
on; nested exception is javax.persistence.PersistenceException: org.hibernate.ex
ception.GenericJDBCException: Could not open connection
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveReference(BeanDefinitionValueResolver.java:328)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver
.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
        at org.springframework.beans.factory.support.ConstructorResolver.resolve
ConstructorArguments(ConstructorResolver.java:616)
        at org.springframework.beans.factory.support.ConstructorResolver.autowir
eConstructor(ConstructorResolver.java:148)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:293)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)


看完日誌,你是否仍是雲裏霧裏,這不得不說一下,咱們該如何利用日誌。

日誌的做用是什麼?日誌的做用是提示,它大部分會給咱們明確說遇到了什麼問題,好比權限拒絕,等,可是有些你是看不明白的,那咱們該如何處理?只能靠你的靈感了, 沒有靈感怎麼辦?那就須要本身縷順序,本身是怎麼安裝、怎麼操做的,而後從中可以發現問題。漸漸的你就能培養出靈感了。


上面其實我只知道報的是一個Java異常,並且還跟連接有關係。
靈感來了,就像到了,是由於沒有執行下面命令:

配置cloudera-manager-server數據庫

  1. sudo /usr/share/cmf/schema/scm_prepare_database.sh mysql  -uroot -p --scm-host localhost scm scm scm_password
複製代碼

可是又出問題了,以下:





其實這個問題已經解決了,安裝咱們能夠進入上面步驟。
當咱們安裝完畢,ok了,終於好了:

當咱們看到下面內容的時候,all done,說明咱們配置成功了。



而後咱們再次重啓

  1. service cloudera-scm-server restart
複製代碼

ok始終在堅挺着,沒有掛機,問題獲得解決

相關文章
相關標籤/搜索