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 ...
随机推荐
- js数据类型1
1. 分类(2大类) 基本(值)类型--5种 Number: 任意数值 String: 任意文本 Boolean: true/false undefined: undefined null: null ...
- C语言面试题 02.03. 删除中间节点
实现一种算法,删除单向链表中间的某个节点(除了第一个和最后一个节点,不一定是中间节点),假定你只能访问该节点. 示例: 输入:单向链表a->b->c->d->e->f中的 ...
- 小白月赛22 B : 树上子链
B:树上子链 考察点 : 树的直径 坑点 : long long, 是点权不是边权 一个点也算一条链 析题得侃: 关于树的直径 这道题考察的是树的直径,最好用树形DP来写,具体解释详见上述博客, 这道 ...
- java学习笔记之反射—反射和工厂模式
简单工厂模式又称为静态工厂方法模式,它是由工厂对象来决定要创建哪一种类的实例化对象. 静态工厂代码: class Factory{ private Factory() {} public static ...
- 安装配置oracle11gR2、client、plsql developer及学习
本文是一个目录,以后会持续更新 1,安装oracle11gR2 https://www.cnblogs.com/suterfo/p/10659208.html 2,安装oracle client及配置 ...
- 自定义React-redux
实现mini版react-redux 1. 理解react-redux模块 1). react-redux模块整体是一个对象模块 2). 包含2个重要属性: Provider和connect 3). ...
- 软件工程概论,java web项目
需要网站系统开发需要掌握的技术: 实施Java的WEB项目需要掌握的技术如:面向对象分析设计思想,设计模式和框架结构,XML语言,网页脚本语言,数据库,应用服务器,集成开发环境Java语言是完全面向对 ...
- Codeforce 567A - Lineland Mail
All cities of Lineland are located on the Ox coordinate axis. Thus, each city is associated with its ...
- [国家集训队] 拉拉队排练 - Manacher
用 Manacher 跑出回文串长,注意这里不需要偶数长度所以不需要对串做一些奇怪的处理 然后用前缀和搞一下,计算答案时跑快速幂即可 #include <bits/stdc++.h> us ...
- [SDOI2013] 直径 - 树形dp
对于给定的一棵树,其直径的长度是多少,以及有多少条边满足所有的直径都经过该边. Solution 有点意思 先随便求一条直径(两次DFS即可),不妨设为 \(s,t\),我们知道要求的这些边一定都在这 ...
