如何在hadoop集群中使用sqoop将表从rdbms导入hive?

     2023-04-18     298

关键词:

【中文标题】如何在hadoop集群中使用sqoop将表从rdbms导入hive?【英文标题】:how to import table from rdbms to hive using sqoop in hadoop cluster? 【发布时间】:2014-06-02 09:11:56 【问题描述】:

我正在尝试使用hadoop集群中的SQOOP将表从RDBMS导入HIVE,我收到以下错误,请您提供解决方案。

bin/sqoop-import  --connect jdbc:mysql://localhost:3306/hadoop -username root -password root --table salaries  --hive-table salaries --create-hive-table --hive-import --hive-home  /home/techgene/hive-0.11.0 -m 1 --target-dir /user/hive/warehouse

例外:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
14/06/02 14:30:19 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 1
    at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:364)
    at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:314)
    at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:226)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:415)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:238)

【问题讨论】:

【参考方案1】:

每当您使用带有 Hive 导入选项的 Sqoop 时,sqoop 直接连接相应数据库的元存储并获取相应表的元数据(表的架构),因此无需在 Hive 中创建表结构. 然后,当与 Hive-import 选项一起使用时,此架构将提供给 Hive。

**示例::

**sudo sqoop import-all-tables --connect jdbc:mysql://10.0.0.57/movielens --username root --password root —hive-import**

这也是从 mysql 中的 movielens 数据库中导入表。 

**sqoop import \
   --connect jdbc:mysql://10.0.0.57/movielens \
   --username root \
   --password hadoop \
   --table cities \
  --hive-import**

这只是导入一个名为 citys 的表。**

因此,HDFS 上所有 sqoop 数据的输出将默认存储在默认目录中。即 /user/sqoop/tablename/part-m 文件

使用 hive 导入选项,表格将直接下载到默认仓库目录中,即

/user/hive/warehouse/tablename

命令:sudo -u hdfs hadoop fs -ls -R /user/ 这会递归地列出用户中的所有文件。

现在转到 Hive 并键入 show databases。如果只有默认数据库,则键入 show tables: 记住 OK 是常见的默认系统输出,不是命令输出的一部分。

hive> show databases;

OK

default

Time taken: 0.172 seconds

hive> show tables;

OK

genre

log_apache

movie

moviegenre

movierating

occupation

user

Time taken: 0.111 seconds

【讨论】:

【参考方案2】:

检查语法,消除多余的空格..

$ sqoop-import --connect "jdbc:mysql://localhost:3306/hadoop;database=< db_name >" 
               -username root 
               -password root 
               --table salaries 
               --hive-import 
               --target-dir /user/hive/warehouse

如果使用与mysql中相同的名称,则无需提及--hive-table &lt; table_name &gt;

【讨论】:

Sqoop - 使用 Avro 格式将表从 Oracle 导入 Hive 的最佳选择是啥?

】Sqoop-使用Avro格式将表从Oracle导入Hive的最佳选择是啥?【英文标题】:Sqoop-WhatisthebestoptiontoimportatablefromOracletoHiveusingtheAvroformat?Sqoop-使用Avro格式将表从Oracle导入Hive的最佳选择是什么?【发布时间】:2017-03-0811:49:53【问题描述】... 查看详情

使用 sqoop 将表从 RDBMS 导入 HIVE 后约束是不是仍然存在?

】使用sqoop将表从RDBMS导入HIVE后约束是不是仍然存在?【英文标题】:WilltheconstraintsremainafterImportingtablefromRDBMStoHIVEwithsqoop?使用sqoop将表从RDBMS导入HIVE后约束是否仍然存在?【发布时间】:2019-03-1516:07:23【问题描述】:当我们使用... 查看详情

如何在不使用 HDP 3.1 中的仓库连接器的情况下将表从 spark 中写入 hive

】如何在不使用HDP3.1中的仓库连接器的情况下将表从spark中写入hive【英文标题】:HowtowriteatabletohivefromsparkwithoutusingthewarehouseconnectorinHDP3.1【发布时间】:2019-10-1605:11:45【问题描述】:当尝试在HDP3.1上使用spark2.3写入Hive表而不使用... 查看详情

如何将 hbase 表从 hbase-0.94 集群复制到 hbase-0.98 集群

】如何将hbase表从hbase-0.94集群复制到hbase-0.98集群【英文标题】:Howtocopyhbasetablefromhbase-0.94clustertohbase-0.98cluster【发布时间】:2016-07-2623:19:12【问题描述】:我们有一个带有hadoop-1.0.1的hbase-0.94集群。我们不希望此集群在使用hadoop-2... 查看详情

如何使用 Java 将表从 MySQL 导入 Hive?

