真正的大数据如何在数据科学家老死之前导入HDFS?
How does truly big data import into HDFS before the data scientists grow old and die?
我是 Hadoop 的新手,相信 我开始看到数据分析 ("offline") 与超级 -网络应用程序的低延迟世界。我仍在努力理解的一件主要事情是 "big data" 最初是如何真正进入 HDFS 的。
假设我在各种系统(RDBMS、NoSQL、日志数据等)中存储了 500TB 的数据。我的理解是,如果我想写MR作业来查询和分析这些数据,我需要先import/ingest把它全部写入HDFS。
但即使我在每个不同的系统和我的 Hadoop 集群之间有一个 1Gbps 的网络连接,这也是 500TB = 500 * 1000Gb = 500,000 GB 的数据,在 1Gbps 下,是 500,000 秒或 ~138 小时将所有数据移植到我的 HDFS 集群上。差不多一个星期了。
而且,如果我对大数据的理解是正确的,那么 TB 规模实际上相当低调,许多大数据系统都扩展到 PB 级别。现在我们可能需要几个月,甚至可能 年 ,才能 运行 MR 工作来对抗他们。如果我们拥有超过 PB 数量级的系统,那么我们正在考虑 "flying rocket scooters" 在数据还没有准备好被查询之前到处嗡嗡作响。
我是不是漏掉了一些基本的东西?这对我来说似乎不对。
通常在生成数据时加载数据。但是,有一些工具可以帮助加载到 HDFS。
Apache Flume - https://flume.apache.org/ - 专为聚合大量日志数据而设计。 Flume 有许多捆绑的 'sources',可用于使用日志数据,包括从文件、目录、队列系统读取,甚至接受来自 TCP/UDP/HTTP 的传入数据。有了它,您可以在许多主机上设置 Flume 来并行化数据聚合。
Apache Sqoop - http://sqoop.apache.org/ - 专为从结构化数据存储(例如关系数据库)批量加载而设计。 Sqoop 使用连接器将数据连接、构建和加载到 HDFS。内置的可以连接到任何符合 JDBC 4 规范的东西。
500TB 的数据需要加载很多数据,但如果使用 Sqoop and/or Flume 将其分散到多个系统和格式中,工作应该相对较快。
我是 Hadoop 的新手,相信 我开始看到数据分析 ("offline") 与超级 -网络应用程序的低延迟世界。我仍在努力理解的一件主要事情是 "big data" 最初是如何真正进入 HDFS 的。
假设我在各种系统(RDBMS、NoSQL、日志数据等)中存储了 500TB 的数据。我的理解是,如果我想写MR作业来查询和分析这些数据,我需要先import/ingest把它全部写入HDFS。
但即使我在每个不同的系统和我的 Hadoop 集群之间有一个 1Gbps 的网络连接,这也是 500TB = 500 * 1000Gb = 500,000 GB 的数据,在 1Gbps 下,是 500,000 秒或 ~138 小时将所有数据移植到我的 HDFS 集群上。差不多一个星期了。
而且,如果我对大数据的理解是正确的,那么 TB 规模实际上相当低调,许多大数据系统都扩展到 PB 级别。现在我们可能需要几个月,甚至可能 年 ,才能 运行 MR 工作来对抗他们。如果我们拥有超过 PB 数量级的系统,那么我们正在考虑 "flying rocket scooters" 在数据还没有准备好被查询之前到处嗡嗡作响。
我是不是漏掉了一些基本的东西?这对我来说似乎不对。
通常在生成数据时加载数据。但是,有一些工具可以帮助加载到 HDFS。
Apache Flume - https://flume.apache.org/ - 专为聚合大量日志数据而设计。 Flume 有许多捆绑的 'sources',可用于使用日志数据,包括从文件、目录、队列系统读取,甚至接受来自 TCP/UDP/HTTP 的传入数据。有了它,您可以在许多主机上设置 Flume 来并行化数据聚合。
Apache Sqoop - http://sqoop.apache.org/ - 专为从结构化数据存储(例如关系数据库)批量加载而设计。 Sqoop 使用连接器将数据连接、构建和加载到 HDFS。内置的可以连接到任何符合 JDBC 4 规范的东西。
500TB 的数据需要加载很多数据,但如果使用 Sqoop and/or Flume 将其分散到多个系统和格式中,工作应该相对较快。