码迷,mamicode.com
首页 > 其他好文 > 详细

spark streaming 调试技巧

时间:2015-04-29 13:38:51      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:streaming

  1. spark streaming 如果以local 模式运行,log日志非常清楚。
  2. 如果log 日志是运行在yarn 模式下,driver 的日志可以通过reource manager 日志看到。但是executor的日志却看不到,我们往往错误都发生在executor里,比如典型的错误:如果我们连接hbase去存取数据的话,我们会在driver里初始化了连接,缺忽略的excutors里,导致程序出错。如果你的代码里有try cache,executor的 错误不会影响driver 运行,但是结果却是错误的。我们这需要查看executor的日志:由于executor运行在yarn 的模式下,我们从本地containner查看日志。 CDH 版本yarn container 的日志再以下路径下:

[root@hadoop-3 ~]# ll /var/log/hadoop-yarn/container/application_1429701572510_0022/container_1429701572510_0022_01_000002/
总用量 932
-rw-r–r– 1 yarn yarn 339015 4月 29 11:53 stderr
-rw-r–r– 1 yarn yarn 613851 4月 29 11:53 stdout (我们输出的日志)

  1. hbase 初始化连接,官网也有说明,在executor去初始化:

userLog.foreachRDD(new Function2<JavaPairRDD<String, Iterable<String>>, Time, Void>() {
    @Override
    public Void call(JavaPairRDD<String, Iterable<String>> stringIterableJavaPairRDD, Time time) throws Exception {
        if(!stringIterableJavaPairRDD.partitions().isEmpty()) {
            stringIterableJavaPairRDD.foreachPartition(new VoidFunction<Iterator<Tuple2<String, Iterable<String>>>>() {
                @Override
                public void call(Iterator<Tuple2<String, Iterable<String>>> tuple2Iterator) throws Exception {
                    //初始化hbase 连接
                    HBaseConnectionFactory.init();
                    while (tuple2Iterator.hasNext()) {
                      // 具体的逻辑代码
                    }

            });}
            return null;
        }
});

spark streaming 调试技巧

标签:streaming

原文地址:http://blog.csdn.net/kntao/article/details/45364761

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!