我将emr集群的hive metastore指向外部mysql rds示例。我已经创建了新的hive数据库“mydb”,并且在hive.dbs表中的externalmysql db中获得了条目。
hdfs://ip-10-239-1-118.ec2.internal:8020/user/hive/warehouse/mydb.db mydb hadoop用户
我还在mydb数据库下创建了新的配置单元表“mytable”。我在hive.tbls的外部mysql数据库中得到了这个条目。到目前为止一切都很好。。
我终止了我的集群..当我第二天回来..我现在启动了新的集群,我做了下面的,使用mydb;创建表mytable\ 2(id int);我在犯错误,
执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1。元异常(message:got exception:java.net.noroutetohestexception no route to host from ip-10-239-1-4.ec2.internal/10.239.1.4 to ip-10-239-1-118.ec2。internal:8020 failed 套接字超时异常:java.net.noroutetohostexception:没有到主机的路由;有关详细信息,请参阅:http://wiki.apache.org/hadoop/noroutetohost)
注意:ip10.239.1.4是我当前集群的名称节点。ip10.239.1.118是我以前的集群的名称节点
请让我知道需要覆盖哪些属性以避免此类错误?
2条答案
按热度按时间rjjhvcjd1#
我有同样的问题,并已修复^_^
失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddltask返回代码1。元异常(message:got exception:java.net.noroutetohostexception
从ip-123-234-101-101.ec2.internal/123-234-101-101到ip-111-111-202-202.ec2没有到主机的路由。internal:8020 failed 套接字超时异常:java.net.noroutetohostexception:没有到主机的路由;
有关详细信息,请参阅:http://wiki.apache.org/hadoop/noroutetohost)
原因:
我们为集群提供了一个外部元存储,这样我们就可以随时摆脱集群并启动一个新的元存储。如果存在“托管”表,则配置单元元存储仍保留对旧集群的引用。
解决方案:
配置单元—服务元工具—listfsroot
配置单元--服务元工具-更新位置<新值><旧值>
例如。:
新的\u值=hdfs://ip-.new..:端口/用户/配置单元/仓库
旧值=hdfs://ip-yyy.old.yyy.yyy:端口/用户/配置单元/仓库
0s0u357o2#
或者,您可以进入aws控制台中的glue,转到databases/default并编辑条目,以便在location字段中更新ip(这是
hive --service metatool -listFSRoot
)