1. 程式人生 > >Hive安裝及啟動異常解決

Hive安裝及啟動異常解決

前期準備

1、關於Hive的安裝包和文件可以從這裡獲取:

2、Hive依賴於Hadoop,關於Hadoop的安裝可以檢視這裡:

3、安裝mysql

由於Hive需要在資料庫中儲存元資料資訊,所以安裝hive之前需要先安裝mysql。hive有一個預設的存放在記憶體中的資料庫,企業開發一般不使用,這裡就不使用預設資料庫。如果你是Centos7可以點選這裡進行安裝——>Centos7安裝Mysql

安裝Hive

我這裡採用的是hive-2.2.0-bin版本。

1、解壓

tar -xzvf apache-hive-2.2.0-bin.tar.gz -C
Documents/install/

2、配置,進入和Hive的配置目錄conf

(1)配置hive.env.sh執行環境, 先將hive-env.sh.template重新命名為hive.env.sh。

//重新命名
mv hive-env.sh.template  hive-env.sh

//修改hive-env.sh配置如下
//HADOOP_HOME為hadoop的安裝目錄
//HIVE_CONF_DIR為Hive的配置檔案所在目錄
HADOOP_HOME=/home/bxp/Documents/install/hadoop-2.6.5
export HIVE_CONF_DIR=/home/bxp/Documents/install/hive-
2.2.0-bin/conf

(2)配置hive-site.xml,此時檔案下沒有hive-site.xml,需要拷貝一份hive-default.xml.template命名為hive-site.xml,並將hive-default.xml.template重新命名為hive-default.xml。將hive-site.xml檔案中的配置全部刪除,只需要新增以下配置即可。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration
>
<!--配置資料庫連線--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive2?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <!--配置資料庫連線驅動--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <!--配置資料庫連線使用者名稱--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>admin</value> <description>username to use against metastore database</description> </property> <!--配置資料庫連線密碼--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>admin</value> <description>password to use against metastore database</description> </property> <!--配置使用hive查詢資料時,顯示所查詢欄位的頭資訊--> <property> <name>hive.cli.print.header</name> <value>true</value> <description>Whether to print the names of the columns in query output.</description> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> <description>Whether to include the current database in the Hive prompt.</description> </property> </configuration>

(3)將hive-log4j2.properties.template重新命名為hive-log4j2.properties

3、下載mysql資料庫連線驅動
預設情況下Hive的lib目錄下沒有mysql的驅動,所以需要去下載mysql驅動jar包放於Hive的lib目錄下。如果沒有驅動,在hive啟動的時候會報錯,當然根據報錯提示很容易就能夠發現。

4、在HDFS建立目錄
啟動已經安裝好的hadoop,啟動,並在hdfs檔案系統上建立/tmp和/user/hive/warehouse目錄,併為建立的目錄新增同組寫許可權

//建立目錄
bin/hdfs dfs -mkdir -p /tmp
bin/hdfs dfs -mkdir -p /user/hive/warehouse
//新增許可權
dfs -chmod g+w /tmp
dfs -chmod g+w /user/hive/warehouse

5、初始化metadata

bin/schematool -dbType mysql -initSchema

6、啟動

bin/hive

啟動失敗解決方案

配置過程中細節很重要,下面就看看我在配置結束後,啟動時遇到的問題以及解決方案,通過異常提示能夠看出來的問題,這裡就不再強調說明。

1)問題一:與資料庫建立連線時候沒有許可權的問題,無法連線的問題

Caused by: java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://192.168.1.103:3306/hivemetastore, username = admin. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: ------
java.sql.SQLException: Access denied for user 'admin'@'hadoop-series.bxp.com' (using password: YES)

這個問題我查了很多說法,都是眾說紛紜,最後發現,最簡單的解決辦法就是,不要去嘗試建立一個新的資料庫使用者用於連線,直接使用mysql root使用者連線即可。

