问题标签 [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.

0 投票
2 回答
1092 浏览

google-cloud-platform - 如何在 Google Cloud Dataproc 上运行 Presto?

我想在 Dataproc 实例或一般的Google Cloud Platform上运行Presto。如何轻松设置和安装 Presto,尤其是使用 Hive?

0 投票
1 回答
429 浏览

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 一起使用?

0 投票
1 回答
1470 浏览

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.

0 投票
1 回答
3174 浏览

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。

我在这里做错了什么,还是这是谷歌自动配置的问题?

0 投票
1 回答
1395 浏览

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' 的表。但总是空的

有人可以帮我吗?
谢谢

0 投票
0 回答
1024 浏览

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 在幕后工作的准确程度。例如,请参阅我之前的问题

0 投票
1 回答
64 浏览

google-cloud-dataproc - Cloud Dataproc API 发现

我想以编程方式针对 Cloud Dataproc API 进行构建,但找不到发现服务。我在哪里可以找到它?

0 投票
2 回答
3439 浏览

apache-spark - Google Cloud Logging 中 Dataproc Spark 作业的输出

有没有办法将 Dataproc Spark 作业的输出发送到 Google Cloud 日志记录?如 Dataproc 文档中所述,作业驱动程序(Spark 作业的主机)的输出可在控制台中的 Dataproc->Jobs 下获得。我希望在 Cloud Logging 中也有日志的原因有两个:

  1. 我想查看执行者的日志。通常主日志会说“executor lost”,没有更多细节,如果有更多关于 executor 正在做什么的信息会非常有用。
  2. Cloud Logging 具有出色的过滤和搜索功能

目前,Cloud Logging 中显示的唯一 Dataproc 输出是来自 yarn-yarn-nodemanager-* 和 container_*.stderr 的日志项。我的应用程序代码的输出显示在 Dataproc->Jobs 中,但没有显示在 Cloud Logging 中,而且它只是 Spark 主服务器的输出,而不是执行程序的输出。

0 投票
3 回答
5685 浏览

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

进行初始连接时的堆栈跟踪:

0 投票
1 回答
1135 浏览

apache-spark - 我应该使用哪个记录器在 Cloud Logging 中获取数据

我正在使用 Cloud Dataproc 运行 PySpark 作业,并希望使用loggingPython 模块记录信息。目标是将这些日志推送到 Cloud Logging。

这个问题中,我了解到我可以通过在 fluentd 配置中添加一个日志文件来实现这一点,该配置位于/etc/google-fluentd/google-fluentd.conf.

但是,当我查看 中的日志文件时/var/log,我找不到包含我的日志的文件。我试过使用默认的 python 记录器和 'py4j' 记录器。

谁能阐明我应该使用哪个记录器,以及应该将哪个文件添加到流利的配置中?

谢谢