问题标签 [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.
google-cloud-platform - 如何在 Google Cloud Dataproc 上运行 Presto?
我想在 Dataproc 实例或一般的Google Cloud Platform上运行Presto。如何轻松设置和安装 Presto,尤其是使用 Hive?
google-cloud-sql - 将 Presto on Cloud Dataproc 与 Google Cloud SQL 结合使用?
我同时使用 Hive 和 MySQL(通过Google Cloud SQL),我想使用Presto轻松连接到两者。我已经看到 Cloud Dataproc 有一个Presto 初始化操作,但它不适用于开箱即用的 Cloud SQL。如何使该初始化操作与 Cloud SQL 一起使用,以便我可以将 Hive/Spark 和 Cloud SQL 与 Presto 一起使用?
java - Running app jar file on spark-submit in a google dataproc cluster instance
I'm running a .jar file that contains all dependencies that I need packaged in it. One of this dependencies is com.google.common.util.concurrent.RateLimiter
and already checked it's class file is in this .jar file.
Unfortunately when I hit the command spark-submit on the master node of my google's dataproc-cluster instance I'm getting this error:
It seems something happened in the sense of overwriting my dependencies. Already decompiled the Stopwatch.class
file from this .jar and checked that method is there. That just happened when I ran on that google dataproc instance.
I did grep
on the process executing the spark-submit
and I got the flag -cp
like this:
Is there anything I can do to solve this problem?
Thank you.
apache-spark - Google Cloud Dataproc 配置问题
我在运行的一些 Spark LDA 主题建模中遇到了各种问题(主要是看似随机间隔的解关联错误),我认为这主要与我的执行程序上的内存分配不足有关。这似乎与有问题的自动集群配置有关。我最近的尝试使用 n1-standard-8 机器(8 个内核,30GB RAM)作为主节点和工作节点(6 个工作节点,因此总共 48 个内核)。
但是当我看时,/etc/spark/conf/spark-defaults.conf
我看到了:
但是这些值没有多大意义。为什么只使用 4/8 执行器核心?只有 9.3 / 30GB RAM?我的印象是所有这些配置都应该自动处理,但即使我尝试手动调整也没有让我到任何地方。
例如,我尝试使用以下命令启动 shell:
但是后来这失败了
我尝试更改 中的关联值/etc/hadoop/conf/yarn-site.xml
,但没有效果。即使我尝试不同的集群设置(例如使用具有 60+ GB RAM 的执行程序),我最终也会遇到同样的问题。由于某种原因,最大阈值保持在 22528MB。
我在这里做错了什么,还是这是谷歌自动配置的问题?
google-bigquery - 将 BigQuery 连接器与 Spark 结合使用
我没有得到谷歌示例工作
https://cloud.google.com/hadoop/examples/bigquery-connector-spark-example PySpark
我认为代码中有一些错误,例如:
'# 输出参数'mapred.bq.project.id': '',
应该是:'mapred.bq.output.project.id':'',
和
'# 将数据写回到新的 BigQuery 表中。
'# BigQueryOutputFormat 丢弃键,因此将键设置为无。
(word_counts
.map(lambda 对:无,json.dumps(pair))
.saveAsNewAPIHadoopDataset(conf))
会给出错误信息。如果我将其更改为:
(word_counts
.map(lambda pair: (None, json.dumps(pair)))
.saveAsNewAPIHadoopDataset(conf))
我收到错误消息:
org.apache.hadoop.io.Text 无法转换为 com.google.gson.JsonObject
无论我尝试什么,我都无法完成这项工作。
在 BigQuery 中创建了一个数据集,其名称是我在 'conf' 中给它的名称,结尾带有 '_hadoop_temporary_job_201512081419_0008'
并且最后创建了一个带有 '_attempt_201512081419_0008_r_000000_0' 的表。但总是空的
有人可以帮我吗?
谢谢
scala - Spark 中的性能调整 LDA
我正在 Spark 中实现一个 LDA 模型(通过 Scala API),并使用不同数量的主题测试模型。一般来说,它似乎工作正常,但遇到间歇性任务失败,我很确定这与内存问题有关。我当前代码的相关部分如下。
请注意,我正在从 RDD 的文本转储中加载我的数据,其中每个文档都是一个稀疏的 mllib 向量。因此,我的文件中的示例行LDA_vectors
如下所示:
这是标准的 mllib 稀疏格式,可以读作
因此该parse
函数处理将其读入 RDD:
然后我在不同数量的主题上运行一个循环。请注意,用于将 word-document 矩阵保存到文件的代码块遵循此处描述的方法:
好的。所以这一切都很好,但正如我所说,我开始遇到任务失败,我越来越有可能增加主题的数量。而且我认为这些是由内存问题引起的,这让我想知道如何在 spark 中调整 LDA 的性能。
我在 Google Cloud Dataproc 上运行,所以我的资源很灵活,但我意识到我对 Spark 的 LDA 的内部原理了解得不够多,无法知道如何在这里最好地优化性能。
到目前为止,我的一次尝试是我在这一行中所做的:
在这里,我将我的文档 RDD 重新分区为 192 个分区(对于这个示例,我在 48 个内核上运行 spark,因此使用 4*n_cores 的经验法则)并缓存它。如果我在 RDD 上做重复映射,这是合理的,但我不确定它是否/如何帮助这里的性能。我还能在这里做什么?
为了方便任何答案,以下是我的语料库中的一些摘要统计信息:
- 文件:166,784
- 词汇量(唯一术语的数量):112,312
- 总代币:4,430,237,213
也许我的大量令牌是这里的主要问题,我只需要增加每个任务的内存,即增加可用内存并减少执行程序的数量。但这当然取决于 Spark LDA 在幕后工作的准确程度。例如,请参阅我之前的问题。
google-cloud-dataproc - Cloud Dataproc API 发现
我想以编程方式针对 Cloud Dataproc API 进行构建,但找不到发现服务。我在哪里可以找到它?
apache-spark - Google Cloud Logging 中 Dataproc Spark 作业的输出
有没有办法将 Dataproc Spark 作业的输出发送到 Google Cloud 日志记录?如 Dataproc 文档中所述,作业驱动程序(Spark 作业的主机)的输出可在控制台中的 Dataproc->Jobs 下获得。我希望在 Cloud Logging 中也有日志的原因有两个:
- 我想查看执行者的日志。通常主日志会说“executor lost”,没有更多细节,如果有更多关于 executor 正在做什么的信息会非常有用。
- Cloud Logging 具有出色的过滤和搜索功能
目前,Cloud Logging 中显示的唯一 Dataproc 输出是来自 yarn-yarn-nodemanager-* 和 container_*.stderr 的日志项。我的应用程序代码的输出显示在 Dataproc->Jobs 中,但没有显示在 Cloud Logging 中,而且它只是 Spark 主服务器的输出,而不是执行程序的输出。
apache-spark - 使用 spark-shell 时的番石榴版本
我正在尝试通过 dataproc 上的 spark-shell 使用 spark-cassandra-connector,但是我无法连接到我的集群。似乎存在版本不匹配,因为类路径包含来自其他地方的更旧的番石榴版本,即使我在启动时指定了正确的版本。我怀疑这可能是由默认情况下放入类路径的所有 Hadoop 依赖项引起的。
无论如何让 spark-shell 只使用正确版本的番石榴,而不摆脱所有与 Hadoop 相关的 dataproc 包含的 jars?
相关资料:
启动 spark-shell,显示它具有正确版本的 Guava:$ spark-shell --packages com.datastax.spark:spark-cassandra-connector_2.10:1.5.0-M3
进行初始连接时的堆栈跟踪:
apache-spark - 我应该使用哪个记录器在 Cloud Logging 中获取数据
我正在使用 Cloud Dataproc 运行 PySpark 作业,并希望使用logging
Python 模块记录信息。目标是将这些日志推送到 Cloud Logging。
从这个问题中,我了解到我可以通过在 fluentd 配置中添加一个日志文件来实现这一点,该配置位于/etc/google-fluentd/google-fluentd.conf
.
但是,当我查看 中的日志文件时/var/log
,我找不到包含我的日志的文件。我试过使用默认的 python 记录器和 'py4j' 记录器。
谁能阐明我应该使用哪个记录器,以及应该将哪个文件添加到流利的配置中?
谢谢