如何使用 Mongodb 和 PostgreSQL 中的数据作为内存查找表?

2023-12-27

它是这个问题的延续:将多线程计算密集型作业移植到 Spark https://stackoverflow.com/questions/32276856/porting-a-multi-threaded-compute-intensive-job-to-spark

我在用forEachPartition按照建议here https://stackoverflow.com/a/32277967/231917循环遍历 10000 个 ID 的列表,然后我执行repartition(20)因为每个分区都会创建数据库连接,如果我创建 100 个分区,那么该作业就会因为 100 个与 postgres 和 mongo 的打开连接而终止。我使用 postgres 连接不仅可以存储数据,还可以从另一个表中查找一些数据。 我可以摆脱直接从我的任务将数据存储到 postgres 的情况,并将其作为序列文件的后处理。

但理想情况下,我需要大规模并行化我的 Spark 作业,以便任务在给定时间内完成,目前它在 20 小时内处理大约 200 个 ID,但我需要在 20 小时内处理 10000 个 ID。所以repartition(20)显然没有帮助。我在这里受 db 上的 IO 约束。

那么我可以选择哪些选项来在所有任务中有效地共享这些数据呢?我希望将 mongo 和 postgres 中的数据视为内存查找表中的数据 - 总大小约为 500GB。

我的选择是:

  1. RDD(我认为 RDD 不适合我的用例)
  2. 数据框
  3. 广播变量(不确定这是否有效,因为它的创建需要 Spark 驱动程序中有 500GB 可用空间)
  4. 将数据从 mongodb 移动到 s3 并从 s3 查找任务。

我们解决此类问题所遵循的技术是:

  1. 将查找存储在 MongoDB 的不同集合中。
  2. 使用 Hadoop MongoDB 连接器从 MongoDB 获取数据并将其存储在 RDD 中
  3. 广播变量,以便所有节点/工作人员都可以使用它
  4. 现在,如果数据位于 HDFS 中,则为其创建一个 RDD,或者如果数据位于 MongoDB 中,则使用 Hadoop MongoDB 连接器。
  5. 现在执行查找匹配部分
  6. 将文件保存为序列文件,或者您也可以将其保存在 S3 上,需要在我们将其存储回 MongoDB 时检查它
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Mongodb 和 PostgreSQL 中的数据作为内存查找表? 的相关文章

