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

s1ag04yj  于 2021-05-30  发布在  Hadoop
关注(0)|答案(7)|浏览(473)

我在主机里有文件。我希望将这些数据推送到hadoop(hdfs)/hive。
我可以将sqoop用于大型机db2数据库并将其导入hive,但是文件(比如 COBOL , VASM 等等)
这里有没有我可以编写的自定义flume源代码或其他可供使用的工具?

lnvxswe2

lnvxswe21#

2018年更新:
有许多商业产品可以帮助将数据从大型机移动到分布式平台。下面是我为那些感兴趣的人列出的清单。所有这些应用程序都按照问题中描述的那样在z上获取数据,并将执行一些转换,并支持将数据移动到其他平台。虽然不完全匹配,但是,行业已经发生了变化,将用于分析的数据移动到其他平台的目标也在不断增长。data virtualization manager提供了最强大的工具来转换我所看到的数据。
同步排序ironstream
ibm公共数据提供程序
科雷洛格
ibm数据虚拟化管理器

7gcisfzg

7gcisfzg2#

cobol是一种编程语言,不是一种文件格式。如果您需要导出由cobol程序生成的文件,那么您可以使用与这些文件由c、c++、java、perl、pl/i、rexx等生成时相同的技术。
通常,您将有三种不同的数据源:平面文件、vsam文件和dbms(如db2或ims)。
dmbs有导出实用程序将数据复制到平面文件中。请记住,db2中的数据可能会被规范化,因此您可能需要相关表的内容来理解数据。
vsam文件可以通过idcams实用程序导出为平面文件。
我强烈建议您先将文件转换成文本格式,然后再将它们转移到另一个具有不同代码页的框中。尝试处理混合文本(必须翻译其代码页)和二进制(不能翻译其代码页,但可能必须从大端到小端进行转换)比预先进行转换更困难。
转换可能通过大型机上的sort实用程序完成。大型机排序实用程序往往具有广泛的数据操作功能。您还可以使用其他机制(其他实用程序、用您选择的语言编写的自定义代码、购买的软件包),但在这些情况下,我们倾向于这样做。
一旦转换了平面文件,所有数据都是文本,就可以通过ftp或sftp或ftps将它们传输到hadoop框中。
这不是一个详尽的主题,但它会让你开始。

xesrikrc

xesrikrc3#

cobrix也许能帮你解决。它是spark的开源cobol数据源,可以解析您提到的文件。

9avjhtql

9avjhtql4#

为什么不: hadoop fs -put <what> <where> ?

jxct1oxe

jxct1oxe5#

cobol布局文件的传输可以通过上面讨论的选项来完成。然而,实际将它们Map到配置单元表是一项复杂的任务,因为cobol布局具有复杂的格式,如depending子句、变量长度等。,
我已经尝试创建自定义serde来实现,尽管它仍处于初始阶段。但这里有一个链接,它可能会让您了解如何根据您的需求反序列化。
https://github.com/rbheemana/cobol-to-hive

9wbgstp7

9wbgstp76#

不是拉,而是推:使用燕尾科技公司的co:z发射器。
例如(jcl摘录):

//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)
/*

其中/u/me/data.csv(在hadoop中需要的基于大型机的数据)和/u/me/data.hcatalog(对应的hcatalog文件)是z/os unix文件路径。
有关更详细的示例,其中数据恰好是日志记录,请参阅将日志提取到hadoop。

2g32fytz

2g32fytz7#

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

相关问题