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

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

hive单用户模式(Derby方式)配置及踩坑实录_第1张图片

hive单用户模式(Derby方式)配置及踩坑实录_第2张图片

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

hive单用户模式(Derby方式)配置及踩坑实录_第3张图片

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

  

   

  javax.jdo.option.ConnectionURL  

  jdbc:derby:;databaseName=metastore_db;create=true  

  


  

  javax.jdo.option.ConnectionDriverName  

  org.apache.derby.jdbc.EmbeddedDriver  

  

   

  

  hive.metastore.local  

  true  

  

   

  

  hive.metastore.warehouse.dir  

  /user/hive/warehouse  

  

  

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


第五步:启动hive

hive单用户模式(Derby方式)配置及踩坑实录_第4张图片

报错: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 &

再次启动又报错:

hive单用户模式(Derby方式)配置及踩坑实录_第5张图片

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

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

hive单用户模式(Derby方式)配置及踩坑实录_第6张图片

修改之后再次启动 又报错

hive单用户模式(Derby方式)配置及踩坑实录_第7张图片

错误原因:

在/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单用户模式(Derby方式)配置及踩坑实录_第8张图片

然后重新启动hive即可

hive单用户模式(Derby方式)配置及踩坑实录_第9张图片

发现有一个警告

解决方法:

去hive-site.xml下注释掉这个参数:
这个配置很早就废除了,网上还是有很多人部署集群的时候加上这个参数

hive单用户模式(Derby方式)配置及踩坑实录_第10张图片

再次重启hive 一切正常

查看数据库

hive单用户模式(Derby方式)配置及踩坑实录_第11张图片

注:使用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

你可能感兴趣的:(Hive)