Hive叢集環境搭建之本地模式(多使用者模式)
阿新 • • 發佈:2018-12-17
搭建叢集的模式有三種
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修改許可權
- 剛下載下來的MySQL是沒有密碼的
mysql -uroot
登陸 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
flush privileges;
修改許可權後,重新整理許可權- 新增hive使用者
CREATE USER 'hive'@'%' IDENTIFIED BY '123';
grant all privileges on hive_meta.* to
- 刪除多餘會對許可權造成影響的使用者
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)