Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 收集框架、大数据和最佳实践_Java_Hadoop_Data Structures_Collections_Bigdata - Fatal编程技术网

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

Java 收集框架、大数据和最佳实践,java,hadoop,data-structures,collections,bigdata,Java,Hadoop,Data Structures,Collections,Bigdata,我有以下课程 public class BdFileContent { String filecontent; } 例如,file1.txt包含以下内容: This is test “This”表示文件内容对象的单个实例 “is”表示另一个文件内容对象 “test”表示另一个文件内容对象 假设以下是文件夹结构: lineage | +-folder1 | | | +-file1.txt | +-file2.txt | +-folder2 | | |

我有以下课程

public class BdFileContent {
    String filecontent;
}
例如,file1.txt包含以下内容:

This is test
  • “This”表示文件内容对象的单个实例
  • “is”表示另一个文件内容对象
  • “test”表示另一个文件内容对象
假设以下是文件夹结构:

lineage
|
+-folder1
|    |
|    +-file1.txt
|    +-file2.txt
|
+-folder2
|    |
|    +-file3.txt
|    +-file4.txt
+-...
|
+-...+-fileN.txt
。 . .

N

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

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

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

ArrayList<ArrayList<ArrayList<BdFileContent>>> filecontentallFolderFileAsSingleStringToken = new ArrayList<>(); 
ArrayList FileContentAllFolderFileAssingeStringToken=new ArrayList();
例如,上面的对象表示目录的所有文件内容。我必须为BdTree中的树节点添加此对象

我正在写我自己的树并添加 FileContentAllFolderFileAssingeStringToken作为节点

在什么样的扩展收集框架中,数据结构适用于海量数据

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

他们正在使用收集框架吗?

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

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

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

通常情况下,对于大数据的数据结构,还有哪些开发人员方法?

其他开发人员是如何处理的?


我想获得一些关于实际使用案例和经验的提示。

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

我可以建议你看看:

  • :处理大数据的第一个框架
  • :另一个大数据框架,通常比Hadoop更快
  • :用于编写分布式应用程序的框架
虽然Hadoop和Spark是大数据世界事实上的标准,但Akka只是一个在很多环境中使用的框架,而不仅仅是大数据:这意味着你必须编写Hadoop和Spark已经拥有的很多东西;我把它放在清单上只是为了完整


您可以阅读这个示例,它是大数据世界中的“HelloWorld”等价物,从而了解Hadoop的编程范例是如何工作的,或者您可以查看使用Spark获得等效转换的方法。

这些是您查询的答案(这些查询是通过记住Hadoop来解决的)

他们正在使用收集框架吗

没有。Hadoop使用的是HDFS文件系统

他们是否使用自己的自定义数据结构

您必须了解HDFS-Hadoop分布式文件系统。请参阅本书fro Oriely-Hadoop:最终指南,第3版以供购买。如果你不想买这本书就想知道基本原理,试试这个链接——或者。 HDFC文件系统是一种可靠的容错系统

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

对。请参阅Hadoop 2.0体系结构

通常情况下,对于大数据的数据结构,还有哪些开发人员方法

有很多。参考:

其他开发者是如何处理的

通过该框架提供了各自的技术。Hadoop案例中的框架

我想得到一些关于实际用例和经验的提示

BigData技术在RDBMS出现故障时非常有用—数据分析、数据仓库(用于报告和数据分析的系统)。一些用例-推荐引擎(LinkedIn)、广告定位(youtube)、处理大量数据-查找一个地方100多年来最热/最冷的天气细节、股价分析、市场趋势


当涉及到大数据时,请参考许多实际使用案例,可用的主要技术是Hadoop分布式文件系统(又称HDFS)(谷歌DFS的一种变体)、Hadoop、Spark/MapReduce和Hive(最初由Facebook开发)。现在,当您主要询问大数据处理中使用的数据结构时,您需要了解这些系统的作用

Hadoop分布式文件系统-HDFS

简单地说,这是一个文件存储系统,它使用一个廉价机器集群来存储本质上“高可用”和“容错”的文件。因此,这成为大数据处理中的数据输入源。现在可以是结构化数据(比如逗号分隔的记录)或非结构化数据(世界上所有书籍的内容)

如何处理结构化数据

用于结构化数据的一项重要技术是Hive。这提供了一个类似关系数据库的数据视图。请注意,它本身不是关系数据库。这个视图的来源同样是存储在磁盘上的文件(大公司使用的HDF)。现在,当您处理数据配置单元时,逻辑将应用于文件(内部通过一个/多个Map Reduce程序),并返回结果。现在,如果您希望存储此结果,它将以结构化文件的形式再次降落到磁盘(或hdfs)上

因此,一系列配置单元查询可以帮助您逐步将大数据集细化为所需的数据集