java—在数据科学家变老和死亡之前,真正的大数据是如何导入hdfs的?

6qfn3psc  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(338)

我是hadoop的新手,相信我已经开始看到数据分析(“离线”)与网络应用的超低延迟世界有多大的不同。我仍在努力理解的一个主要问题是,如何真正的“大数据”首先进入hdfs。
假设我有500tb的数据存储在各种系统中(rdbms、nosql、日志数据等等)。我的理解是,如果我想编写mr jobs来查询和分析这些数据,我需要首先将它们全部导入/摄取到hdfs中。
但即使我在每个不同的系统和我的hadoop集群之间有一个1gbps的网络连接,这也是500tb=500*1000gb=50000gb的数据,在1gbps下,将所有数据移植到我的hdfs集群需要500000秒或~138小时。差不多一个星期了。
而且,如果我对大数据的理解是正确的,那么terrabyte规模实际上相当低调,许多大数据系统都扩展到了petabyte范围。现在,我们可能需要几个月,甚至几年的时间,才能让乔布斯和他们对抗。如果我们的系统数量级超过了PB,那么在数据还没有准备好被查询之前,“飞行的火箭滑板车”就会到处嗡嗡叫。
我是不是错过了一些基本的东西?我觉得这不对。

cbeh67ev

cbeh67ev1#

数据通常在生成时加载。但是,有一些工具可以帮助加载到hdfs。
ApacheFlume-https://flume.apache.org/ -设计用于聚合大量日志数据。flume有许多捆绑的“源”,可以用来使用日志数据,包括读取文件、目录、队列系统,甚至接受来自tcp/udp/http的传入数据。这样,您就可以在多个主机上设置flume来并行化数据聚合。
apache sqoop-http://sqoop.apache.org/ -设计用于从结构化数据存储(如关系数据库)进行批量加载。sqoop使用连接器将数据连接、构造和加载到hdfs。内置的可以连接到任何符合JDBC4规范的东西。
500tb的数据需要加载很多数据,但是如果使用sqoop和/或flume跨多个系统和格式分布,应该可以相对快速地工作。

相关问题