hive使用derby的服务模式(可以远程模式)
生活随笔
收集整理的這篇文章主要介紹了
hive使用derby的服务模式(可以远程模式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
hive默認使用的derby的嵌入模式。這個就面臨著,無法多個并發hive shell共享的問題。 使用MySQL服務器也可以解決問題,但安裝、配置太麻煩了。 可以使用輕量級的derby的c/s服務模式解決問題。 1、下載、配置derby 首先,從apache下載derby的最新版。
?
wget https://mirrors.tuna.tsinghua.edu.cn/apache//db/derby/db-derby-10.14.1.0/db-derby-10.14.1.0-bin.tar.gztar -xzvf ./db-derby-10.14.1.0-bin.tar.gz
cd db-derby-10.14.1.0-bin
derby基本是開箱即用的,如下啟動
./bin/startNetworkServer -h myhost -p myport同時,還需要拷貝兩個jar包到hive/lib下
cp ./derbyclient.jar ~/hive-current/lib/ cp ./derbytools.jar ~/hive-current/lib/2、配置hive 需要修改2個配置,derby默認是可以沒有用戶名、密碼的。注意看驅動,和嵌入模式的驅動是不一樣的
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:derby://s007132.cm8:1527/hive_meta;create=true</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>org.apache.derby.jdbc.ClientDriver</value><description>Driver class name for a JDBC metastore</description></property>?
此外,注意hdfs上的路徑,不要和已有的沖突了。PS:這里配置的路徑是hdfs上的
<property><name>hive.metastore.warehouse.dir</name><value>/user/lhy/product_search/hive</value><description>location of default database for the warehouse</description></property><property><name>hive.exec.scratchdir</name><value>/user/lhy/product_search/hive-tmp</value><description>Scratch space for Hive jobs</description></property>?
初始化數據庫
hive/bin/schematool -dbType mysql -initSchema啟動hive
hive/bin/schematool?
報錯:
Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!解決辦法:
修改derby的script的sql語句,只是掉最前面的兩個function
轉載于:https://www.cnblogs.com/lfm601508022/p/8850171.html
總結
以上是生活随笔為你收集整理的hive使用derby的服务模式(可以远程模式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java基础之构造方法
- 下一篇: 字符串转二维数组