Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/luckyzxl2016/spark-example
Spark1.6和spark2.2的示例,包含kafka,flume,structuredstreaming,jedis,elasticsearch,mysql,dataframe
https://github.com/luckyzxl2016/spark-example
dataframe elasticsearch jedis kafka mysql spark spark-example spark-sql spark-streaming spark-structured-streaming
Last synced: 20 days ago
JSON representation
Spark1.6和spark2.2的示例,包含kafka,flume,structuredstreaming,jedis,elasticsearch,mysql,dataframe
- Host: GitHub
- URL: https://github.com/luckyzxl2016/spark-example
- Owner: LuckyZXL2016
- Created: 2018-01-05T16:56:03.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-01-28T15:44:35.000Z (almost 7 years ago)
- Last Synced: 2024-10-12T04:31:09.221Z (about 1 month ago)
- Topics: dataframe, elasticsearch, jedis, kafka, mysql, spark, spark-example, spark-sql, spark-streaming, spark-structured-streaming
- Language: Scala
- Homepage:
- Size: 2.06 MB
- Stars: 15
- Watchers: 5
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spark-Example
com.zxl.spark2_2.kafka
StreamingKafka8:
SparkStreaming从kafka中读取数据
kafka版本0.8
采取直连方式
StreamingKafka10:
SparkStreaming从kafka中读取数据
kafka版本0.10
采取直连方式com.zxl.spark2_2.streaming
StreamingToMysql:
SparkStreaming读取数据,存储到Mysql中com.zxl.spark2_2.structured
JDBCSink:
处理从StructuredStreaming中向mysql中写入数据
MySqlPool:
从mysql连接池中获取连接
StructuredStreamingKafka:
结构化流从kafka中读取数据存储到关系型数据库mysql
目前结构化流对kafka的要求版本0.10及以上com.zxl.spark2_2.dataset
createDataSet:
DataSet创建的多种方式basicAction:
DataSet的基本操作
actions:
DataSet的Action操作
1.map操作,flatMap操作
2.filter操作,where操作
3.去重操作
4.加法/减法操作
5.select操作
6.排序操作
7.分割抽样操作
8.列操作
9.join操作
10.分组聚合操作
com.zxl.spark1_6.dataframe
SQLDemo:
从hdfs中读取数据,转化为DataFrame,执行简单操作com.zxl.spark1_6.elastic
ElasticSpark:
Elasticsearch是一个基于Lucene的实时地分布式搜索和分析引擎。
设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。com.zxl.spark1_6.flume
FlumePushWordCount:
flume向spark发送数据
添加三个jar包
- commons-lang3-3.3.2.jar
- scala-library-2.10.5.jar
- spark-streaming-flume-sink_2.10-1.6.1.jar
打成jar包上传到集群中运行
集群命令如下:
bin/spark-submit --master spark://node1:7077 --class com.zxl.spark1_6.flume.FlumePushWordCount /jar/____.jar 192.168.13.131 8888com.zxl.spark1_6.jedis
JedisConnectionPool:
获得Jedis连接,进行简单操作com.zxl.spark1_6.kafka
DirectKafkaWordCount:
Spark Streaming维护偏移量相关的信息,实现零数据丢失,保证不重复消费
采用直连的方式有一个缺点,就是不再向zookeeper中更新offset信息。
因此,在采用直连的方式消费kafka中的数据的时候,大体思路是首先获取保存在zookeeper中的偏移量信息,
根据偏移量信息去创建stream,消费数据后再把当前的偏移量写入zookeeper中
在2.0以前的版本中KafkaManager这个类是private权限,需要把它拷贝到项目里使用。
org.apache.spark.streaming.kafka
KafkaWordCount:
从集群中的kafka读取数据操作
运行时参数:
node1:2181,node2:2181,node3:2181 g1 test 2
其中g1为组名,此处随意写,test为topic名,kafka中的topic名要一致
集群命令(需先启动完成):
1.启动kafak
bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &
2.创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test
3.向topic中添加数据
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testcom.zxl.spark1_6.my_partitioner
UrlCountPartition:
自定义分区
数据格式(时间点 url地址),例如:
20160321101954 http://net.zxl.cn/net/video.shtml
处理成数据(k, v)
对于数据(k, v)
重写自己的 partitionercom.zxl.spark1_6.my_sort
CustomSort:自定义排序com.zxl.spark1_6.mysql
JdbcRDDDemo:简单连接数据库操作com.zxl.spark1_6.simple
AdvUrlCount:
读取文本内容,根据指定的学科, 取出点击量前三的
文本内容为某广告链接点击量,格式为:(时间点 某学科url链接)
举例:(20160321101957 http://net.zxl.cn/net/course.shtml)
IpDemo:
数据格式如下:
(1.0.1.0|1.0.3.255|16777472|16778239|亚洲|中国|福建|福州||电信|350100|China|CN|119.306239|26.075302)
根据ip地址转换为数字,从数据集中找出详细信息.
为了简化查找速率,采用二分查找.
UserLocation:
根据日志统计出每个用户在站点所呆时间最长的前2个的信息
日志内容格式为(手机号,时间点,基站站点,事件类型),事件类型为1时是进入基站,0是出基站。
1, 先根据"手机号_站点"为唯一标识, 算一次进站出站的时间, 返回(手机号_站点, 时间间隔)
2, 以"手机号_站点"为key, 统计每个站点的时间总和, ("手机号_站点", 时间总和)
3, ("手机号_站点", 时间总和) --> (手机号, 站点, 时间总和)
4, (手机号, 站点, 时间总和) --> groupBy().mapValues(以时间排序,取出前2个) --> (手机->((m,s,t)(m,s,t)))
WordCount:
简单WordCount实现
集群上执行示例,指定相关配置
bin/spark-submit --master spark://node1:7077 --class com.zxl.spark1_6.simple.WordCount --executor-memory 512m --total-executor-cores 2 /opt/soft/jar/hello-spark-1.0.jar hdfs://node1:9000/wc hdfs://node1:9000/outcom.zxl.spark1_6.streaming
LoggerLevels:
设置打印的log的级别
StateFulWordCount:
Spark Streaming累加器操作(updateStateByKey)
StreamingWordCount:
通过SparkStreaming简单实现WordCount
WindowOpts:
SparkStreaming窗口函数的实现org.apache.spark.streaming.kafka
KafkaManager:
SparkStreaming直连kafka获取数据,自己编写偏移量offset,用于spark2.0以前