CN106919697A - 一种将数据同时导入多个Hadoop组件的方法 - Google Patents

一种将数据同时导入多个Hadoop组件的方法 Download PDF

Info

Publication number
CN106919697A
CN106919697A CN201710132272.0A CN201710132272A CN106919697A CN 106919697 A CN106919697 A CN 106919697A CN 201710132272 A CN201710132272 A CN 201710132272A CN 106919697 A CN106919697 A CN 106919697A
Authority
CN
China
Prior art keywords
data
parameter
sqoop
database
map
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710132272.0A
Other languages
English (en)
Other versions
CN106919697B (zh
Inventor
尚平平
臧勇真
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710132272.0A priority Critical patent/CN106919697B/zh
Publication of CN106919697A publication Critical patent/CN106919697A/zh
Application granted granted Critical
Publication of CN106919697B publication Critical patent/CN106919697B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种将数据同时导入多个Hadoop组件的方法,其特征在于,包括以下步骤:步骤1:扩展Sqoop的import工具,增加到Kafka的导入服务;步骤2:根据数据库导入各个组件的配置参数,编写参数校验程序;步骤3:扩展Sqoop的import工具,增加同时导出 HDFS、Hive、Hbase、Kafka的服务;在Sqoop原有的连接数据库并读取数据的基础上,增加了同时导出到多个组件的功能,通过一次读取数据库数据,同时启动多个用户指定的导出模块,实现高效便捷的数据导入,一方面避免了为同一批数据写多次导出任务,另一方面避免重复读取相同的数据,提高了效率。

Description

一种将数据同时导入多个Hadoop组件的方法
技术领域
本发明属于大量数据的快速转移处理技术领域,具体涉及一种将数据同时导入多个Hadoop组件的方法。
背景技术
在社会快速发展的今天,各行各业每天都会产生大量的数据,数据来源囊括了我们周围可以捕获的任何类型数据,网站、社交媒体、交易型商业数据以及其它商业环境中创建的数据。随着云提供商利用这个框架,更多的用户将数据集在Hadoop和传统数据库之间转移,能够帮助数据传输的工具变得更加重要。在这种环境下,Apache框架Hadoop应运而生,它是一个越来越通用的分布式计算环境,主要用来处理大数据。Apache Sqoop是一种数据转移工具,主要用于在Hadoop与传统数据库间进行数据的传递,可以将一个关系型数据库中的数据导进到HDFS、Hive、Hbase中,也可将HDFS的数据导进到关系型数据库中。
Kafka是一种高吞吐量的分布式发布订阅消息系统。有时需要将数据从关系型数据库导入到Kafka,然而Sqoop作为一个数据转移工具,没有提供这方面的支持,同一批数据可能会被多项工作使用,而原本的Sqoop每次只支持一项任务,若想导出到多个Hadoop组件,需要单独再写命令,更重要的是要多次读取同一批数据。此为现有技术的不足之处。
发明内容
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种将数据同时导入多个Hadoop组件的方法,以解决上述技术问题。
为了达到上述目的,本发明提供的技术方案是:
一种将数据同时导入多个Hadoop组件的方法,其特征在于,包括以下步骤:
步骤1:扩展Sqoop的import工具,增加到Kafka的导入服务;
步骤2:根据数据库导入各个组件的配置参数,编写参数校验程序;
步骤3:扩展Sqoop的import工具,增加同时导出到 HDFS、Hive、Hbase、Kafka的服务。
进一步的,步骤1的实现过程包括:修改Sqoop的BaseSqoopTool类代码和ImportTool类代码,设计向Kafka导入数据的MapReduce任务,定义向Kakfa导入数据时需要的参数。
进一步的,步骤2的实现过程包括:定义向各个组件导入数据时需要的参数,并增加检测输入参数、记录输入参数、对参数进行校验的程序。
进一步的,步骤3的实现过程包括:用户同时指定同时导出到多个Hadoop组件时,增加一个可选的命令参数,使得用户可以一条指令同时指定导出到多个Hadoop组件所需的参数,根据用户参数决定调用哪几个组件的接口,用户执行该条命令时,同时处理导出到各个目标组件所需的参数,然后从数据库中读取数据,并同时发送到多个目标组件。
向各个组件导入数据时需要的参数包括关系型数据库JDBC连接字符串、JDBC驱动程序类、设置包含身份验证密码的文件路径、数据库访问用户、用于提供连接参数的可选属性文件、Map函数相关参数、reduce函数相关参数。
进一步的,Sqoop在import时,制定split-by参数,Sqoop根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同Map中,每个Map中再处理数据库中获取的一行一行的值写入HDFS、Hive、Hbase或Kafka中,split-by根据不同的参数类型有不同的切分方法;Sqoop import过程是Sqoop客户端利用数据库的驱动程序读取数据库中表结构,并生成运行类,Map处理获取的数据写入到Hadoop组件;具体步骤包括:a要对数据进行切分;b切分好范围后,写入范围;c读取步骤b写入的范围;d然后创建数据记录的读取器RecordReader从数据库中读取数据;创建Map;e RecordReader逐行从关系型数据库中读取数据交给Map,设置好Map的Key和Value;f 运行Map,写入数据到不同组件。
本发明的有益效果在于,将数据从关系型数据库同时导出到多个Hadoop组件的方法,在Sqoop原有的连接数据库并读取数据的基础上,增加了同时导出到多个组件的功能,通过一次读取数据库数据,同时启动多个用户指定的导出模块,实现高效便捷的数据导入,一方面避免了为同一批数据写多次导出任务,另一方面避免重复读取相同的数据,提高了效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为一种将数据同时导入多个Hadoop组件流程图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
如图1所示,本实施例提供的一种将数据同时导入多个Hadoop组件的方法,包括以下步骤:
步骤1:扩展Sqoop的import工具,增加到Kafka的导入服务;
步骤2:根据数据库导入各个组件的配置参数,编写参数校验程序;
步骤3:扩展Sqoop的import工具,增加同时导出 HDFS、Hive、Hbase、Kafka的服务。
步骤1的实现过程包括:修改Sqoop的BaseSqoopTool类代码和ImportTool类代码,设计向Kafka导入数据的MapReduce任务,定义向Kakfa导入数据时的配置参数。
步骤2的实现过程包括:定义向各个组件导入数据时需要的参数,并增加检测输入参数、记录输入参数、对参数进行校验的程序。
步骤3的实现过程包括:用户同时指定同时导出到多个Hadoop组件时,增加一个可选的命令参数,使得用户可以一条指令同时指定导出到多个Hadoop组件所需的参数,根据用户参数决定调用哪几个组件的接口,用户执行该条命令时,同时处理导出到各个目标组件所需的参数,然后从数据库中读取数据,并同时发送到多个目标组件。
向各个组件导入数据时需要的参数包括关系型数据库JDBC连接字符串、JDBC驱动程序类、设置包含身份验证密码的文件路径、数据库访问用户、用于提供连接参数的可选属性文件、Map函数相关参数、reduce函数相关参数。
Sqoop在import时,需要制定split-by参数,Sqoop根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同Map中,每个Map中再处理数据库中获取的逐行的值写入HDFS、Hive、Hbase或Kafka中,split-by根据不同的参数类型有不同的切分方法。
Sqoop import过程是Sqoop客户端利用数据库的驱动程序读取数据库中表结构,并生成运行类,Map处理获取的数据写入到Hadoop组件;具体步骤包括:a要对数据进行切分;b切分好范围后,写入范围;c读取步骤b写入的范围;d然后创建数据记录的读取器RecordReader从数据库中读取数据;创建Map;e RecordReader逐行从关系型数据库中读取数据交给Map,设置好Map的Key和Value;f 运行Map,写入数据到不同组件。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

Claims (8)

1.一种将数据同时导入多个Hadoop组件的方法,其特征在于,包括以下步骤:
步骤1:扩展Sqoop的import工具,增加到Kafka的导入服务;
步骤2:根据数据库导入各个组件的配置参数,编写参数校验程序;
步骤3:扩展Sqoop的import工具,增加同时导出 HDFS、Hive、Hbase、Kafka的服务。
2.根据权利要求1所述的一种将数据同时导入多个Hadoop组件的方法,其特征在于,步骤1的实现过程包括:修改Sqoop的BaseSqoopTool类代码和ImportTool类代码,设计向Kafka导入数据的MapReduce任务,定义向Kakfa导入数据时的配置参数。
3.根据权利要求1所述的一种将数据同时导入多个Hadoop组件的方法,其特征在于,步骤2的实现过程包括:定义向各个组件导入数据时的配置参数,并增加检测输入参数、记录输入参数、对参数进行校验的程序。
4.根据权利要求1所述的一种将数据同时导入多个Hadoop组件的方法,其特征在于,步骤3的实现过程包括:用户同时指定同时导出到多个Hadoop组件时,增加一个可选的命令参数,使得用户可以一条指令同时指定导出到多个Hadoop组件的配置参数,根据用户参数决定调用组件的接口,用户执行该条命令时,同时处理导出到各个目标组件的参数,然后从数据库中读取数据,并同时发送到多个目标组件。
5.根据权利要求3所述的一种将数据同时导入多个Hadoop组件的方法,其特征在于,向各个组件导入数据时设定的参数包括关系型数据库JDBC连接字符串、JDBC驱动程序类、设置包含身份验证密码的文件路径、数据库访问用户、用于提供连接参数的可选属性文件、Map函数相关参数、reduce函数相关参数。
6.根据权利要求1所述的一种将数据同时导入多个Hadoop组件的方法,其特征在于,Sqoop在import时,制定split-by参数,Sqoop根据不同的split-by参数值来进行切分,然后将切分出来的区域分配到不同Map中,每个Map中再处理数据库中获取的值写入HDFS、Hive、Hbase或Kafka中。
7.根据权利要求6所述的一种将数据同时导入多个Hadoop组件的方法,其特征在于,split-by根据不同的参数类型有不同的切分方法。
8.根据权利要求6所述的一种将数据同时导入多个Hadoop组件的方法,其特征在于,Sqoop import过程是Sqoop客户端利用数据库的驱动程序读取数据库中表结构,并生成运行类,Map处理获取的数据写入到Hadoop组件;具体步骤包括:a要对数据进行切分;b切分好范围后,写入范围;c读取步骤b的写入范围;d然后创建数据记录的读取器RecordReader从数据库中读取数据;创建Map;e RecordReader逐行从关系型数据库中读取数据交给Map,设置好Map的Key和Value;f 运行Map,写入数据到不同组件。
CN201710132272.0A 2017-03-07 2017-03-07 一种将数据同时导入多个Hadoop组件的方法 Active CN106919697B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710132272.0A CN106919697B (zh) 2017-03-07 2017-03-07 一种将数据同时导入多个Hadoop组件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710132272.0A CN106919697B (zh) 2017-03-07 2017-03-07 一种将数据同时导入多个Hadoop组件的方法

Publications (2)

Publication Number Publication Date
CN106919697A true CN106919697A (zh) 2017-07-04
CN106919697B CN106919697B (zh) 2020-09-25

Family

ID=59460771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710132272.0A Active CN106919697B (zh) 2017-03-07 2017-03-07 一种将数据同时导入多个Hadoop组件的方法

Country Status (1)

Country Link
CN (1) CN106919697B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153709A (zh) * 2017-05-17 2017-09-12 郑州云海信息技术有限公司 一种数据导入方法及装置
CN107609008A (zh) * 2017-07-26 2018-01-19 郑州云海信息技术有限公司 一种基于Apache Sqoop的从关系型数据库到Kafka的数据导入装置及方法
CN107967316A (zh) * 2017-11-22 2018-04-27 平安科技(深圳)有限公司 一种数据同步方法、设备及计算机可读存储介质
CN109800782A (zh) * 2018-12-11 2019-05-24 国网甘肃省电力公司金昌供电公司 一种基于模糊knn算法的电网故障检测方法及装置
CN109828964A (zh) * 2019-02-19 2019-05-31 北京奇艺世纪科技有限公司 一种数据导入方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425762A (zh) * 2013-08-05 2013-12-04 南京邮电大学 基于Hadoop平台的电信运营商海量数据处理方法
CN104503967A (zh) * 2014-10-24 2015-04-08 浪潮电子信息产业股份有限公司 一种基于hadoop的网络推荐方法
US20160103877A1 (en) * 2014-10-10 2016-04-14 International Business Machines Corporation Joining data across a parallel database and a distributed processing system
CN105786864A (zh) * 2014-12-24 2016-07-20 国家电网公司 一种实现海量数据离线分析的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425762A (zh) * 2013-08-05 2013-12-04 南京邮电大学 基于Hadoop平台的电信运营商海量数据处理方法
US20160103877A1 (en) * 2014-10-10 2016-04-14 International Business Machines Corporation Joining data across a parallel database and a distributed processing system
CN104503967A (zh) * 2014-10-24 2015-04-08 浪潮电子信息产业股份有限公司 一种基于hadoop的网络推荐方法
CN105786864A (zh) * 2014-12-24 2016-07-20 国家电网公司 一种实现海量数据离线分析的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
朱斌: "基于Hadoop 的日志统计分析", 《中国优秀硕士论文全文数据库(信息科技辑)》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153709A (zh) * 2017-05-17 2017-09-12 郑州云海信息技术有限公司 一种数据导入方法及装置
CN107153709B (zh) * 2017-05-17 2020-09-04 浪潮云信息技术股份公司 一种数据导入方法及装置
CN107609008A (zh) * 2017-07-26 2018-01-19 郑州云海信息技术有限公司 一种基于Apache Sqoop的从关系型数据库到Kafka的数据导入装置及方法
CN107967316A (zh) * 2017-11-22 2018-04-27 平安科技(深圳)有限公司 一种数据同步方法、设备及计算机可读存储介质
CN109800782A (zh) * 2018-12-11 2019-05-24 国网甘肃省电力公司金昌供电公司 一种基于模糊knn算法的电网故障检测方法及装置
CN109828964A (zh) * 2019-02-19 2019-05-31 北京奇艺世纪科技有限公司 一种数据导入方法、装置及电子设备
CN109828964B (zh) * 2019-02-19 2021-11-26 北京奇艺世纪科技有限公司 一种数据导入方法、装置及电子设备

Also Published As

Publication number Publication date
CN106919697B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN106919697A (zh) 一种将数据同时导入多个Hadoop组件的方法
JP2019520615A (ja) 損害賠償請求書類の文字認識方法、装置、サーバ及び記憶媒体
CN104572895B (zh) MPP数据库与Hadoop集群数据互通方法、工具及实现方法
CN104036187B (zh) 计算机病毒类型确定方法及其系统
CN106776962A (zh) 一种通用的Excel数据导入多个数据库物理表方法
CN106982150A (zh) 一种基于Hadoop的移动互联网用户行为分析方法
CN103927338A (zh) 日志信息入库处理方法和装置
WO2019161645A1 (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
CN106528898A (zh) 将非关系型数据库数据转换到关系型数据库的方法及装置
WO2019200700A1 (zh) 一种公文处理的方法、装置、终端设备及存储介质
CN103559025A (zh) 一种采用聚类方式进行软件重构的方法
CN112231417A (zh) 数据分类方法、装置、电子设备及存储介质
CN113836038A (zh) 测试数据构造方法、装置、设备及存储介质
CN107103035A (zh) 本地表数据更新方法及装置
CN103761265A (zh) 一种基于NoSQL的医疗信息系统数据库实现方法
CN116860856A (zh) 一种财务数据处理方法、装置、计算机设备及存储介质
CN115221143A (zh) 一种跨类型迁移的算子化多源大数据处理方法
KR20210060830A (ko) 빅데이터 지능형 수집 방법 및 장치
CN117033249B (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN103593182A (zh) 一种采用聚类方式进行软件重构的方法
CN110287459B (zh) 表格批量处理方法、系统、装置及可存储介质
CN107885644A (zh) 一种基于Linux系统下快速查看BIOS默认值的方法
CN101098495A (zh) 一种提高智能业务在线统计任务性能的系统及方法
TWI785724B (zh) 資訊倉庫創建方法、電子設備及儲存介質
CN105721586A (zh) 信息智能分配装置、方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200519

Address after: Building S01, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province, 250000

Applicant after: Tidal Cloud Information Technology Co.,Ltd.

Address before: 450000 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601

Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: Building S01, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province, 250000

Applicant after: Inspur cloud Information Technology Co., Ltd

Address before: Building S01, Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province, 250000

Applicant before: Tidal Cloud Information Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant