收集框架,大数据和最佳实践

abi*_*rai 5 java collections hadoop bigdata data-structures

我有下课

public class BdFileContent {
    String filecontent;
}
Run Code Online (Sandbox Code Playgroud)

例如file1.txt具有以下内容:

This is test
Run Code Online (Sandbox Code Playgroud)
  • "This"表示文件内容对象的单个实例.
  • "is"表示另一个文件内容对象
  • "test"表示另一个文件内容对象

假设以下是文件夹结构:

lineage
|
+-folder1
|    |
|    +-file1.txt
|    +-file2.txt
|
+-folder2
|    |
|    +-file3.txt
|    +-file4.txt
+-...
|
+-...+-fileN.txt
Run Code Online (Sandbox Code Playgroud)

....

ñ

N> 1000个文件
N值将是非常巨大的值

BdFileContent类表示目录中文件中的每个字符串.

我必须做大量的数据操作,需要在复杂的数据结构上创建工作.我必须在内存和磁盘上执行计算.

ArrayList<ArrayList<ArrayList<BdFileContent>>> filecontentallFolderFileAsSingleStringToken = new ArrayList<>(); 
Run Code Online (Sandbox Code Playgroud)

例如,Above对象表示目录的所有文件内容.我必须在BdTree中为树节点添加此对象.

我正在编写自己的树并将filecontentallFolderFileAsSingleStringToken添加为节点.

在什么扩展集合框架数据结构适合于大数据.

在这一点上,我想了解大公司如何使用数据结构来处理每天生成的大量数据.

他们使用收集框架吗?

他们使用自己的自定义数据结构吗?

他们是否使用多节点数据结构,每个节点在单独的JVM上运行?

直到现在集合对象在单个jvm上运行,并且当内存中存在溢出流的信号并且缺少处理资源时,无法动态使用另一个jvm

通常,其他开发人员处理大数据的数据结构的方法是什么?

其他开发者如何处理它?

我想得到一些真实用例和经验的提示.

And*_*ono 6

当您处理大数据时,您必须改变方法.首先,您必须假设所有数据都不适合单个机器的内存,因此您需要在多台机器之间分割数据,让它们计算您需要的内容,然后将所有这些重新组合在一起.因此,您可以使用Collection,但仅限于整个作业的一部分.

我建议你看看:

  • Hadoop:第一个处理大数据的框架
  • Spark:大数据的另一个框架,通常比Hadoop更快
  • Akka:编写分布式应用程序的框架

虽然Hadoop和Spark是大数据世界的事实上的标准,但Akka只是一个在很多环境中使用的框架,而不仅仅是大数据:这意味着你必须编写很多东西, Hadoop和Spark已经拥有; 为了完整起见,我把它放在列表中.

您可以阅读WordCount示例,它是大数据世界中的"HelloWorld"等价物,可以了解MapReduce编程范例如何适用于Hadoop,或者您可以查看快速入门指南以获取等效转换.火花.