本文汇总了使用E-MapReduce的元数据管理时的常见问题。
- 报错“oss://yourbucket/xxx/xxx/xxx”或“hdfs://yourhost:9000/xxx/xxx/xxx”
- 删除hive database的时候提示“java.lang.IllegalArgumentException: java.net.UnknownHostException: xxxxxxx”
报错“oss://yourbucket/xxx/xxx/xxx”或“hdfs://yourhost:9000/xxx/xxx/xxx”
问题分析:由于删除OSS上的表数据之前,没有删除数据表对应的元数据,导致表的Schema还存在,但实际的数据已经不存在或已经移动到别的路径。
解决方法:可以先修改表的Location为一个存在的路径,然后再删除表。
alter table test set location 'oss://your_bucket/your_folder'
说明 oss://your_bucket/your_folder必须是一个存在的OSS路径。
删除hive database的时候提示“java.lang.IllegalArgumentException: java.net.UnknownHostException: xxxxxxx”
问题分析:由于在之前的集群上创建了Hive的数据库,并且数据库的位置是落在之前集群的HDFS之上,但是在集群释放的时候,没有清理掉对应的Hive Database,导致新建集群之后,无法访问到之前已经释放集群的HDFS数据。如果在HDFS上的数据库和表是手动创建的,在释放集群时候需要清理。
解决方法:
- 登录集群的Master节点,在$HIVE_CONF_DIR/hivemetastore-site.xml中,找到对应数据库的访问地址和用户名密码信息。
javax.jdo.option.ConnectionUserName //对应数据库用户名; javax.jdo.option.ConnectionPassword //对应数据库访问密码; javax.jdo.option.ConnectionURL //对应数据库访问地址和库名;
- 在集群Master节点上登录创建的Hive数据库。
mysql -h ${DBConnectionURL} -u ${ConnectionUserName} -p [回车] [输入密码]${ConnectionPassword}
- 登录Hive数据库后,修改Location为该Region真实存在的OSS路径即可。
在文档使用中是否遇到以下问题
更多建议
匿名提交