Hive安装使用中的一些问题
1.
非root用户
连接
mysql服务
时,报如下错误,
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
原来是
mysql服务
没有启动,启动
mysql服务
时候,一直失败,
sudo
切换执行命令
mysql -uroot -proot
即可。
2.安装
hive
和
mysql
完成后,将mysql的连接jar包拷贝
mysql-connector-java-x.x.xx-bin.jar
到
$HIVE_HOME/lib
目录下。
3.如果出现没有权限的问题,mysql授权(在安装mysql的机器上执行)
执行下面的语句:
mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
. : 所有库下的所有表 % :任何IP地址或主机都可以连接
-
Jline包版本不一致的问题:Hive使用的Jline(命令行解析包)版本高于Hadoop的版本。
需要拷贝
$HIVE_HOME/lib
目录中jline.2.12.jar
的jar包替换掉hadoop中的/home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
4.
bin/hive
报如下错误:
Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException : Call From hadoop/192.168.21.191 to hadoop:8020 failed on connection exception: java.net.ConnectException : 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
解决办法:先
启动HDFS
。
5.在
hive窗口
执行查询语句,报错:
hive> select * from hive_count; FAILED: SemanticException Unable to determine if hdfs://hadoop:9000/user/hive/warehouse/hive_count is encrypted: java.lang.IllegalArgumentException: Wrong FS: hdfs://hadoop:9000/user/hive/warehouse/hive_count , expected: hdfs://hadoop:8020
解决办法: 需要修改hive 数据库里面
DBS : Hive数据仓库的总路径
SDS : Hive每张表对应的路径
6.在
hive窗口
提交
MR任务
时,报错:
The auxService:mapreduce_shuffle does not exist
解决办法:
在
yarn-site.xml
配置文件中增加:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
7.进入
spark-shell
时,
./spark-shell --master spark://hdp-sk-01:7077
,
hive
出现以下错误:
Another instance of Derby may have already booted the database /home/spark/app/spark-1.5.1-bin-hadoop2.4/bin/metastore_db.
错误原因:
突然离线,易造成hive没能来得及删除自动创建的metastore_db文件夹,这时再次用hive命令进入,则会产生如上报错。
解决办法:将
metastore_db
文件夹改名或者干脆删除,然后重新运行
hive
命令启动即可