hive 创建数据表失败

之前根据网上相关教程搭建hive,一直没什么问题,最近新搭建 hive服务时出现了无法创建数据表的问题,从日志中发现报了一个,无法找到/user问题,正常情况下创建一张数据表的时候会在hdfs中创建一个/user/hive/warehouse的文件夹,去hdfs中没有这个目录,我就手动添加

hadoop fs -mkdir /user/hive/warehouse  

显示添加失败,经过尝试要在目录前添加-p函数,并且添加namenode的域名(机器名)和端口.

hadoop fs -mkdir -p hdfs://host1:port1/user/hive/warehouse

创建成功后,重新打开hive使用,创建hive表,依然失败,一样的报错,无法找到/user目录。依据上次手动创建目录的经验我认为应该是没找到对应的hdfs服务。
修改hive-site.xml文件

<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value> hdfs://<Federation name>/user/hive/warehouse</value>  
</property>  

重新启动hive, 可以创建hive表了。对于之前使用hive无需过多配置,这次却需要修改warehouse,也找到了合理的解释,之前配置hive都是安装在Hadoop namenode的机器上直接可以通过/user/hive/warehouse创建hdfs目录,但是这次为了分散压力我把hive安装到了别的服务器上,导致无法找到正确的namenode,所以需要在hive.metastore.warehouse.dir,添加hdfs联邦的地址。

    原文作者:Hystrix_Hu
    原文地址: https://www.jianshu.com/p/3914880fa2ff
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