1. 程式人生 > >hadoop2.2.0偽分佈下安裝hive

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.
MySQLjdbc驅動包放入hivelib,若所有者不是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.xmlhive-site.xml
  
 
注以上修改的檔案所用者要是hadoop使用者
10.hive-site.xml新增如下資訊
  
  注:
1為主機名,最好為localhost,其他的有時會不識別

2.為在MySQL中建立的專屬資料庫名

3.為使用者名稱,最好直接是root使用者。這個無影響

4.MySQL的登入密碼。

11.切換到Hadoop使用者下,啟動Hadoop。檢視Hadoop是否正常
  
12.
執行
   進入
hive
    ./hive(
有警告但可以忽略)
   使用
hive命令進行操作
   
   
    至此基於MySQLhive變搭建成功了。
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長度。