How to send a phone message when a spark application is end.
2017-05-03 15:59
507 查看
Sometimes, we want to get a message when spark application is end. The application end event is especially import for streaming application, because it represents there is some error occurred.
To embed the service to application, SendMsgOnAppEndListener class should be imported first.
Secondly, add the listener to spark context.
Parameter description:
url: the phone message url.
phoneList: the phone list to whom the message be send when the application is end, separated by common character.
msg: the message .
The source of SendMsgOnAppEndListener:
To embed the service to application, SendMsgOnAppEndListener class should be imported first.
import org.apache.spark.plugin.xbu.bigdata.SendMsgOnAppEndListener.
Secondly, add the listener to spark context.
Parameter description:
url: the phone message url.
phoneList: the phone list to whom the message be send when the application is end, separated by common character.
msg: the message .
val sc : SparkContext = new SparkContext(sparkConf); sc.addSparkListener(new SendMsgOnAppEndListener( url = "http://server:port/msg/sendmsg", phoneList = "xxxxxx", msg = "TestSendMsgOnAppEndListener error"))
The source of SendMsgOnAppEndListener:
package org.apache.spark.plugin.xbu.bigdata import org.apache.spark.scheduler._ import org.apache.http.impl.client.DefaultHttpClient import org.apache.http.message.BasicNameValuePair import org.apache.http.client.methods.HttpPost import org.apache.http.NameValuePair import org.apache.http.client.entity.UrlEncodedFormEntity import java.util.ArrayList /** * Created by houzhizhen on 17-5-2. */ class SendMsgOnAppEndListener(val url : String = "http://yq01-sw-hds12.yq01.baidu.com:8001/msg/sendmsg",val phoneList: String, val msg: String) extends SparkListenerInterface{ override def onStageCompleted(stageCompleted: SparkListenerStageCompleted): Unit = ??? override def onStageSubmitted(stageSubmitted: SparkListenerStageSubmitted): Unit = ??? override def onTaskStart(taskStart: SparkListenerTaskStart): Unit = ??? override def onTaskGettingResult(taskGettingResult: SparkListenerTaskGettingResult): Unit = ??? override def onTaskEnd(taskEnd: SparkListenerTaskEnd): Unit = ??? override def onJobStart(jobStart: SparkListenerJobStart): Unit = ??? override def onJobEnd(jobEnd: SparkListenerJobEnd): Unit = ??? override def onEnvironmentUpdate(environmentUpdate: SparkListenerEnvironmentUpdate): Unit = ??? override def onBlockManagerAdded(blockManagerAdded: SparkListenerBlockManagerAdded): Unit = ??? override def onBlockManagerRemoved(blockManagerRemoved: SparkListenerBlockManagerRemoved): Unit = ??? override def onUnpersistRDD(unpersistRDD: SparkListenerUnpersistRDD): Unit = ??? override def onApplicationStart(applicationStart: SparkListenerApplicationStart): Unit = ??? override def onApplicationEnd(applicationEnd: SparkListenerApplicationEnd): Unit = { val httpClient = new DefaultHttpClient(); val httppost = new HttpPost(url) val formparams = new ArrayList[NameValuePair]() formparams.add(new BasicNameValuePair("phonelist", phoneList)) formparams.add(new BasicNameValuePair("msg", msg)) val uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8") httppost.setEntity(uefEntity) httpClient.execute(httppost); } override def onExecutorMetricsUpdate(executorMetricsUpdate: SparkListenerExecutorMetricsUpdate): Unit = ??? override def onExecutorAdded(executorAdded: SparkListenerExecutorAdded): Unit = ??? override def onExecutorRemoved(executorRemoved: SparkListenerExecutorRemoved): Unit = ??? override def onBlockUpdated(blockUpdated: SparkListenerBlockUpdated): Unit = ??? override def onOtherEvent(event: SparkListenerEvent): Unit = ??? }
相关文章推荐
- How to solve the problem witch is the system send many emails when cron have something wrong
- If you have multiple web application run how to determin which is yours when you debug using visual studio 2008?
- PRB: "Requested Registry Access Is Not Allowed" Error Message When ASP.NET Application Tries to Write New EventSource in the Eve
- Server Error in '/' Application. Access to the Path Is Denied" error message appears
- How to cal Session_End() method when you store the Session state not in Inprc but StageServer, etc.
- What Is Bootloader And How To Unlock Bootloader On Android Phones
- How to debug your program when NUnit is running?
- How do I use a modem to send an audio message?
- How to duplicate a controlfile when ASM is involved
- Error message when you try to save a table in SQL Server 2008: "Saving changes is not permitted"
- How to umount when the device is busy
- how to tag a photo to be used as a thumbnail when page is linked to on facebook
- How to solve install error ".NET Framework 2.0 is not detected." when installing VS tools SDK for GP 10.0
- How to recover when the SAP spool is full
- How to send and handle a custom Windows message
- XL2000: "Project Is Unviewable" Error Message When You Try to View Project
- How to resolve the problem "Could not download sliverlight application" when doing deployment
- How to grant access to SQL logins on a standby database when the guest user is disabled in SQL Serve
- How to get a type in C++ when its template argument is the argument
- 【Windows Phones 7】Ready for take-off? Top 10 things to check when you think you are done with your application.