hive初始化mysql資料庫失敗的原因

Apes_001發表於2018-10-24

在配置好hive-site.xml後執行初始化資料:schematool -initSchema -dbType mysql

然而搞程式的都知道不會那麼順利的:報錯資訊如下
which: no hbase in (/home/jdk/jdk1.8.0_192/bin:/home/hadoop-2.7.7/bin:/home/hadoop-2.7.7/sbin:/home/jdk/jdk1.8.0_192/bin:/home/hadoo
p-2.7.7/bin:/home/hadoop-2.7.7/sbin:/home/jdk/jdk1.8.0_192/bin:/home/hadoop-2.7.7/bin:/home/hadoop-2.7.7/sbin:/usr/local/sbin:/usr/l
ocal/bin:/usr/sbin:/usr/bin:/home/hive/hive-2.3.3/bin:/root/bin:/home/hive/hive-2.3.3/bin:/home/hive/hive-2.1.0/bin)
Metastore connection URL: jdbc:derby:;databaseName=metastore_db;create=true
Metastore Connection Driver : org.apache.derby.jdbc.EmbeddedDriver
Metastore connection User: APP
Starting metastore schema initialization to 2.1.0
Initialization script hive-schema-2.1.0.mysql.sql
Error: Syntax error: Encountered “” at line 1, column 64. (state=42X01,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2

Use --verbose for detailed stacktrace.
*** schemaTool failed ***

可以看到報錯的log中hive還是去讀取預設的資料庫而不是mysql
出現這個錯誤是因為本人也是檢視的袁類所寫的文章
執行命令:cp hive-default.xml.template ./hive-site.xml 複製檔案並在hive-site.xml檔案裡配置關於mysql的一些連線資訊的配置
問題就是處在hive-site
在這裡插zhesgi 入圖片描述
剛剛接觸到hive 對hive也不是特別瞭解 也是參考網上的配置文章 進行配置 然後就是一直入坑!!!
hive-default.xml.template 的開頭就寫明瞭 WARNING!!!對該檔案的任何更改都將被Hive忽略
其實hive-site.xml是使用者定義的配置檔案 hive在啟動的時候會讀取兩個檔案一個是hive-default.xml.template 還有一個就是hive-site.xml 當執行cp複製命令時 hive-site.xml 裡就有了hive-default.xml.template的內容 當你繼續寫入關於mysql的配置儲存後進行初始化hive mysql時就會報這個錯誤,然後hive的Metastore 服務起不來。
解決辦法
在複製的hive-site.xml裡儲存你寫的配置項,然後將其他的刪掉
hive-site.xml只能寫你自己的配置項,其他刪掉
執行之前的初始化命令
在這裡插入圖片描述
從log中已經可以看到初始化已經讀取的mysql的配置連線URL和連線驅動,出現這個 那可以初始化成功了
*schemaTool completed**
當然我也不能保證會不會出現其他的錯誤 坑是一直在的, bug是不會消失的
關於hive的其他報錯 請參考其他的技術大牛文章

相關文章