1. 程式人生 > >我的Hadoop、Hbase、Hive、Impala總結

我的Hadoop、Hbase、Hive、Impala總結

1.怎麼查詢hadoop_home

看Hive安裝的時候需要配置hadoop_home 因為不太懂,查找了一下/etc/profile檔案發現沒有,

又搜尋了一下發現叫hadoop的目錄到處都是,不知道哪個是,最後同事說,有bin的目錄就是hadoop_home,那麼多資料夾一個一個找費勁,而且如果有多個資料夾怎麼辦,

這裡我發現一個簡單的辦法

輸入hadoop version

會打印出

Hadoop 2.5.0-cdh5.3.2
Subversion http://github.com/cloudera/hadoop -r 399edecc52da6b8eef1e88d8a563ede94c9cc87c
Compiled by jenkins on 2015-02-24T20:54Z
Compiled with protoc 2.5.0
From source with checksum 3d11317b8cfa5e9016a8349e33b363ee
This command was run using /usr/lib/hadoop/

hadoop-common-2.5.0-cdh5.3.2.jar

這個命令是檢視hadoop的版本,這裡下邊紅色的資料夾就是安裝Hadoop的位置了,點進去以後發現有bin目錄,搞定,那麼上邊又多了一個發現。

因為我只知道我們用的是cloudera的CDH來安裝的hadoop,但是我不知道我們用的什麼版本,這裡也一起打印出來了,用的是cdh5.3.2

2.Hive部署

按照下邊的帖子進行的配置

http://ju.outofmemory.cn/entry/118202

釋出了Hive,版本是CDH5.3.2的

下載地址是 http://archive-primary.cloudera.com/cdh5/cdh/5/

正常搭建完以後,他說在控制檯直接敲hive ,我不知道怎麼弄的,我是在hive的目錄下的bin目錄下,返現有個hive檔案,我就直接敲hive

然後才正常啟動hive ,但是一開始啟動說是找不到驅動,當然是英文提醒,然後我把lib放到了網上說的user/lib/hive/lib下,發現不好使,我又看了

/etc/profile檔案發現class_path變數指向JDBC的lib,我又放JDBC下,還是不好使,最後我發現hive目錄下有個lib放進去終於好使了

3.Hive啟動後試驗

create TABLE aaa(id int,name string)報錯如下

