问题标签 [google-cloud-dataproc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hadoop - Google Cloud Platform 上的计划 mapreduce 作业
我正在开发一个 node.js 应用程序,它基本上将用户事件日志存储在数据库中,并显示有关用户操作的见解。为了实现这一点,必须使用Mapreduce作业来分析事件日志,该作业将每天自动运行一次(每晚)。
我在谷歌云网站上找到了很多关于 mapreduce 的教程,但我完全迷失了,因为有几种技术,如果不使用命令行就找不到方法,而且也没有关于调度的信息(我希望整个分析过程完全自动化)
拜托,您能否就我应该使用哪些谷歌技术或在哪里可以找到好的教程提供建议?
谢谢
hadoop - 运行 Oozie 工作流时出现异常
我正在尝试运行我在 Hue 中创建的一个简单的工作流,它只调用一个不带参数的 Spark 作业,但在运行它时出现异常。它在 Google DataProc 集群上运行,并使用 Oozie 4.2.0 和 Hue 3.9 作为 UI 并运行它。
我已确保 mapreduce.framework.name 用于纱线。到目前为止,我在网上找到了一些解决方案,但所有这些都围绕工作流 XML 的问题。我是手工重建的,它也在做同样的事情。
这是我的工作流程的代码:
这是我收到的日志的输出:
编辑:这里要求的是我的 mapred-site.xml 文件:
编辑 2:无法让 Hue 导出 job.properties 文件,但这是我在命令行上测试时生成的文件。我相信生成的不会有太大的不同。
logging - 在 dataproc 上调整 Spark 日志级别的最优雅、最可靠的方法是什么?
如前面的答案所述,更改 Spark 集群详细程度的理想方法是更改相应的 log4j.properties。但是,在 dataproc 上 Spark 在 Yarn 上运行,因此我们必须调整全局配置而不是 /usr/lib/spark/conf
几个建议:
在 dataproc 上,我们有几个 gcloud 命令和属性,我们可以在集群创建期间传递。请参阅文档 是否可以通过指定更改 /etc/hadoop/conf 下的 log4j.properties
也许不是,从文档中:
--properties 命令不能修改上面未显示的配置文件。
另一种方法是在集群初始化期间使用 shell 脚本并运行 sed:
但这是否足够,或者我们还需要更改环境变量 hadoop.root.logger 吗?
apache-spark - 从 gs 到 Dataproc 的文件 xfer - 什么文件大小成为障碍?
我一直在对在 Dataproc 集群上运行的 pySpark 作业进行基准测试,并注意到处理时间的顽固“地板”——尽管有几种不同的集群配置。我想知道这是否是由于 gs: storage 和 Dataproc 之间的文件 xfer 延迟?
源文件为 60G,存储在与我的 dataproc 集群相同的区域(us-central1)下的同一项目下的存储桶中。该文件有 14.3 亿行,有 7.31 亿条记录,每条记录 17 个字段,全部在一行中。除了标题行之外,额外的行都是空白的。
在 1 个主设备、4 个工作人员的配置中,所有设备都是带有 300GB 磁盘的 n-standard-8 机器,运行时间是 35:20 和 36:33。当我将集群加强到 8 个工作人员而不是 4 个(仍然都是 n-standard-8)时,它下降到 21:14。接下来,我将 wkrs 更改为 n-highmem-32s 的 4 个,同时将 mstr 保持在 n-standard-8,时钟在 20:01 最后,我真的加强了,切换到 1 mstr 和 16 wkrs,所有 n -highmem-32。这次跑步的最佳时间是 15:36
这是我所有测试/配置等的结果:
我运行了其他测试,对脚本中的缓存稍作更改,但没有一个比上述更好。
这让我认为 60G 文件的初始 xfer 是一个主要因素。您希望这样的 xfer 需要多长时间 - 考虑到它都在 GCP 内,在同一个项目下,在同一个地区?需要10分钟吗?
如果答案在这里,我还包括 pySpark 脚本:
google-bigquery - 有没有办法将 BigQuery 与 Dataproc 结合使用?
我通过使用 IPv4 地址连接到 GCSQL,将 Dataproc 与 Google Cloud SQL (MySQL) 上的数据一起使用。是否存在从 Dataproc 到 BigQuery 的任何连接,以便我可以在 BigQuery 上使用数据?
google-cloud-storage - PySpark + 谷歌云存储(wholeTextFiles)
我正在尝试使用 PySpark (Google Dataproc) 解析大约 100 万个 HTML 文件,并将相关字段写入压缩文件。每个 HTML 文件大约 200KB。因此,所有数据约为 200GB。
如果我使用数据的子集,下面的代码可以正常工作,但是运行几个小时然后在整个数据集上运行时崩溃。此外,工作节点未使用(<5% CPU),所以我知道存在一些问题。
我相信系统在从 GCS 获取数据时窒息。有一个更好的方法吗?另外,当我以这种方式使用 wholeTextFiles 时,主程序是否会尝试下载所有文件,然后将它们发送给执行程序,还是让执行程序下载它们?
apache-spark - Proxying Resource Manager in Google Dataproc
I've followed Google instructions on this.
followed by
Navigate to https://spark-test-m:8088 and I get nothing.
pyspark - 使用 jupyter notebook 将包添加到 pyspark
我可以使用https://cloud.google.com/dataproc/tutorials/jupyter-notebook成功地使用 pyspark 运行 jupyter
我的问题是 - 如果我必须将包添加到 pyspark(如 spark-csv 或 graphframes)并通过笔记本使用它们,那么最佳实践是什么?我可以使用 --packages 选项将包添加到新的 pyspark 作业中,但是如何将新的 pyspark 上下文连接到笔记本?
gcloud - 来自 DataProc 集群的 Google Cloud Sdk
从 google-dataproc 集群使用/安装 python google cloud api(例如 pub-sub)的正确方法是什么?例如,如果我在集群上使用 zeppelin/pyspark 并且我想使用 pub-sub api,我应该如何准备它?
我不清楚在默认集群配置期间安装了什么和未安装什么,以及我是否应该/如何尝试为谷歌云 api 安装 python 库。
我还意识到可能需要设置范围/身份验证。需要明确的是,我可以在本地使用 api,但我不确定从集群访问 api 的最干净的方法是什么,我不想执行任何不必要的步骤。
apache-spark - 在 Google Cloud Dataproc 中,所有日志都存储在哪里?
我有一个 PySpark 作业,我分布在一个 1-master、3-worker 集群中。
我有一些 python 打印命令可以帮助我调试代码。
现在,当我在 Google Dataproc 上运行代码并将主设置为本地时,打印输出正确。但是,当我尝试在纱线上运行它时,使用基于 YARN 的 Spark 进行打印时,打印输出不会出现在 Dataproc UI 的作业部分下的 Google Cloud Console 中。
我在哪里可以访问未出现在 Google Dataproc 控制台中的每个 worker 和 master 的这些 python 打印输出