如何将数据从大型机拉到Hadoop

如何将数据从大型机拉到Hadoop,hadoop,mainframe,Hadoop,Mainframe,我在主机里有文件。我希望将这些数据推送到Hadoop(HDFS)/HIVE 我可以将Sqoop用于大型机DB2数据库并将其导入到配置单元,但文件(如COBOL,VASM等)又如何呢 这里是否有我可以编写的自定义flume源代码或其他可供使用的工具?为什么不:hadoop fs-put?COBOL是一种编程语言,而不是文件格式。如果您需要的是输出COBOL程序生成的文件,那么可以使用与C、C++、java、perl、PL/i、Rexx等< /P>生成的文件相同的技术。 通常,您将有三个不同的数据源

我在主机里有文件。我希望将这些数据推送到Hadoop(HDFS)/HIVE

我可以将Sqoop用于大型机DB2数据库并将其导入到配置单元,但文件(如
COBOL
VASM
等)又如何呢


这里是否有我可以编写的自定义flume源代码或其他可供使用的工具?

为什么不:
hadoop fs-put

COBOL是一种编程语言,而不是文件格式。如果您需要的是输出COBOL程序生成的文件,那么可以使用与C、C++、java、perl、PL/i、Rexx等< /P>生成的文件相同的技术。 通常,您将有三个不同的数据源:平面文件、VSAM文件和DBMS,如DB2或IMS

DMBS具有导出实用程序,可将数据复制到平面文件中。请记住,DB2中的数据可能会被规范化,因此您可能需要相关表的内容来理解数据

VSAM文件可以通过该实用程序导出为平面文件

我强烈建议您先将文件转换成文本格式,然后再将其传输到另一个具有不同代码页的框中。尝试处理混合文本(必须翻译其代码页)和二进制(不得翻译其代码页,但可能必须从big-endian转换为little-endian)比预先进行转换更困难

转换可能通过大型机上的SORT实用程序完成。大型机排序实用程序往往具有广泛的数据操作功能。您还可以使用其他机制(其他实用程序、用您选择的语言编写的自定义代码、购买的软件包),但在这些情况下,我们往往会这样做

一旦您转换了平面文件,使所有数据都是文本,您就可以通过FTP或SFTP或FTPS将它们传输到Hadoop设备中


这并不是对本主题的详尽介绍,但它将帮助您开始。

Syncsort处理大型机数据已有40年的历史(大约50%的大型机已经运行了该软件)。他们有一款名为DMX-H的特定产品,可以获取大型机数据,处理数据类型转换,导入cobol副本并将其直接加载到HDFS中。 Syncsort最近还为ApacheHadoop核心提供了一个新的功能增强 我建议您通过www.syncsort.com与他们联系
他们在最近一次Cloudera路演的演示中展示了这一点。

可以通过上面讨论的选项传输cobol布局文件。然而,实际将它们映射到配置单元表是一项复杂的任务,因为cobol布局具有复杂的格式,如depending子句、可变长度等

我已经尝试创建自定义serde来实现,尽管它仍处于初始阶段。但这里有一个链接,它可能会让您了解如何根据您的需求进行反序列化


不是拉,而是推:使用燕尾榫技术

例如(JCL摘录):

//FORWARD EXEC PGM=COZLNCH
//标准偏差*
hadoop fs-put也许可以为您解决这个问题。它是Spark的开源COBOL数据源,可以解析您提到的文件。

2018年更新:

有许多商业产品可以帮助将数据从大型机移动到分布式平台。下面是我为那些感兴趣的人所遇到的问题的列表。所有这些工具都按照问题中所述在Z上获取数据,并将进行一些转换,使数据能够移动到其他平台。虽然不完全匹配,但是,行业已经发生了变化,将用于分析的数据移动到其他平台的目标正在增长。Data Virtualization Manager提供了最强大的工具,用于转换我所看到的数据


不太可能,我正在尝试实现自动化,因为我在大型机中拥有源文件,即VSAM文件。我如何将它们直接导出到Hadoop中谢谢!这应该对我有帮助。如果我的VSAM文件中有COM3内容,IDCAM工作正常吗?此外,该工具的实时或近实时复制能力如何?@yathirigan您希望使用排序实用程序将压缩十进制(COMP-3)数据转换为可读格式。实时复制可以通过安排作业以适当的时间间隔运行来完成,但是如果时间间隔很短和/或VSAM文件很大,您可能需要寻找其他解决方案。正如Bill Woodger在中所指出的那样,与您的技术人员交谈。您有关于“50%的大型机已经运行[SyncSort]”的数据吗?这个罐子太棒了
//FORWARD  EXEC PGM=COZLNCH
//STDIN    DD *
hadoop fs -put <(fromfile /u/me/data.csv) /data/data.csv
# Create a catalog table
hive -f <(fromfile /u/me/data.hcatalog)
/*