我想使用 sqoop 导入作业将数据 sqoop 到 hive 列分区表中。我们应该怎么做?

     2023-04-15     82

关键词:

【中文标题】我想使用 sqoop 导入作业将数据 sqoop 到 hive 列分区表中。我们应该怎么做?【英文标题】:I want to sqoop data using sqoop import job into hive column partitioned table. How can we do this? 【发布时间】:2017-08-26 12:34:31 【问题描述】:

我有一个按国家列分区的配置单元表。 我的 RDBMS 列如下:

id int, fname varchar(45), lname varchar(45), email varchar(45), password varchar(45), street varchar(45), city varchar(45), state varchar(45), zipcode varchar(45), c_time timestamp

样本数据: 1,Richard,Hernandez,XXXXXXXXX,XXXXXXXXX,6303 Heather Plaza,Brownsville,TX,69696,2017-07-20 20:24:17.0

Sqoop 作业:

    sqoop job --create customer_partition -- import --connect jdbc:mysql://host/serverName 
    --username root -P --table customers --check-column c_time --incremental lastmodified 
--last-value 0 --merge-key id --target-dir '/user/cloudera/partitionedTables/customers_partition/' 
    --fields-terminated-by ',' --hive-import 
    --hive-table customers_partition --hive-partition-key "state";

Hive 分区表:

create external table customers_partition(id int, fname varchar(64), lname varchar(64), email varchar(64), 
password varchar(64), street varchar(45), city varchar(45), zipcode varchar(64), cob_dt timestamp)
partitioned by (state varchar(45))
row format delimited
fields terminated by ','
location '/hdfsPath/customers_partition/';

sqoop导入hdfs文件夹后输出文件包含如下格式的数据:

1,Richard,Hernandez,XXXXXXXXX,XXXXXXXXX,6303 Heather Plaza,Brownsville,TX,69696,2017-07-20 20:24:17.0
which points to same columns same as RDBMS columns. 

When I perform hive query: select * from customers_partition; showing 0 records found in hive.

这是因为hive表列的分区方式与普通的RDBMS表列的排列方式不同。

我们如何解决这个问题。我想将 sqoop 数据直接导入 hive 分区表,并且在我运行这个 sqoop 作业时需要更新记录。如果我错了,有没有其他方法可以做到这一点?

还有如何使用两个或多个 hive 分区列来执行相同的操作。

【问题讨论】:

【参考方案1】:

您需要添加--hive-partition-value 参数。分区值必须是字符串。

由于您使用的是sqoop job --create,因此不需要--last-value 0。请删除它。

【讨论】:

有没有办法将动态数据导入分区列而不是给出值?还应该有 RDBMS 列序列,并且配置单元列分区应该相同。请解释一下。 是的,这里是参考community.hortonworks.com/questions/43982/…

sqoop安装及使用

简介:  sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具。你可以通过sqoop把数据从数据库(比如mysql,oracle)导入到hdfs中;也可以把数据从hdfs中导出到关系型数据库中。通过将sqoop的操作命令转化为Hadoop的MapReduce... 查看详情

Sqoop 导入映射器失败,但 sqoop 作业显示正在运行

...19-03-2520:07:42【问题描述】:我编写了一个Sqoop导入程序,使用where子句从Netezza导入数据,当where子句出现语法错误时,Sqoop生成的映射器会抛出Netezza级别的语法错误并挂起。如何捕捉这些场景并让我的Sqoo 查看详情

Sqoop 导入安全 hbase 失败

...efails【发布时间】:2015-01-2111:45:23【问题描述】:我正在使用带有kerberos安全性的hadoop-2.6.0。我已经安装了具有kerberos安全性的hbase,并且可以创建表并对其进行扫描。我也可以运行sqoop作业将数据从mysql导入hdfs,但是当尝试从mysq... 查看详情

使用 Sqoop 将数据从 teradata 导入 Hive

...限,你怎么能拉表?您想通过单独提取元数据来做什么?我想添加自己的随机 查看详情

使用 sqoop 将数据从 CSV 导入 Avro 表的命令

...使用Hue创建了一个Avro表(avro_test),其列名与csv文件相同。我想使用sqoop命令将csv元素放入Avro表中。什么sqoop命令可以实现这一点 查看详情

