hadoop2.2.0偽分佈下安裝hive
1.環境及軟體介紹:CentOS-6.4-x86_64-bin-DVD1.isohadoop-2.2.0hive-0.12.0mysql(為CentOS6.4自帶版本為MySQL5.1.66).
2.MySQL的安裝和解除安裝
使用rpm –qa|grep mysql檢視已安裝的資料庫軟體
解除安裝MySQLyum remove mysqlmysql-server
重新安裝yum –y install mysqlmysql-server
3.MYSQL資料庫基本配置
設定開機自啟動首次使用設定密碼
若上述設定無效,可使用下列方法強制設定
4.修改並新增Vi /etc/my.cnf
注:紅框中的資訊有則修改,無則新增。
5.將MySQL的jdbc驅動包放入hive的lib下,若所有者不是Hadoop,要修改為Hadoop。
注:驅動包版本與MySQL版本不符,但可以用。驅動包5.1的可以支援MySQL4.1-6.0.但還是越接近MySQL越好,bug較少。
6.建立資料庫並設定編碼。
Create database hive;
Create database hive;
alterdatabase hive character set latin1;7.安裝hive,進入軟體所在目錄。使用命令tar–zvxfhive-0.12.0.tar.gz
8.將hive-0.12.0主目錄修改為hiv.命令為mv hive-0.12.0 hive (這一步可以省略。)
9.修改配置檔案。配置檔案在hive主目錄的conf資料夾下。操作命令如下
cp hive-env.sh.template hive-env.sh
chown hadoop:hadoop hive-env.sh
使用vi hive-env.sh新增如下資訊
並繼續使用cp命令產生hive-default.xml和hive-site.xml
注以上修改的檔案所用者要是hadoop使用者
10.在hive-site.xml新增如下資訊
注:
2.為在MySQL中建立的專屬資料庫名
3.為使用者名稱,最好直接是root使用者。這個無影響
4.MySQL的登入密碼。
11.切換到Hadoop使用者下,啟動Hadoop。檢視Hadoop是否正常12.執行
進入hive
./hive(有警告但可以忽略)
使用hive命令進行操作
至此基於MySQL的hive變搭建成功了。
13.常見錯誤更改。
SLF4J: Failed to load class"org.slf4j.impl.StaticLoggerBinder".
Unable toinstantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
atorg.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
atorg.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
atorg.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
. . . . . . . .
出現的原因
1.沒有找到合適的繫結SLF4J,無法載入到記憶體
2.slf4j是所謂的門面模式,提供了一個介面,出現上面的異常是因為jar衝突了
解決的辦法,根據報的異常下載新的合適的slf4j-nop.jar。根據我的錯誤我下的是slf4j-1.7.5.tar.gz。具體如下先刪除舊的,再新增新的。
14.基本操作練習。
向hive中新增資料。(空格長度就是\t就是tab)
之所以會出現四行null。是因為空格不是一個tab長度。