【问题标题】:Save data from Dataproc to Datastore将数据从 Dataproc 保存到 Datastore
【发布时间】:2016-11-10 10:06:54
【问题描述】:

我在 Google Dataproc/Spark 中使用 Python2.7 实现了推荐引擎,需要将输出作为记录存储在 Datastore 中,以供 App Engine API 后续使用。但是,似乎没有办法直接执行此操作。

据我所知,Dataproc 没有 Python 数据存储连接器。 Python 数据流 SDK 不支持写入数据存储区(尽管 Java 支持)。 MapReduce 没有用于 Datastore 的输出编写器。

这似乎并没有留下很多选择。目前,我认为我必须将记录写入 Google Cloud Storage,并在 App Engine 中运行一个单独的任务来收集它们并存储在 Datastore 中。这并不理想——协调这两个流程有其自身的困难。

有没有更好的方法将数据从 Dataproc 获取到 Datastore 中?

【问题讨论】:

    标签: python google-app-engine google-cloud-datastore google-cloud-dataproc


    【解决方案1】:

    我成功地从 Dataproc 保存了 Datastore 记录。这涉及在主 VM 上安装其他组件(来自控制台的 ssh)

    appengine sdk 安装和初始化使用

    sudo apt-get install google-cloud-sdk-app-engine-python
    sudo gcloud init
    

    这会在/usr/lib/google-cloud-sdk/platform/google_appengine/ 下放置一个新的 google 目录。

    然后通过

    安装数据存储库
    sudo apt-get install python-dev
    sudo apt-get install python-pip
    sudo pip install -t /usr/lib/google-cloud-sdk/platform/google_appengine/ google-cloud-datastore
    

    由于我还没有理解的原因,它实际上安装在较低的一级,即/usr/lib/google-cloud-sdk/platform/google_appengine/google/google,因此出于我的目的,有必要手动将组件在路径中向上移动一级。

    为了让解释器能够找到这段代码,我必须将/usr/lib/google-cloud-sdk/platform/google_appengine/ 添加到路径中。通常的 BASH 技巧无法持续,所以我最终在我的推荐引擎启动时这样做了。

    由于要存储的数据量很大,我也花了很多时间尝试通过 MapReduce 来保存。最终我得出的结论是,Dataproc 上缺少太多必需的服务。相反,我使用的是多处理池,它实现了可接受的性能

    【讨论】:

      【解决方案2】:

      过去,Cloud Dataproc 团队维护了 Datastore Connector for Hadoop,但由于多种原因已被弃用。目前还没有正式的重启开发计划。

      上面提到的页面有几个选项,您的方法是提到的解决方案之一。在这一点上,如果您致力于 Cloud Datastore,我认为您的设置可能是最简单的设置之一。

      【讨论】:

      • 似乎该页面具有误导性。在给出的选项中,选项 1 似乎是不可能的,因为 Python Dataflow SDK 不支持写入数据存储区,而选项 2 至少非常困难,因为 MapReduce 预计 Dataproc 上不存在许多服务(模拟了应用程序)我在 MapReduce 寻找 memcache 服务时放弃了身份服务)。选项 3 是可能的,但涉及在 AppEngine 上同步另一个任务,这不适合我的用例。选项 4 与来自 Datastore 的输入相关,而不是输出到它。
      猜你喜欢
      • 2017-04-07
      • 1970-01-01
      • 2019-06-25
      • 2013-12-24
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多