】如何使用Java将表从MySQL导入Hive?【英文标题】:HowtoimporttablefromMySQLtoHiveusingJava?【发布时间】:2014-03-1818:14:49【问题描述】:我正在尝试将表从MySQL导入Hive。但是,我收到以下错误,请您提供解决方案吗?SqoopOptions正在加载...... 查看详情

如何使用 pyodbc 将表从 MS Access 迁移到 Postgres?

】如何使用pyodbc将表从MSAccess迁移到Postgres?【英文标题】:HowtousepyodbctomigratetablesfromMSAccesstoPostgres?【发布时间】:2021-03-1314:50:44【问题描述】:我需要将表从MSAccess迁移到Postgres。我想使用pyodbc来执行此操作,因为它允许我使用... 查看详情

使用 KSQL 将表从 Kafka 转储到 MariaDB

】使用KSQL将表从Kafka转储到MariaDB【英文标题】:DumptablefromKafkaintoMariaDBwithKSQL【发布时间】:2021-06-0607:59:02【问题描述】:我正在使用KSQL进行聚合,需要将输出表保存在MariaDB中。我已经设置了MariaDB和JdbcSinkConnector。不幸的是,... 查看详情

将表从数据库导出到 csv 文件

...想:将表从sqlserver数据库导出到逗号分隔的csv文件,而不使用sqlServer导入导出向导我想使用查询来完成,因为我想在自动化中使用查询有可能吗?我搜索了一下,没有找到好的答案【问题讨论】:是的,有可能,您可以使用C#、p... 查看详情

无法使用 Sqoop 将数据从 Vertica 导入 Cassandra

】无法使用Sqoop将数据从Vertica导入Cassandra【英文标题】:UnabletoimportdatafromVerticatoCassandrausingSqoop【发布时间】:2014-10-3014:53:49【问题描述】:我正在尝试使用Sqoop将表从Vertica导入DataStaxEnterprise4.5。没有报错也没有异常,但是目标... 查看详情

使用kafka将表从Oracle复制到Postgresql不起作用

】使用kafka将表从Oracle复制到Postgresql不起作用【英文标题】:ReplicatetablesfromOracletoPostgresqlusingkafkanotworking【发布时间】:2019-10-0907:08:45【问题描述】:我正在使用两个属性文件,一个用于源,一个用于接收器。当我运行上面描述... 查看详情

如何使用 phpMyAdmin 将表从 SERVER 1 上的数据库复制到 SERVER 2 上的另一个数据库?

】如何使用phpMyAdmin将表从SERVER1上的数据库复制到SERVER2上的另一个数据库?【英文标题】:HowtocopytablefromadatabaseonSERVER1toanotherdatabaseonSERVER2usingphpMyAdmin?【发布时间】:2020-06-0903:14:42【问题描述】:我在服务器X(运行WHM)上有一... 查看详情

如何将表从存储过程检索到数据表?

】如何将表从存储过程检索到数据表?【英文标题】:HowcanIretrieveatablefromstoredproceduretoadatatable?【发布时间】:2010-12-2809:04:28【问题描述】:我创建了一个存储过程以便返回一个表。类似这样的:createproceduresp_returnTablebodyofprocedur... 查看详情

如何自动将表从 MSSQL 或 Access 导出到适当的 XML 文件中?

】如何自动将表从MSSQL或Access导出到适当的XML文件中?【英文标题】:HowcanIautomateexportingoftablesintoproperXMLfilesfromMSSQLorAccess?【发布时间】:2008-09-2319:29:39【问题描述】:我们有一位客户请求XML格式的数据。通常这不是必需的,因... 查看详情

chd-5.3.6集群上sqoop安装(代码片段)

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型... 查看详情

SQOOP 导出失败

...:我正在尝试将表从HDFS导出到SQOOP,但出现java异常。我使用的查询如下:sqoopexport--connectjdbc:mysql://172.31.54.174/Database--drivercom.mysql.jdbc.Driver--usernameuser--passworduserp 查看详情

如何在多个 hadoop 集群中使用一个节点作为数据节点

】如何在多个hadoop集群中使用一个节点作为数据节点【英文标题】:Howcaniuseonenodeasadatanodeinmultiplehadoopclusters【发布时间】:2016-08-0912:43:56【问题描述】:我想在两个不同的hadoop集群中使用一台计算机作为数据节点。我尝试更改... 查看详情

使用 Sqoop 将数据附加到配置单元表

】使用Sqoop将数据附加到配置单元表【英文标题】:AppendingDatatohiveTableusingSqoop【发布时间】:2014-01-0812:32:34【问题描述】:我正在尝试将数据附加到hive中已经存在的表。首先使用以下命令将表从MS-SQLServer导入到hive。Sqoop命令:sq... 查看详情

将表从现有数据库映射到对象——Hibernate 适合吗?

...际上,它是一个包含主要信息的表和一些其他表,这些表使用外键引用此类表条目。我不想在数据库中存储对象,我只想从中读取。 查看详情