首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将RDBMS中的所有表导入Hive自定义数据库?

问如何将RDBMS中的所有表导入Hive自定义数据库?
EN

Stack Overflow用户
提问于 2016-08-30 07:07:06
回答 1查看 699关注 0票数 0

我希望使用sqoop将所有表从mysql导入到自定义数据库(而不是Hive默认数据库)。

尝试采取的步骤:

  1. 在“/user/ hive /仓库/Custom.db”下创建一个自定义数据库
  2. 为该目录分配所有权限--因此sqoop在写入此目录时不会出现任何问题。
  3. 在CDH5.7VM上使用下面的命令和选项"--hive-database“选项: sqoop导入-所有表--连接"jdbc:mysql://quickstart.cloudera:3306/retail_db“--用户名retail_dba --密码cloudera --hive-数据库”/user/hive/仓库/sqoop_import_reg.db“

仅在hive default数据库中创建的表,而不是在自定义DB中创建的表(本例中为"sqoop_import_retail.db“)。

否则,它试图在以前的HDFS目录(/user/cloudera/categories)中创建表,并错误地声明表已经存在:

代码语言:javascript
复制
16/08/30 00:07:14 WARN security.UserGroupInformation: PriviledgedActionException as:cloudera (auth:SIMPLE) cause:org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://quickstart.cloudera:8020/user/cloudera/categories already exists
16/08/30 00:07:14 ERROR tool.ImportAllTablesTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://quickstart.cloudera:8020/user/cloudera/categories already exists
[cloudera@quickstart etc]$

如何解决这一问题?

  1. 在单元格自定义数据库中创建表
  2. 使用Sqoop刷新以前的目录引用。
EN

回答 1

Stack Overflow用户

发布于 2016-08-30 09:24:41

您的命令中没有提到--hive-import。因此,在您的示例中,它将导入到/user/cloudera/下的HDFS中。

你又在请求宽恕了。所以才会有例外

代码语言:javascript
复制
Output directory hdfs://quickstart.cloudera:8020/user/cloudera/categories already exists

修改导入命令:

sqoop import-all-tables --connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" --username retail_dba --password cloudera --hive-database custom --hive-import

它将从retail_db of MySQL中获取所有表,并在hive中为custom数据库创建相应的表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39220939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档