1. 程式人生 > >Hive叢集環境搭建之本地模式(多使用者模式)

Hive叢集環境搭建之本地模式(多使用者模式)

搭建叢集的模式有三種

1. 原始碼包下載及解壓

2. 叢集的環境

Active NameNode Standby NameNode DataNode Zookeeper ZKFC JournalNode ResourceManage NodeManager
node01 - - -
node02 -
node03 - - -
node04 - - - -

3. MySQL服務端的設定

3.1 安裝Mysql服務端

Yum install mysql-server -y

3.2 開啟服務

service mysqld start (開啟服務) chkconfig mysqld on (開機啟動)

3.3 進入MySQL修改許可權

  1. 剛下載下來的MySQL是沒有密碼的 mysql -uroot登陸
  2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
  3. flush privileges;修改許可權後,重新整理許可權
  4. 新增hive使用者CREATE USER 'hive'@'%' IDENTIFIED BY '123';
  5. grant all privileges on hive_meta.* to
    [email protected]
    "%" identified by '123';flush privileges;
  6. 刪除多餘會對許可權造成影響的使用者 在這裡插入圖片描述

3.4 需要將mysql的jar包拷貝到$HIVE_HOME/lib目錄下

mysql-connector-java-5.1.32-bin.jar

4. 修改hive-site.xml檔案(服務端的,即hive包所在的節點)

          需要注意,剛開始解壓的包是沒有hive-site.xml檔案的,需要把hive-site.xml.template檔案複製一份為hive-site.xml. 此檔案在/conf資料夾中

<
configuration> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive_remote/warehouse</value> </property> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> </configuration>

5. 開啟服務端的Metasrote服務

後臺啟動
hive --service metastore >> meta.log 2>&1 &

6.客戶端Hive原始碼包下載及解壓

6.1 修改hive-site.xml

<configuration>  
   
<property>  
  <name>hive.metastore.local</name>  
  <value>false</value>  
</property>  
  
<property>  
  <name>hive.metastore.uris</name>  
  <value>thrift://192.168.57.5:9083</value>  
  <!--此ip是服務端的IP地址 -->
</property>  
  
</configuration>  

7. 啟動Hive

$HIVE_HOME/bin/hive

8. 注意的地方

1.雖然配置檔案配置好了但是因為Hive的lib下的Jline.jar與/hadoop-2.6.5/share/hadoop/yarn/lib下的Jline.jar包版本不一樣,就會出現錯誤。 解決辦法:一般來說Hive的Jline.jar包是新版本,把這個包覆蓋Hadoop裡面的這個包。

ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
	at jline.TerminalFactory.create(TerminalFactory.java:101)