我正在使用投资银行领域的一些遗留系统,这些系统非常不友好,只有从它们中提取数据的方法是通过文件导出/导入。进行大量交易并在这些系统上存储大量交易。 问题是如何在NFS上读取大量大文件并将其转储到可以通过Spark或Samza等方式进行分析的系统上。
回到问题。遗留系统的本质是,我们正在提取数据并转储到文件中。每个文件的容量都是几百GB
我觉得下一步是阅读这些并转储到Kafka或HDFS,或者甚至是Cassandra或HBase。原因是我需要对这些数据进行一些财务分析。我有两个问题:
答案 0 :(得分:4)
显然你已经发现大型机擅长编写大量大文件。他们也擅长阅读它们。但除此之外......
IBM最近在z / OS上一直在努力推动Spark。它是免费提供的,但如果你需要支持,你必须为此付费。请参阅:https://www-03.ibm.com/systems/z/os/zos/apache-spark.html我的理解是z / OS可以与Spark群集中的其他计算机成为对等。
z / OS Spark实现附带一个可以直接从各种大型机源读取数据的文件:顺序,VSAM,DB2等。它可能允许您绕过整个转储过程并直接从中读取数据源。
显然Hadoop是用Java编写的,所以可以预期它应该能够在z / OS上运行而几乎没有问题。但是,请注意ASCII与EBCDIC问题。
关于在z / OS中使用Hadoop的主题,有很多引用,包括一个红色部分:http://www.redbooks.ibm.com/redpapers/pdfs/redp5142.pdf
你会注意到他们在那里提到使用CO:z工具包,我相信它是免费的。
但是你提到“不友好”。我不确定这是否意味着“我不理解这个环境,因为它看起来不像我以前用过的任何东西”,或者它意味着“与我合作的人不想帮助我”。我会假设后者,因为前者只是一个学习机会。不幸的是,你可能很难让不友好的人在z / OS上获得新功能。
但最终,最好与那些不友好的z / OS管理员交朋友,因为他们可能会让你的生活更轻松。
最后,我不确定您计划对数据进行哪些分析。但在某些情况下,将分析流程移至数据可能更容易/更好,而不是将数据移至分析。
答案 1 :(得分:1)
最简单的方法是使用zconnector,这是一种用于在主机到hadoop集群之间进行数据摄取的ibm产品。
答案 2 :(得分:0)
我设法找到答案。最大的瓶颈是读取文件本质上是一个串行操作..这是从磁盘读取的最有效方式。因此,对于一个文件,我遇到了一个从NFS读取它并通过其API将其发送到HDFS或Kafka的线程。 因此,最好的方法是确保数据来源的源转储多个NFS文件夹中的文件。从那时起,我可以运行多个进程来将数据加载到HDFS或Kafka,因为它们是高度并行化的 怎么加载?一种好方法是将NFS挂载到Hadoop基础架构并使用distcp。还有其他可能性,一旦我们确保文件可从大量NFS中获得,就会打开它们。否则记住,读取文件是一个串行操作。感谢。