大讲台分享:关于Hive常见的问题及解决方案(一)

来源:互联网 发布:java覆盖例子 编辑:程序博客网 时间:2024/05/21 09:29

本文中所涉及到的问题均来自大讲台Hadoop学员的提问,下面是具体问题描述及解决方案。

问题1:运行hvie 虽然能启动,但是报警告,看着很烦人,希望老师帮我解决下?

问题描述:我启动hive  报下面的警告:

WARNING:org.apache.hadoop.metrics.jvm.EventCounteris deprecated。please use org.apache.hadoop.log.metrics.EventCounter in all 。

解决方案:上面的警告是没有使用org.apache.hadoop.log.metrics导致。解决方法:

使用vi 打开hive-log4j.properties文件:

[hadoop@single-hadoop-dajiangtai-comconf]vi hive-log4j.properties

找到此行:

log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter

修改为:

log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter

再次执行hive命令:

[hadoop@single-hadoop-dajiangtai-comhive-1.0.0]hive   就ok了!

问题2:hive 是否需要每个datanode都安装?

问题描述:hive 是否需要每个datanode都安装?每个节点安装是不是太麻烦了?

解决方案:Hive的安装其实有两部分组成,一个是Server端、一个是客户端,所谓服务端其实就是Hive管理Meta的那个Hive,

服务端可以装在任何节点上,可以是Namenode上也可以是Datanode的任意一个节点上,至于哪个节点做Hive的服务端,由自己决定。

      不过在Hadoop的HA环境里我想应该是在两个NameNode里都装成Hive的Server,并且hive.metastore.warehouse.dir 配置成hdfs://****,这样其他节点安装的Hive就都是客户端了,并且hive.metastore.uris值可以指向这两个 NameNode的Ip。

问题3:hive能使用update 更新数据么?

问题描述:问大家一个问题 hive表数据已经导入到Mysql了 但是我需要对这条数据 的某一个字段的值进行更新 其他字段数据不动 该怎么做?

解决方案:Hive 不支持用 insert 语句一条一条地进行插入操作,也不支持 update 操作,数据是以 load 的方式加载到建立好的表中,数据一旦导入就不可以进行修改。

     如果你真想修改表中的某个字段的值,需要你新建一个表,在导入数据的时候修改该字段的值。

补充一下:Hive0.14 版本后支持update。 请看官网文档https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Update

0 0
原创粉丝点击