第一步:将hive上传到master上 并解压
第二步:将hive的conf目录下的hive-default.xml.template文件拷贝一份 并将名称改为hive-site.xml
第三步:在hive-site.xml文件中加入以下内容:
第四步:配置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再次启动又报错:
这是因为之前配置的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下注释掉这个参数:
这个配置很早就废除了,网上还是有很多人部署集群的时候加上这个参数
再次重启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