但是使用root使用者連線的時候,發只能夠使用localhost(jdbc:mysql://localhost:3306) 才能夠連線成功,而無法使用IP(jdbc:mysql://192.168.1.103:3306)進行連線。實際中hive和mysql不一定在一臺主機上,所以必須要使用IP進行連線,要解決這個問題,只需要修改mysql root使用者許可權即可。具體步驟如下:

//登陸mysql
sudo mysql -uroot -p
//對mysql表進行操作
use mysql
//查看錶中的資訊
select user,host from user;
//修改root使用者許可權,預設是隻能夠本地登陸(localhost,127.0.0.1),修改為"%"就可以遠端登陸
update user set host='%' where user='root' and host='localhost';
//將root本地登陸許可權刪除,具體的看錶中的資訊
delete from user where user='root' and host='::1';
delete from user where user='root' and host='127.0.0.1';
delete from user where user='root' and host='localhost.localdomain';
//重新整理許可權
flush privileges;

此時就可以通過IP(jdbc:mysql://192.168.1.103:3306)進行連線。

這裡寫圖片描述

本人嘗試過建立使用者時使用主機IP(CREATE USER [email protected] ),此時連線時也使用IP(jdbc:mysql://IP:3306),也嘗試過給建立的使用者賦予”%”許可權,但是還是相同的錯誤無法連線。新建立的使用者只能夠使用localhost許可權,並且只能在本地進行登陸。所以初步斷定這是Mysql為使用者分配許可權的原因。具體的原因沒有深究,想了解更多的可以去查閱相關的資料進行解決。

(2)問題二:無法找到metadata

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

Caused by: java.lang.reflect.InvocationTargetException

Caused by: MetaException(message:Version information not found in metastore. )

這個問題我也查了很多資料,也是有各種的說法,最後選擇低版本(hive-0.13.1-bin)按照上面的的配置進行一系列的配置,居然正常啟動了。最後就覺得是版本問題。最終發現在Hive2以後,安裝啟動hive之前需要對hive metadata進行初始化。使用如下命令:

 bin/schematool -dbType mysql -initSchema

初始化完成之後就能夠正常啟動了。

(3)問題三:9000埠無法訪問

Caused by: java.net.ConnectException: Call From hadoop-series.bxp.com/192.168.1.103 to hadoop-series.bxp.com:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

首先是防火牆,如果你的防火牆已經關閉了,那就是hdfs沒有啟動成功或者沒有啟動導致的,因為9000是hdfs其中一個服務的埠。這裡有必要說一下,我使用hive-0.13.1-bin版本進行啟動的時候,不需要開啟hdfs也能夠啟動。但是2.0後必須依賴hdfs。

相關推薦

Hive安裝啟動異常解決

前期準備 1、關於Hive的安裝包和文件可以從這裡獲取: 2、Hive依賴於Hadoop,關於Hadoop的安裝可以檢視這裡: 3、安裝mysql 由於Hive需要在資料庫中儲存元資料資訊,所以安裝hive之前需要先安裝mysql。h

docker學習之 安裝啟動錯誤解決

docker學習 Linux centos7下安裝docker需要 linux 核心在 3.10.0 以上, 檢視核心的方法為: # 檢視版本號 [[email protected] sysconfig]# uname -r 3.10.0-327.el7.

docker 安裝好後啟動異常解決

exe option end ted ref code clas dock failure 一個月前在虛擬機中根據視頻教程安裝了docker 啟動docker後執行 systemctl status docker 出現了異常,具體如下: [root@joinApp2 ~]#

Hive安裝配置啟動的時候出現的問題以及解決辦法

[ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChangeError: Found class jline.Termi

mac下Tomcat安裝啟動,瀏覽器卻打不開解決方案

第一步:下載 Tomcat 1. 選擇版本號 在右側 Download 選擇版本號。 下面,我選擇版本8作為演示 2. 並下載(選擇 zip 或 tar.gz 均可,注意別下載 windows 版本了點選下面的連結直接下載也行): Core: ·      zip (

Tornado 基礎安裝啟動

all fix 3.x div **kwargs pos cat highlight dmi Tornado 基礎安裝及啟動 2017年03月24日 hairui Tornado 115 0 Tornado的安裝 Python 2.7.x 安裝學習

redis 安裝啟動關閉

containe art size ash bin 一份 四種 color service 1、redis下載   方式1:直接去官網下載     https://redis.io/download   方式2:通過命令下載     wget http://download

centos6.9 上docker 的安裝 啟動 和運行狀態查看

docker安裝dockeryum install docker-io yum install device-mapper-event-libsyum upgrade device-mapper-libs 啟動docker/etc/init.d/docker restart 查看docker的運行狀態/et

前臺IDE安裝啟動

RM vue-cli 鏡像 file ebs pac href 裝包 ali 一、 首先下載前臺ide工具 一般前臺用webstorm,Visual Studio Code, sublim等,開發工具因個人決定,下面我用webstorm為舉例 訪問https://ww

Hive(一)---- Hive安裝配置

joins hist query mysqld onf pass chmod 客戶 主機 Hive安裝及配置 下載hive安裝包 此處以hive-0.13.1-cdh5.3.6版本的為例,包名為:hive-0.13.1-cdh5.3.6.tar.gz 解壓Hive到安裝目錄

mongoDB安裝啟動配置

一、下載 官網下載:https://www.mongodb.com/download-center?jmp=nav#community 二、安裝 自己選擇安裝位置。 從 MongoDB 4.0 開始,預設情況下,你可以在安裝期間配置和啟動 MongoDB 作為服務,並

MYSQL5.7 ZIP版本安裝相關問題解決

對於mysql5.7以後版本,沒有了my.ini檔案,這裡要自己新建。 安裝過程: 1、解壓zip檔案。例如D:\ProgramFile\mysql-5.7.19-winx64 2、新增環境變數。D:\ProgramFile\mysql-5.7.19-winx64\bin到pa

mongoDB學習筆記——安裝啟動

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

slor6.6 在linux下的安裝以及啟動失敗解決辦法

一、前言: 環境:(注–>一切不說明環境的安裝教程都是耍流氓) centos7 solr6.6.5 jdk1.8 tomcat8 曾記得在solr4的時候曾經的一個外包專案需要使用到檢索功能折騰了差不多一個周,從lucene到solr

idea安裝啟動外掛解決專案執行反覆啟動tomcat(jrebel)

我的外掛資源:https://pan.baidu.com/s/1g82fHW-cwQdzfsYEOe8Mew  密碼:f2hv 第一步:網上下載外掛 https://plugins.jetbrains.com/plugin/4441-jrebel-for-int

Tomcat安裝啟動異常the JRE_HOME environment variable is not defined correctly

1.安裝完Tomcat配置環境以後,如果出現以下情況: 點選tomcat\bin目錄下startup批處理檔案時,dos介面出現閃退情況; 先要找出問題的原因:右鍵編輯開啟“startup.bat"檔案,然後找檔案的最後一行程式碼是:end    在:end的後面輸入paus

RoctetMQ windows下的安裝啟動

目錄 一、下載編譯後的二進位制檔案 二、解壓 三、啟動 四、 BAT一鍵啟動 一、下載編譯後的二進位制檔案 編譯後的二進位制檔案(下載此檔案則不需要編譯):http://rocketmq.apache.or

Hive安裝使用簡介

Hive簡介: 1、Hive在hadoop生態圈中屬於資料倉庫的角色。他能夠管理hadoop中的資料,同時可以查詢hadoop中的資料。 2、Hive其本質來講,是一個SQL解析引擎。Hive可以把SQL查詢轉換為MapReduce中的Job來執行(將HQL轉化成MR程式

centos下nginx的安裝啟動

1、安裝前必備 安裝前確保確保進行了安裝了linux常用必備支援庫。檢查是否安裝了g++、gcc、openssl。rpm -qa | grep gcc 之後需要出現3個包如下圖所示。如果沒有出現。需要安裝g++、gcc。 # yum install gcc-c++ pc

Autoit安裝啟動

1、Autoit下載:   官網下載地址:https://www.autoitscript.com/site/autoit/downloads/   提供百度網盤下載:https://pan.baidu.com/s/17l5fOlz_ZHjoHxnQwiQBYA(如果連結失效,請在評論中索要,會在評論中再