Error in metadata:MetaException(message:javax.jdo.JDODataStoreException: An exceptionwas thrown while adding/validating class(es) : Specified key wastoo long; max key length is 767 bytes

解決方式

在mysql伺服器上執行

alter database hive character set latin1

問題解決了

4.Hive匯入資料都是NULL

按網上寫的建立表以後,匯入類似格式資料,資料都是NULL。問題是因為建表時的分隔符跟資料的實際分隔符不對,我換成  ','  都好分隔以後資料成功錄入。

5.安裝ClouderaManager總結

主要參考2個帖子

http://blog.csdn.net/yhl27/article/details/37726639

www.aboutyun.com/thread-9190-1-1.html

先參考第一個配置環境,再參考第2個安裝。

問題1.沒有圖形使用者介面如何安裝

公司的Linux伺服器沒安裝圖形使用者介面。同時,我只能使用CRT進行遠端伺服器安裝

這個時候,使用cloudera-manager-installer.bin安裝就會列印一大堆亂碼的東西,因為他是圖形使用者介面的。

一開始我以為安裝不了了,但是實際上是能安裝的。

我進入了第一個帖子裡的

/var/www/html/cm5/redhat/6/x86_64/cm/5.4.1/RPMS/x86_64 目錄下

然後自己rpm -ivh 來安裝

先安裝daemons,然後安裝server,然後安裝server-db,然後安裝agent。其中daemons必須第一個安裝,server必須在server-db前邊安裝。agent隨便,只要先安裝了daemons就可以了。

問題2.安裝完以後cloudera-scm-server啟動失敗

安裝完這些包以後發現cloudera-scm-agent,server,server-db3個服務都已經有了

但是server一直啟動不起來。

這個時候,可以進入

/var/log/cloudera-scm-server資料夾檢視.log檔案,就一個.log應該不會找錯,這個時候我出現了2個問題。

第一個是沒有mysql驅動包,這個時候不用從晚上下載,只要在你前臺工程裡搜一下一般都有。mysql-connector-java-5.1.*.jar

這裡我電腦上有個mysql-connector-java-5.1.30.jar我就直接放到伺服器上了

但是發現我放到classpath下不行,放到JDK的lib下也不行,最後找到了正確的位置

應該放在/usr/share/java/目錄下,同時檔名必須叫mysql-connector-java.jar否則也會出問題!

驅動安裝以後出現第2個問題,log的報錯已經改變,說是連不上資料庫

因為我著臺上沒有mysql,mysql在另外一臺伺服器上。這個時候需要修改

/etc/cloudera-scm-server/db.properties檔案

裡邊很簡單,自己把註釋的資料庫賬號,密碼,地址什麼的填上就行了,資料庫名我忘了是不是需要自己建了,最好先自己建一個。

表是在伺服器啟動的時候,它自己會幫你建上,但是首先你要有個名字跟配置檔案裡一樣的資料庫!

6.cloudera-manager叢集

我已經在10.10.92.151上安裝了cloudera-manager,之後安裝了Hbase,HDFS,MapReduce,Hive,Impala,zookeeper

我現在想在10.10.92.153上也安裝一份,同時作為151的子節點,形成叢集。

我一開始的做法是按照網上說的,點選新增節點,然後一步步來,但是一直提示

http://10.10.92.151/cm5/redhat/6/x86_64/cm/5.4.1/repodata/repomd.xml 這個地址返回407

後來我配置了代理,myrepo,/var/hosts,/etc/yum.conf/,這些,能配置代理的都配置了代理。

終於不報407了,開始報

 http://10.10.92.153/cm5/redhat/6/x86_64/cm/5/repodata/repomd.xml: [Errno -1] Error importing repomd.xml for myrepo: Damaged repomd.xml file

提示是配置檔案損壞,這個問題一直沒解決,在網上問也沒人知道。

最後沒辦法

我直接在153上安裝了全套的cloudera-manager5.4.1+CDH5.4.1

之後,我解除安裝了153上的cloudera-scm-server-db 跟 cloudera-scm-server

然後將/etc/cloudera-scm-agent/config.ini 配置下的伺服器地址,從local修改成了10.10.92.151

重啟cloudera-scm-agent之後。

進入151的管理頁

http://10.10.92.151:7180

但是在 主機這裡 一直重新整理不出來153這臺機器。

最後我又點選了在向叢集裡新增主機,但是這次的嚮導居然變了,變的跟安裝CDH時候差不多,經過幾次繼續之後,151開始向153上佈置配置檔案,

最後居然叢集好使了,可以看到2臺機器。

但是實際上是否叢集成功了,我現在也不會看,所以還不知道。

7.Hbase的VERSIONS總結

首先可以通過describe '表名' 來查看錶資訊,其中就有VERSIONS屬性。這個是版本。預設是3,我一直在傻傻的在HBASE裡找這個設定。最後發現沒有。

而是在建表的時候可以設定的,比如

create 'table1',{NAME=>'clo1',VERSION='50'};//這是保留50個版本

但是,我發現從hive對映過來的表,他的VERSIONS預設是1,正好也滿足我的需求,這裡只是記錄一下。其實這個問題是我一直以為是在HBASE的配置項裡配置表的VERSIONS數量,是我搞錯了。

8.Impala不能查詢Hive新增加的表

下邊是我從網上找到的解決方案,這裡記錄一下。

使用Cloudera Manager部署安裝的CDH和Impala,Hive中新增加的表,impala中查詢不到,其原因是/etc/impala/conf下面沒有hadoop和hive相關的配置檔案: 

將hadooop-core.xml,hdfs-site.xml,hive-site.xml拷貝到conf下,重啟服務即可。

/etc/impala/conf這個路徑我是有的。於是但是下邊這3個檔案在哪呢,我拷貝的是/etc/hive/conf目錄下的

core-site.xml,hdfs-site.xml,hive-site.xml
拷貝完檔案後重啟Impala服務,執行impala-shell,show tables,能夠發現新表,問題解決。


。。。。。。未完待續。。。。。。