hive单用户模式(Derby方式)配置及踩坑实录

第一步:将hive上传到master上 并解压



第二步:将hive的conf目录下的hive-default.xml.template文件拷贝一份 并将名称改为hive-site.xml


第三步:在hive-site.xml文件中加入以下内容:

<configuration>  

 <property>  

  <name>javax.jdo.option.ConnectionURL</name>  

  <value>jdbc:derby:;databaseName=metastore_db;create=true</value>  

</property>  


<property>  

  <name>javax.jdo.option.ConnectionDriverName</name>  

  <value>org.apache.derby.jdbc.EmbeddedDriver</value>  

</property>  

   

<property>  

  <name>hive.metastore.local</name>  

  <value>true</value>  

</property>  

   

<property>  

  <name>hive.metastore.warehouse.dir</name>  

  <value>/user/hive/warehouse</value>  

</property>  

</configuration>  

第四步:配置hive的环境变量


第五步:启动hive


报错:Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

可能原因:因为没有正常启动Hive 的 Metastore Server服务进程。 

解决方法:

1. 方法一:修改一下MySQL的日志格式,不一定有效果效果:

mysq -u  root -p
mysql> set global binlog_format='MIXED';
mysql> flush privileges;
注意:必须是root用户才有权限更改

2. 方法二:启动Hive 的 Metastore Server服务进程,执行如下命令:hive --service metastore &

再次启动又报错:

这是因为之前配置的Hadoop NameNode HA端口没修改过来

修改hadoop的配置文件core-site.xml 修改内容如下:


修改之后再次启动 又报错


错误原因:

在/hive/conf/lib目录中存在jline-x-x.jar,而/hadoop-x-x/share/hadoop/yarn/lib目录中存在老版本的jline-x-x.jar

解决办法:

将hive中新版本的jar包复制到hadoop中

执行命令:cp /usr/local/hive/lib/jline-2.12.jar /usr/local/hadoop/share/hadoop/yarn/lib/

删除老版本的jline-0.9.94.jar


然后重新启动hive即可


发现有一个警告

解决方法:

去hive-site.xml下注释掉这个参数:
这个配置很早就废除了,网上还是有很多人部署集群的时候加上这个参数
<!-- 
<property>
  <name>hive.metastore.local</name>
  <value>true</value>
</property>

-->


再次重启hive 一切正常

查看数据库


注:使用derby存储方式时,运行hive会在当前目录生成一个derby文件和一个metastore_db目录。这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库,否则会提示如下错误:

[html] view plaincopyprint?

hive> show tables;  

FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details.  

NestedThrowables:  

java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details.  

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask  

hive> show tables;

FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details.

NestedThrowables:

java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details.

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值