Hive 笔记异常

出错信息如图:

一 异常来源:

1.在hive-site.xml配置文件中

         <value>jdbc:MySQL://192.168.*.*/hive_13?characterEncoding=UTF-8</value>


2.在hive-site.xml配置文件中

         <value>jdbc:MySQL://192.168.*.*:3306/hive_13?characterEncoding=UTF-8</value>修改为 <value>jdbc:mysql://master:3306/hive_13?characterEncoding=UTF-8</value>后重新登录hive客户端出现异常,导致不能连接mql数据库


二 异常分析:

1.对于错误情形一:由于未指定端口号,需要指定端口号3306.       

2.对于错误情形二:有192.168.24.26改为master后 MySQL用户名也随之发生成APP,此时需要在其中对其重新授权;


三  解决方案:


方案一:权限问题

              

可能由于root的权限不够,可以进行如下操作

1)      以root进入mysql

2)      赋予root权限:

mysql> GRANTALL PRIVILEGES ON *.* TO 'APP'@'master' IDENTIFIEDBY 'some_pass' WITH GRANT OPTION; 

//本地操作的权限

mysql> GRANTALL PRIVILEGES ON *.* TO ' root '@'%'   IDENTIFIEDBY 'some_pass' WITH GRANT OPTION;

//远程操作的权限

3)  刷新:

        flush privileges;

方案二:mysql驱动问题
mysql-connector-java-5.1.21-bin.jar换成较高版本的驱动如mysql-connector-java-6.0.3-bin.jar
下载路径http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/



在执行hive命令时,出错总结

执行#hive命令进入Hive

 

错误情形一:

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

……

Caused by: java.lang.RuntimeException: Unable toinstantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

异常来源:没有启动HiveMetastore Server服务进程。 
解决方法:启动Hive 的Metastore Server服务进程,执行如下命令:

# hive --service metastore &

 

错误情形二:

FAILED: Execution Error, return code 1from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException:You have an error in your SQL syntax; check the manual that corresponds to yourMySQL server version for the right syntax to use near 'OPTIONSQL_SELECT_LIMIT=DEFAULT' at line 1……

异常来源: Hive连接MySQL的JDBC驱动版本有问题。 
解决方法:安装高版本驱动,下载链接方法见前文。

 

错误情形三:

Exception in thread "main" java.lang.RuntimeException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path inabsolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

……

Caused by: java.net.URISyntaxException: Relative path inabsolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

        at java.net.URI.checkPath(URI.java:1804)

        at java.net.URI.<init>(URI.java:752)

        at org.apache.hadoop.fs.Path.initialize(Path.java:203)

        ... 11 more

异常来源: system:java.io.tmpdirsystem:user.name提示需要使用绝对路径.

解决方法:将conf/hive-site.xml中所有的system:java.io.tmpdirsystem:user.name都换成绝对路径。

 

错误情形四:

[ERROR] Terminal initialization failed; falling back tounsupported

java.lang.IncompatibleClassChangeError: Found class jline.Terminal,but interface was expected ……

异常来源:因为在hadoop目录下存在老版本jline: 
$HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar

解决方法:将hive下的新版本jlineJAR包拷贝到hadoop下:并将老版本jline删除。

 

错误情形五:

Diagnostic Messages for this Task:

Container launch failed forcontainer_1431310046688_0001_02_000013 :org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to startcontainer.

This token is expired. current time is 1431311178863found 1431311136701

        atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

异常来源:namenodedatanode的时间不一致,需要保证namenodedatanode的时间一致。


错误情形六:

Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/hadoop/e03ae08e-5b05-4f1b-81db-f9f11794bfa1. Name node is in safe mode.
The reported blocks 0 needs additional 19 blocks to reach the threshold 0.9990 of total blocks 19.

异常来源由于HDFS备份文件损坏,HDFS进行了安全模式,

解决办法:使用命令强制离开安全模式,然后重新备份。

这是因为在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
可以通过以下命令来手动离开安全模式:
bin/hadoop dfsadmin -safemode leave 
用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下:
enter - 进入安全模式
leave - 强制NameNode离开安全模式
get - 返回安全模式是否开启的信息
wait - 等待,一直到安全模式结束。


邹中凡:http://blog.csdn.net/freedomboy319/article/details/44828337

似水流年:http://blog.csdn.net/xiaoshunzi111/article/details/48827775




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值