Spark对接Kafka、HBase
本项目是为网站日志流量分析做的基础:网站日志流量分析系统,Kafka、HBase集群的搭建可参考:使用Docker搭建Spark集群(用于实现网站流量实时分析模块),里面有关于该搭建过程
本次对接Kafka及HBase是基于使用Docker搭建Spark集群(用于实现网站流量实时分析模块)搭建的6个Docker容器来实现的对接。
代码地址:https://github.com/Simple-Coder/sparkstreaming-demo
一、SparkStreaming整合Kafka
1、maven代码
2、启动测试
2.1启动3个kafka并测试
生产端消息如下:
接收到的消息如下:
2.2spark提交jar任务,SparkStreaming消费Kafka消息
console-producer生产消息,spartkStreaming主动拉取消息,console-consumer也能收到消息,结果如下:
console-consumer接收到的消息如下:
至此、Spark对接Kafka完成
3、问题总结
KafkaUtils的选择,由于maven中央库只有1.6.3版本的spark-streaming-kafka,其他版本的spark-streaming-kafka-***的api调用个人不习惯,还是停留在之前的api,所以这可能是导致以下问题的所在,不过还好问题解决
①ClassNotFoundException: org.apache.kafka.common.utils.Utils:上传kafka-clients-0.8.2.0.jar至spark的jars目录
②java.lang.NoClassDefFoundError:org/apache/spark/streaming/kafka/KafkaUtils :上传kafka_2.11-0.8.2.1.jar、spark-streaming-kafka_2.11-1.6.3.jar至Spark的jars目录
③java.lang.NoClassDefFoundError:org/apache/spark/logging:开头maven结构图中,将工程jar上传至spark的jars目录
④NoClassDefFoundError: org/I0Itec/zkclient/serialize/ZkSerializer:上传zkclient-0.11.jar至spark的jars目录
二、SparkStreaming整合HBase
1、读取HBase表
1.1 scala代码
1.2 提交jar任务测试
由于是docker容器搭建的集群,本地不容易测试,只好提交jar至docker容器
提交任务截图如下:
HBase表t2数据如下:
至此scala读取HBase数据成功,期间还是同样的问题,缺少关于HBase的jar,将maven依赖的HBase全部上传至Spark的jars目录下即可。
2、写入HBase表
2.1 scala代码
2.2 提交jar任务至spark测试
提交jar任务如下:
HBase命令行查看如下:
至此、spark写入hbase成功。
3、过滤器
随即的返回row的数据,chance取值为0到1.0,如果<0则为空,如果>1则包含所有的行。
3.1 scala代码
3.2 提交jar至spark测试
第一次如下:
第二次如下:
至此、spark对接kafka及HBase完成,欢迎各位读者指正、交流~
Spark对接Kafka、HBase的更多相关文章
- 大牛博客!Spark / Hadoop / Kafka / HBase / Storm
在这里,非常感谢下面的著名大牛们,一路的帮助和学习,给予了我很大的动力! 有了Hadoop,再次有了Spark,一次又一次,一晚又一晚的努力相伴! HBase简介(很好的梳理资料) 1. 博客主页:h ...
- spark streaming 对接kafka记录
spark streaming 对接kafka 有两种方式: 参考: http://group.jobbole.com/15559/ http://blog.csdn.net/kwu_ganymede ...
- kerberos环境下spark消费kafka写入到Hbase
一.准备环境: 创建Kafka Topic和HBase表 1. 在kerberos环境下创建Kafka Topic 1.1 因为kafka默认使用的协议为PLAINTEXT,在kerberos环境下需 ...
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
- Spark Streaming+Kafka
Spark Streaming+Kafka 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端, ...
- spark与kafka集成进行实时 nginx代理 这种sdk埋点 原生日志实时解析 处理
日志格式202.108.16.254^A1546795482.600^A/cntv.gif?appId=3&areaId=8213&srcContId=2535575&area ...
- Spark踩坑记:Spark Streaming+kafka应用及调优
前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark streaming从k ...
- 4、spark streaming+kafka
一.Receiver模式 1. receiver模式原理图 在SparkStreaming程序运行起来后,Executor中会有receiver tasks接收kafka推送过来的数据.数据会被持久化 ...
- spark streaming kafka example
// scalastyle:off println package org.apache.spark.examples.streaming import kafka.serializer.String ...
随机推荐
- React Hooks 笔记1
useState const [state, setSate] = useState(initialState) 特征: setState 标识稳定,组件重新渲染时不会变化,useState 返回的第 ...
- 用texarea存储数据,查询数据库后原样显示在jsp中,包括空格和回车换行
用texarea存储数据,查询数据库后原样显示在jsp中,包括空格和回车换行
- 题解【AcWing272】最长公共上升子序列
题面 一道线性 DP 好题. 设 \(dp_{i,j}\) 表示在所有 \(a_{1\dots i}\),\(b_{1\dots j}\) 的子序列中,以 \(b_j\) 结尾的最长公共上升子序列的最 ...
- LeetCodeTwo Sum IV 树的遍历+Hash大法好
题意 给定一颗二叉搜索树,返回是否存在两个节点的值之和为给定值K. 思路 同Two Sum.使用Hash表解决.只是要写个树的遍历而已,选取DFS. 源码 class Solution { publi ...
- tensorflow expand_dims和squeeze
有时我们会碰到升维或降维的需求,比如现在有一个图像样本,形状是 [height, width, channels],我们需要把它输入到已经训练好的模型中做分类,而模型定义的输入变量是一个batch,即 ...
- 深入浅出聊一聊Docker
网易云信IM私有化部分用到Docker技术,今天我们就深入浅出来聊聊Docker. Docker是什么? Docker是一个工具,能把应用打包部署于container里,这里可以把container看 ...
- Codeforce 474A - Keyboard
Our good friend Mole is trying to code a big message. He is typing on an unusual keyboard with chara ...
- Codeforces Round #617 (Div. 3) 题解
又是隔了一年才来补题的我 A.B水题就不用说了 C - Yet Another Walking Robot C题我居然卡了一会,最后决定用map水,结果出来看了看题解,居然真的是map...没想到会出 ...
- SVM-支持向量机(三)SVM回归与原理
SVM回归 我们之前提到过,SVM算法功能非常强大:不仅支持线性与非线性的分类,也支持线性与非线性回归.它的主要思想是逆转目标:在分类问题中,是要在两个类别中拟合最大可能的街道(间隔),同时限制间隔侵 ...
- vue页面加载前显示{{代码}}的原因及解决办法
进入正题,简单说说自己对html中出现{{}}的原因及解决办法: 这样写的话,就会出现{{}}一闪的情况: 原因:html的加载顺序: 解析html结构 -> 加载外部脚本和样式表文件 -> ...