如何使用 Sqoop 从 RDBMS 将数据导入本地文件系统,而不是 HDFS?

...】:我看到Sqoop允许将数据从RDBMS数据库导入HDFS。但是,我想将数据导入Linux中的本地文件系统文件夹,而不是导入HDFS文件系统。有没有办法做到这一点?【问 查看详情

从 psql 中提取数据时,Sqoop 导入作业失败

】从psql中提取数据时,Sqoop导入作业失败【英文标题】:SqoopImportJobfailedwhileextractingdatafrompsql【发布时间】:2020-06-1607:33:03【问题描述】:我在谷歌云上运行一个sqoop作业,在对3个表应用连接后从psql数据库导入数据。然而,sqoop... 查看详情

寒假记录十二

...据库中。Sqoop导入原理:  在导入开始之前,Sqoop使用JDBC来检查将要导入的表。他检索出表中所有的列以及列的SQL数据类型。这些SQL类型(varchar、integer)被映射到Java数据类型(String、Integer等),在MapReduce应用中将使用这... 查看详情

sqoop导入数据到mysql原理_sqoop的详细使用及原理

1、sqoop简介sqoop是一个用来将hadoop中hdfs和关系型数据库中的数据相互迁移的工具,可以将一个关系型数据库(mysql、oracle等)中的数据导入到hadoop的hdfs中,也可以将hdfs的数据导入到关系型数据库中。2、sqoop的特点:sqoop的底层实现... 查看详情

使用 Sqoop 导入获取标头数据

】使用Sqoop导入获取标头数据【英文标题】:GettingheaderdatawithSqoopimport【发布时间】:2015-12-2805:02:02【问题描述】:我正在将Teradata表导入HDFS,然后上游将读取该表(在我的情况下为Datameer)。Datameer在读取Sqoop生成的部分文件之... 查看详情

04使用sqoop将mysql数据导入hbase

参考技术A本节演示使用Sqoop将mysql数据导入hbase。(1)mysql数据导入hbase如此,就完成了把mysql导入了hbase。 查看详情

sqoop 将数据导入hive

...【发布时间】:2016-08-2509:58:33【问题描述】:我正在尝试使用sqoop2将数据导入配置单元表。我正在使用--hive-import,但它不起作用代码:sqoopimport--connectjdbc:sqlserver://192.168.x.xxx:11xx--usernameuser--passworduser--tablex 查看详情

sqoop的介绍以及部署安装(代码片段)

...input的过程中,会通过jdbc读取数据表中的内容,这时,会使用sqoo 查看详情

使用 sqoop 将数据从 oracle 导入到 hdfs

】使用sqoop将数据从oracle导入到hdfs【英文标题】:dataimportfromoracletohdfswithsqoop【发布时间】:2016-06-2714:03:42【问题描述】:您好,我在尝试使用sqoop将数据从Oracle导入HDFS时遇到以下错误。使用的命令-sqoopimport--connectjdbc:oracle:thin:sy... 查看详情

sqoop的简易介绍(代码片段)

...0c;以便于用户更好地利用Hadoop进行数据处理和存储。易于使用Sqoop提供了一个简单的命令行界面,用户可以轻松地配置Sqoop作业,包括导入和导出作业。Sqoop还提供了一个Web界面,方便 查看详情

Dataproc 上的 Sqoop 无法将数据导出为 Avro 格式

...atatoAvroformat【发布时间】:2019-02-2605:12:12【问题描述】:我想使用Sqoop从Postgres数据库中提取数据,我使用GoogleDataproc来执行Sqoop。但是,当我提交Sqoop作业时出现错误。我使用以下命令:使用1.3.24-deb9镜像版本创建集群gcloud 查看详情

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

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

Oozie Sqoop 作业 - 无法恢复作业

...发布时间】:2016-02-0303:47:30【问题描述】:在HDP2.3.4上,使用Oozie4.2.0和Sqoop1.4.2,我正在尝试创建一个协调器应用程序,该应用程序将每天执行sqoop作业。我需要sqoop操作来执行作业,因为这些是增量导入。我已经配置了sqoop-site.xm... 查看详情