开发者社区> 问答> 正文

E-mapreduce中用spark streaming 读取Loghub的问题

jimmywalker 2017-03-14 10:40:57 1523

大家好。我在测试使用E-mapreduce中的spark streaming来采集Loghub的数据时,遇到点问题。
我用Loghub监控一个文本文件,采用的是极简模式。该文本文件,每隔三秒生成一个1到10的随机数,如下图所示。
_

我修改了EMR集群提供的Loghubsample.scala去采集,batch interval设置为1秒,代码如下所示。

    loghubStream.foreachRDD { rdd =>
      val num = rdd.count()
      println("this round received: " + num + " data lines.")
      if (num > 0){
        rdd.foreach { x:Array[Byte] =>
          for (y <- x){
            println("result is "+ y)
          }
        }
      }
    }

但是现在每次打印出的并不是我想要的1到10的随机数,而是一串数字。请问这是因为我的调用方法不对吗?能否给我些帮助,感谢大家。
_

分布式计算 监控 Scala 流计算 Spark
分享到
取消 提交回答
全部回答(3)
  • jimmywalker
    2019-07-17 20:55:04
    已采纳

    后来咨询了工单的技术人员,得到了提示:先取出来rdd是一个byte对象,把它转成string,这个string是一个json对象,因为日志服务的数据是json格式的。然后用json的工具类转一下,最后取里面的key就能拿到value了。
    终于解决了问题。
    非常感谢帮助。

    0 0
  • 梅熙
    2019-07-17 20:55:04

    emr专业问题,可以在emr客户交钉钉流群里面讨论,响应速度会更快。
    1075534903

    1 0
  • 开源大数据EMR
    2019-07-17 20:55:04

    你可以先去logstore看下收到的究竟是些什么内容,然后再对比下spark streaming消费到的数据。

    0 0
添加回答
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

推荐文章
相似问题
推荐课程