spark实现kafka流数据的操作

本次目标:

kafka的安装和配置

kafka测试

spark读取kafka数据

一、Kafka的安装和配置

上传:kafka_2.11-2.41.tgz

 将上传的文件放在/opt/apps下解压并改名为kafka (注:一般改名是包名+版本,便于区分)

备份kafka目录下的config目录下的server.properties  (安全起见,也可以不备份)

编辑server.properties添加 listener地址、zookeeper地址、logs目录

二、Kafka测试  (因为并没有添加环境变量,所以最保险的办法是切换到/opt/apps/kafka/开启进程,分别在4个终端中运行,每个进程都不能中断)

终端1:启动zookeeper

终端2:启动kafka服务

终端3:创建kafka主题,并开启主题写入数据

终端4:kafka的测试

三、Spark读取kafka数据

上传图中两个文件到spark/jars/kafka/下 

修改spark/conf/spark-env.sh 在$SPARK_DIST_CLASSPATH变量中加入

在vm虚拟机打开code,编译程序,其中使用的主题是bigdata3 (亦可以再创建一个)

图中的线程必须要有2个以上才可以运行,AppName不指定

执行程序

出现错误:Exception in thread “streaming-start”java.lang.NoClassDefFoundError:org/apache/spark/internal/Logging$class

提示没有这个类,原因是spark-core 的版本问题,才会出现兼容,以上安装的时候用的是 spark-core_2.11-2.4.1.jar,这里需要更换这个包

解决方法:

下载spark-core_2.11-2.4.7.jar,并将该文件拷贝到spark/jars/kafka/

在终端3中写入数据

就可以看到流输出

若拷贝后还是会出现错误,可以试试加上spark-core版本运行,原因是kafka目录下存在着两个不同版本的spark-core。(提醒:不能将低版本的删除,否则会出错)

执行语句:spark-submit --jars spark-core_2.11-2.4.7.jar spark_streaming_kafka.py

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值