java - 海量多道程序和只读文件访问

标签 java hadoop apache-pig

我正在尝试使用 Pig 创建一个在 Hadoop 集群上运行的基于字典的标注器。基本上,它所做的是针对每个文档(相当大的文本文档,最多几 MB)将每个句子中的每个单词与字典进行对比以读取相应的值。

最多会有几百个java程序(不是线程)并行运行,使用只读模式的字典文件。这个想法是从文本加载字典并创建一个 Map 来查询它。

Question: what should I be prepared for? Is it even remotely logic to want to read a file in a multiprogramming environment or should I first copy the (relatively small) file for each instance of the program? Is a BufferedReader something I should use while reading the file?

关于多道程序设计(与多线程相比)的结构化文档非常少,所以我有点害怕这样做会碰壁。

注意:如果你能给我提供更好的方法,你才可以回答我的思维方式完全错误;-)

最佳答案

我觉得你的方法很好。你应该从 DistributedCache 加载你的字典到内存,并使用内存加载的字典(例如,HashMap)进行检查。

关于java - 海量多道程序和只读文件访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16343753/

相关文章:

python - 如何在 spark 中使用 transform python udf 执行 hql 脚本?

hadoop - 使用 hadoop-mongo 和 PIG 更新 Mongo 集合

java - PIG 聚合函数 - OutOfMemory : Java Heap Space

java - 如何从 testContext.xml 中的组件扫描中排除 @Configuration 类

java - 测量不同排序方法的时间

hadoop - Hive - 如何在命令行中显示 Hive 查询结果以及列名

json - 将JSON格式表加载到Pig中

java - 编写代理服务器

java - 使用 sshj 时为 "JCE cannot authenticate the provider BC"

java - Hadoop 从 HDFS 写入/读取 int[]