Spark程序中的流媒体作业持续时间

时间:2016-09-12 18:15:48

标签: spark-streaming rdd

如何进入我的程序(运行火花流式传输作业)每个rdd作业所需的时间。 例如

mFirebaseAdapter = new FirebaseRecyclerAdapter<Message, MessageViewHolder>(
            Message.class,
            R.layout.item_message,
            MessageViewHolder.class,
            mFirebaseDatabaseReference.child(MESSAGES_CHILD)) {

        @Override
        protected void populateViewHolder(final MessageViewHolder viewHolder, Message friendlyMessage, int position) {
            viewHolder.messageTextView.setText(friendlyMessage.getText());
            viewHolder.messengerTextView.setText(friendlyMessage.getName());
            if (friendlyMessage.getPhotoUrl() == null) {
                viewHolder.messengerImageView.setImageDrawable(ContextCompat.getDrawable(MessageActivity.this,
                        R.drawable.profilepic_placeholder));
            } else {
                Glide.with(MessageActivity.this)
                        .load(friendlyMessage.getPhotoUrl())
                        .into(viewHolder.messengerImageView);
            }
        }
    };

在上面的代码中,每个微补丁rdd都会运行作业以进行映射并保存到操作。

我想获得每个流媒体工作的时间。我可以在端口4040 UI中看到这个工作,但是想要获得spark代码本身。

如果我的问题不明确,请原谅。

1 个答案:

答案 0 :(得分:0)

您可以在spark应用中使用StreamingListener。此接口提供了一个onBatchComplete方法,可以为您提供批处理作业所需的总时间。

context.addStreamingListener(new StatusListenerImpl());

StatusListenerImpl是您必须使用StreamingListener实现的实现类。 在监听器中还有更多其他方法,您也应该探索它们。