随机推荐

  • GTK 中的免费对象/小部件?

    我的 GTK 应用程序中有一个包盒 我每隔一段时间就会用一个全新的条目替换它 至少现在是这样 因为我很着急 由于我要用新实例替换它 我是否需要显式地从内存中释放旧包盒内容 或者 GTK 中是否有一些垃圾收集 如果我确实需要明确需要释放对象
  • 如何创建SWIG接口文件?

    我是 SWIG 新手 而且做事的时间也少了 我正在尝试将 C 类绑定到 python 我已经在 Windows 中设置了 SWIG 并尝试运行它 成功了 我的 example i 文件就像 File example i module exa
  • 登录网站 cURL

    我是第一次使用 cURL 我需要登录一个网站 我在设置 cookie 文件和检索时遇到问题 这样我就可以访问该页面 而不仅仅是一次 而是多次 我在网上找到了代码 用于登录网站并废弃页面以获取一些详细信息 因为获取该页面需要很长时间 所以我只
  • MVP MVC 和 MVVM 之间的区别

    朋友们 我已经浏览了很多链接 博客 我发现他们中的大多数人都无法用外行语言清楚地沟通 也无法理解 MVP MVVM 和 MVC 之间的技术差异 我知道每个角色代表什么 并且也致力于 MVP 的制作 但如果有人问我同样的问题 我真的不明白 为
  • 如何在 Bokeh 绘图模块中使用 vbar 方法绘制分类条形图

    我希望在 Bokeh 绘图中使用 vbar 方法绘制条形图 其中 x 轴采用分类值而不是数值 教程页面中提供的示例 http docs bokeh org en latest docs reference plotting html htt
  • Hive-如何使用原始表中的分区“创建表作为选择..”?

    我需要从我们的 hive dlk 创建一个 工作表 虽然我可以使用 create table my table as select from dlk big table 很好 我在继承分区时遇到问题 属性day month and year
  • 使用 Photos Framework 获取相机拍摄的照片的 URL

    我有一个应用程序使用UIImagePickerController从相机和照片库中检索照片 在图像选择器委托中 我只想保存 NSURL UIImagePickerControllerReferenceURL 选取的图像以节省内存 当用户稍后
  • 使相同的 C++ 类型别名不兼容

    I use std vector
  • 如何使用存储在独立存储中的图像来制作故事板动画?

    我似乎无法将存储在独立存储中的图像显示在故事板中 当我用相机拍照时 我可以将图像输出到屏幕上 但当我使用相同的文件名时Value String Format MyImage 0 D2 jpg i 由于我存储它们的位置 如果我在故事板中再次打
  • 连接到 USB 外围设备

    看起来 UsbManager 在构建中消失了 现在我们如何与USB外设进行通信呢 像USB gt 串行等使用https github com mik3y usb serial for android https github com mik
  • 使用 cfinvoke 和 createObject 运行组件函数有什么区别?

    在我公司的代码中 我经常看到通过初始化该组件的对象并调用该对象的方法来使用组件文件 然而 在我看来 使用 cfinvoke 方法似乎更直接 特别是当仅使用组件文件中的一种方法时 这两种调用组件函数的方法有什么区别 各自的优缺点是什么 我什么
  • WPF VSTS 应用程序挂在 VS 凭据提示上

    我正在尝试编写一个使用 Visual Studio Team Service VSTS API 来显示 Visual Studio Online 中的项目的应用程序 我有以下代码 可以在控制台应用程序中完美运行 var connection
  • 在 MKSnapshot 图像中绘制带有标题的 MKPointAnnotation

    我试图绘制与 实时 MapView 中完全相同的注释 但随后在 MKSnapshot 中绘制 为什么使用 MKSnapshot gt 因为我想在 UITableView 中拥有非交互式 MapView 并且使用图像更有效 我可以使用 MKP
  • Winform自定义列表框项目

    我有一个列表框 应显示包含 2 个字段的数据 时间和消息 我希望每个项目显示为 2 行 而不是显示 1 行文本 第一行是时间 第二行是消息 其中每行都有不同的样式 我怎样才能做到这一点 我可以将对象数组绑定到列表框 但如何设置它的样式 感谢
  • Javascript 中添加的最新运算符有哪些? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道 Javascript 最近添加了哪些运算符 这包括任何可能尚未通过标准流程在所有浏览器中实现的操作符 如果或多或少确定它们会
  • 构建AWS Lambda jar

    创建 AWS Lambda jar 的标准做法是什么 我们应该将依赖项捆绑为 zip 文件中的 jar 还是应该将依赖项解压并包含为类 据我所知 这是第一个正确的选项 但是当我遵循 AWS 缩略图教程时 我想到了这个疑问 它最终创建了一个包
  • 如何使用 setAttributedText 设置 WKInterface 标签的对齐方式

    我正在尝试设置对齐方式WKInterfaceLabel using setAttributedText功能 这是我的代码 var paragraphStyle NSParagraphStyle defaultParagraphStyle p
  • 在 Swift 中运行时更改自动布局约束的 UIView 框架

    例如 我使用此代码来更改UIView called Propo self Propo frame origin x self view frame width Propo故事板有限制 但是当应用程序视图消失并重新出现时 UIView将自身重
  • 在使用深度 npm 依赖项的构造函数创建的对象上使用“instanceof”

    背景 我有一个 npm 模块 其中有常见的错误处理代码 包括自定义错误 function CustomError CustomError prototype Object create Error prototype CustomError
  • 如何使用 Mongodb 和 PostgreSQL 中的数据作为内存查找表?

    它是这个问题的延续 将多线程计算密集型作业移植到 Spark https stackoverflow com questions 32276856 porting a multi threaded compute intensive job