Hadoop Cloudera/Hive-Can';主机名更改后无法访问表
我创建了一个Cloudera集群,并从oracle DB导入了一些示例测试文件。但过了一会儿,我不得不更改节点的主机名。我遵循cloudera网站中提到的指南,一切都很顺利。但是,当我尝试访问之前创建的表(同时使用hive和impala)时,会出现以下错误: 获取结果时遇到以下错误: java.io.IOException:java.lang.IllegalArgumentException:java.net.UnknownHostException:[旧主机名] 然后我在同一个数据库下创建了另一个表(使用Hue>metastoretables),我可以毫无问题地访问在新主机名下创建的这些新表Hadoop Cloudera/Hive-Can';主机名更改后无法访问表,hadoop,hive,cloudera,hostname,metastore,Hadoop,Hive,Cloudera,Hostname,Metastore,我创建了一个Cloudera集群,并从oracle DB导入了一些示例测试文件。但过了一会儿,我不得不更改节点的主机名。我遵循cloudera网站中提到的指南,一切都很顺利。但是,当我尝试访问之前创建的表(同时使用hive和impala)时,会出现以下错误: 获取结果时遇到以下错误: java.io.IOException:java.lang.IllegalArgumentException:java.net.UnknownHostException:[旧主机名] 然后我在同一个数据库下创建了另
有人能解释一下我如何在不恢复主机名的情况下访问我的旧表吗。我可以访问metastore db并将表指针更改为新主机名。不管我找到了答案 您可以通过执行以下命令来确认蜂巢/黑斑羚正在寻找错误的位置
describe formatted [tablename];
O/p
然后,您可以使用以下方法更改“位置”属性:
ALTER TABLE sample_07 SET LOCATION "hdfs://[newhostname]:8020/user/hive/warehouse/sample_07";
ps-样本_07是相关表格中的一部分
有时这不管用!!
上面的解决方法适用于默认情况下可用的示例表,但我有另一个从外部数据库到custome metastore数据库的表,这再次给了我类似于上面的错误
解决方案:
转到已安装配置单元的主机。
临时将配置单元服务器的旧主机名添加到/etc/hosts(如果没有外部DNS,则新主机名和旧主机名应存在于同一主机文件中)
在配置单元外壳(或web界面)上执行“ALTER TABLE…”
从/etc/hosts中删除oldhostname条目
hive --service metatool -updateLocation <newfsDefaultFSValue> <old_fsDefaultFSValue>
hive—服务元工具—更新位置
你可以参考
hive --service metatool -updateLocation <newfsDefaultFSValue> <old_fsDefaultFSValue>