本文整理汇总了Scala中com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream类的典型用法代码示例。如果您正苦于以下问题:Scala InitialPositionInStream类的具体用法?Scala InitialPositionInStream怎么用?Scala InitialPositionInStream使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了InitialPositionInStream类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。
示例1: CommandStreamProcessor
//设置package包名称以及导入依赖的类
package com.crystal
package processors
// Spark
import org.apache.spark.streaming.kinesis._
import org.apache.spark.streaming.{ Duration, StreamingContext }
import org.apache.spark.streaming.dstream.DStream
import org.apache.spark.storage.StorageLevel
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream
// JSON Parsing
import scala.util.parsing.json.JSON
object CommandStreamProcessor {
def setup(appConfig: AppConfig, streamingCtx: StreamingContext) = {
val cmdStream = getCommandStream(appConfig, streamingCtx)
cmdStream.foreachRDD { rdd =>
rdd.foreach{ cmd =>
println("--- Command Received ---")
}
}
}
private def getCommandStream(
appConfig: AppConfig,
streamingCtx: StreamingContext): DStream[Map[String, Any]] = {
val stream = KinesisUtils.createStream(
streamingCtx,
appConfig.commandAppName,
appConfig.commandStreamName,
s"kinesis.${appConfig.regionName}.amazonaws.com",
appConfig.regionName,
InitialPositionInStream.LATEST,
Duration(appConfig.checkpointInterval),
StorageLevel.MEMORY_AND_DISK_2
)
stream
.map { byteArray => new String(byteArray) }
.map { jsonStr => JSON.parseFull(jsonStr).get.asInstanceOf[Map[String, Any]] }
}
}
开发者ID:crystal-project-inc,项目名称:streaming_user_segmentation,代码行数:45,代码来源:CommandStreamProcessor.scala
示例2: TailMain
//设置package包名称以及导入依赖的类
import java.net.InetAddress
import java.util
import java.util.UUID
import com.amazonaws.auth.{AWSCredentialsProvider, BasicAWSCredentials}
import com.amazonaws.internal.StaticCredentialsProvider
import com.amazonaws.services.kinesis.clientlibrary.interfaces.{IRecordProcessor, IRecordProcessorCheckpointer, IRecordProcessorFactory}
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.{InitialPositionInStream, KinesisClientLibConfiguration, Worker}
import com.amazonaws.services.kinesis.clientlibrary.types.ShutdownReason
import com.amazonaws.services.kinesis.model.Record
object TailMain {
val accessKeyId = System.getProperty("accessKeyId")
val secretAccessKey = System.getProperty("secretAccessKey")
val appName = "kinesis-test-app"
val streamName = "kinesis-test-stream"
val initialPosition = "LATEST"
val region = "ap-northeast-1"
val idleTimeBetweenReadsInMillis = 3000
def main(args: Array[String]): Unit = {
val workerId = InetAddress.getLocalHost.getCanonicalHostName + ":" + UUID.randomUUID
val credentialsProvider: AWSCredentialsProvider = new StaticCredentialsProvider(new BasicAWSCredentials(accessKeyId, secretAccessKey))
val kclConf = new KinesisClientLibConfiguration(appName, streamName, credentialsProvider, workerId)
.withInitialPositionInStream(InitialPositionInStream.valueOf(initialPosition))
.withRegionName(region)
.withIdleTimeBetweenReadsInMillis(idleTimeBetweenReadsInMillis)
println(s"worker start. name:$appName stream:$streamName workerId:$workerId")
val tailWorker = new Worker(StreamTailProcessor.processorFactory, kclConf)
tailWorker.run()
}
}
class StreamTailProcessor extends IRecordProcessor{
override def shutdown(checkpointer: IRecordProcessorCheckpointer, reason: ShutdownReason): Unit = {
println(s"Shutting down record processor")
}
override def initialize(shardId: String): Unit = {
println(s"Initialising record processor for shard: $shardId")
}
override def processRecords(records: util.List[Record], checkpointer: IRecordProcessorCheckpointer): Unit = {
import scala.collection.JavaConversions._
records foreach { r =>
val line = new String(r.getData.array)
println(s"[stream-tail] $line")
}
}
}
object StreamTailProcessor {
def processorFactory = new IRecordProcessorFactory {
def createProcessor(): IRecordProcessor = new StreamTailProcessor
}
}