cloudera/hive-hostname更改后无法访问表

wgxvkvu9  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(367)

我创建了一个cloudera集群,并从oracledb导入了一些示例测试文件。但过了一段时间,我不得不更改节点的主机名。我遵循cloudera网站上提到的指南,一切都很顺利。但是,当我尝试访问之前创建的表(同时使用hive和impala)时,出现以下错误:获取结果时遇到以下错误:
java.io.ioexception:java.lang.illegalargumentexception:java.net.unknownhostexception:[旧主机名]
然后我在同一个数据库下创建了另一个表(使用hue>metastore tables),我可以毫无问题地访问在新主机名下创建的这些新表。
有人能解释一下我怎么能访问我的旧表而不恢复我的主机名吗。我可以访问metastore db并将表指针更改为新的主机名吗。

vngu2lb8

vngu2lb81#

没关系,我找到了答案。
您可以通过执行

describe formatted [tablename];

o/p公司

14  Location:               hdfs://[oldhostname]:8020/user/hive/warehouse/sample_07 NULL

然后可以使用以下方法更改“location”属性:

ALTER TABLE sample_07 SET LOCATION "hdfs://[newhostname]:8020/user/hive/warehouse/sample_07";

ps-样品\u 07是我的表格

有时这样不行!!

上面的解决方法适用于默认情况下可用的示例表,但我有另一个表,我从外部数据库到自定义元存储数据库,这再次给了我类似于上面的错误。
解决方案:
转到已安装配置单元的主机。临时将配置单元服务器的旧主机名添加到/etc/hosts(如果没有外部dns,则新主机名和旧主机名应存在于同一主机文件中)
在配置单元外壳(或web界面)上执行“alter table…”
从/etc/hosts中删除oldhostname条目

xxslljrj

xxslljrj2#

试试这个

hive --service metatool -updateLocation <newfsDefaultFSValue> <old_fsDefaultFSValue>

你可以参考https://www-01.ibm.com/support/knowledgecenter/sspt3x_3.0.0/com.ibm.swg.im.infosphere.biginsights.trb.doc/doc/trb_inst_hive_hostnames.html

相关问题