小编Fra*_*ank的帖子

在 dataproc 上调整 Spark 日志级别的最优雅和最健壮的方法是什么?

如之前的答案所述,更改 Spark 集群详细程度的理想方法是更改相应的 log4j.properties。但是,在 dataproc 上 Spark 运行在 Yarn 上,因此我们必须调整全局配置而不是 /usr/lib/spark/conf

几个建议:

在 dataproc 上,我们可以在集群创建期间传递几个 gcloud 命令和属性。查看文档 是否可以通过指定来更改 /etc/hadoop/conf 下的 log4j.properties

--properties 'log4j:hadoop.root.logger=WARN,console'
Run Code Online (Sandbox Code Playgroud)

也许不是,如文档所示:

--properties 命令不能修改上面未显示的配置文件。

另一种方法是在集群初始化期间使用 shell 脚本并运行 sed:

# change log level for each node to WARN
sudo sed -i -- 's/log4j.rootCategory=INFO, console/log4j.rootCategory=WARN, console/g'\
                     /etc/spark/conf/log4j.properties
sudo sed -i -- 's/hadoop.root.logger=INFO,console/hadoop.root.logger=WARN,console/g'\
                    /etc/hadoop/conf/log4j.properties
Run Code Online (Sandbox Code Playgroud)

但是这样就足够了,还是我们还需要更改环境变量 hadoop.root.logger 呢?

logging google-cloud-dataproc

5
推荐指数
1
解决办法
1176
查看次数

在TensorBoard上看不到所有运行

我正在使用tensorboard来显示三次运行.我有一个文件夹,logs其中包含三个文件:

2016-03-18_22-11-12
2016-03-18_22-11-27
2016-03-18_22-23-46
Run Code Online (Sandbox Code Playgroud)

当我tensorboard --logdir .(从日志)运行时,只有2016-03-18_22-23-46 可见:蓝光

如果我2016-03-18_22-23-46从日志中删除并重新启动tensorboard,那么只有2016-03-18_22-11-27可见.知道这里发生了什么吗?

编辑:日志文件(令我惊讶),相当大:这是结果du -h:

1,1G    ./2016-03-18_22-23-46
925M    ./2016-03-18_22-11-12
934M    ./2016-03-18_22-11-27
2,9G    .
Run Code Online (Sandbox Code Playgroud)

编辑: 上面的运行结构可以通过记录和检查点到tensorboard log-dir的子目录获得:

run_time = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
FLAGS.train_dir = '/datalab/tf_runs/' + run_time #Directory to put the training data.
summary_writer = tf.train.SummaryWriter(FLAGS.train_dir, sess.graph_def)
Run Code Online (Sandbox Code Playgroud)

tensorflow tensorboard

4
推荐指数
2
解决办法
1451
查看次数

如何在 PySpark 作业中检索 Dataproc 的 jobId

我运行了几个批处理作业,我想将 dataproc 中的 jobId 引用到保存的输出文件。

这将允许拥有与结果相关联的所有参数和输出日志。缺点仍然存在:由于 YARN 中的 executors 过去,无法再获得单个 executor 的日志。

google-cloud-dataproc

2
推荐指数
1
解决办法
292
查看次数