内容简介:同事说spark-sql插入不了数据,读取数据可以。写会报以下错误2019-02-20 19:12:40 INFO audit:371 - ugi=root ip=unknown-ip-addr cmd=get_table : db=dataall tbl=track_pcError in query: java.lang.IllegalArgumentException: Wrong FS: hdfs://aaaaa:9000/user/hive/warehouse/dataall.db/track_pc
同事说spark-sql插入不了数据,读取数据可以。写会报以下错误
2019-02-20 19:12:40 INFO audit:371 - ugi=root ip=unknown-ip-addr cmd=get_table : db=dataall tbl=track_pc
Error in query: java.lang.IllegalArgumentException: Wrong FS: hdfs://aaaaa:9000/user/hive/warehouse/dataall.db/track_pc/.hive-staging_hive_2019-02-20_19-12-39_656_7771985312772642109-1/-ext-10000/part-00000-53761c78-6e3b-47e0-b203-57fba5f90856-c000, expected: hdfs://bbbbb;
hive读取数据,插入数据都可以。
一,问题分析
错误提示也很清楚了,hdfs地址不对。期望的是hdfs://bbbbb,而实际的是hdfs://aaaaa:9000
1,hdfs的配置检查,做了ha后,也不会在使用带端口的hdfs,应当不是这块问题
2,检查spark的配置文件,使用hdfs的地方,也使用了ha,应当不是这块问题
3,无意间看了看元数据,发现数据库里面竟然有hdfs://aaaaa:9000, 这些属于配置,放到数据库里面无语哦。配置的改动,数据库并不会根着变动。
二,解决办法有二
1,使用metatool,这是hive自带工具(官方推荐,本人没有实验成功)
# metatool -updateLocation hdfs://aaaaa:9000/ hdfs://bbbbb/ //更换 # metatool -listFSRoot //查看
如果通过更新操作,出现以下内容,说明更新成功,不然不成功。
# metatool -listFSRoot SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/bigdata/hive/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/bigdata/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Initializing HiveMetaTool.. Listing FS Roots.. hdfs://bbbbb/user/hive/warehouse hdfs://bbbbb/user/hive/warehouse/dataall.db
我用的是hive2.3.4 bin版的,安装方法参考: hive mysql 安装配置
2,直接修改元数据库
要改DBS和SDS二张表,
元数据库表dbs修改
元数据库sds修改
三,意外收获
namenode做ha,请参考: zookeeper hadoop 集群 安装配置 ,如果active的namenode发生宕机时,调度的任务会切换到ha的其他节点。整个yarn的调度任务,以及hdfs的存储任务是不会受影响的。
但是只要hdfs://aaaaa:9000,这台机器由active转变成standby后,hive和spark根本连不上去,直接报,READ is not supported in state standby
这个问题,在元数据库改过以后,就在也没发生过 。
其实还有一种解决办法就是,让hdfs://aaaaa:9000,一直active,如果这样,HA就失去它的价值了。
以上所述就是小编给大家介绍的《hadoop hive 创建表的坑》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Prometheus: Up & Running
Brian Brazil / O'Reilly Media / 2018-7-9 / USD 49.99
Get up to speed with Prometheus, the metrics-based monitoring system used by tens of thousands of organizations in production. This practical guide provides application developers, sysadmins, and DevO......一起来看看 《Prometheus: Up & Running》 这本书的介绍吧!