从零开始搭建CDH-第十四章

一、Kafka安装

首先我们按照第七章的命令启动CM页面,然后我们开始安装Kafka服务。按照图中所示操作即可。

选择Kafka服务,点击继续。

将第一个设置为3台机器。

滑倒下方将有颜色提示的那一部分改为图中所示,如果内存足够可以设置大一点。

等待安装。

二、创建topic

来到主机一使用cdh用户,执行以下命令创建topic

cd /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/kafka/bin ./kafka-topics.sh --create --topic wc-topic --partitions 1 --replication-factor 1 --zookeeper cdh01:2181

三、启动spark

继续在第一台机器使用cdh用户执行以下命令启动spark,如果内存够用可以直接spark-shell启动,内存有限采取以下方式:

复制代码
spark-shell \
  --master yarn \
  --deploy-mode client \
  --driver-memory 512m \
  --executor-memory 512m \
  --executor-cores 1 \
  --num-executors 2 \
  --conf spark.executor.memoryOverhead=128m \
  --packages org.apache.spark:spark-streaming-kafka-0-10_2.11:2.4.0

成功看到scale后,就进入Spark了,然后我们一次性复制以下内容并运行:

复制代码
import org.apache.kafka.common.serialization.StringDeserializer
import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.streaming.kafka010.{ConsumerStrategies, KafkaUtils, LocationStrategies}

// 使用已有的 SparkContext (sc) 创建 StreamingContext,批次间隔 3 秒
val ssc = new StreamingContext(sc, Seconds(3))

// Kafka 消费者配置
val kafkaParams = Map[String, Object](
  "bootstrap.servers" -> "cdh01:9092",
  "key.deserializer" -> classOf[StringDeserializer],
  "value.deserializer" -> classOf[StringDeserializer],
  "group.id" -> "spark-group",
  "auto.offset.reset" -> "latest",
  "enable.auto.commit" -> (false: java.lang.Boolean)
)

val topics = Set("wc-topic")   // 与第 1 步创建的 topic 名称一致

// 创建 Kafka Direct Stream
val stream = KafkaUtils.createDirectStream[String, String](
  ssc,
  LocationStrategies.PreferConsistent,
  ConsumerStrategies.Subscribe[String, String](topics, kafkaParams)
)

// 词频统计并打印
stream.map(_.value())
  .flatMap(_.split(" "))
  .map((_, 1))
  .reduceByKey(_ + _)
  .print()

// 启动流计算
ssc.start()
ssc.awaitTermination()

成功运行后我们会看到Time一直在输出,这是正常的,接下来我们在用Fineshell连接cdh01机器,在这一上面执行

复制代码
cd /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/kafka/bin/
./kafka-console-producer.sh --broker-list cdh01:9092 --topic test_topic

出现命令行可以输入后我们输入

复制代码
hello spark kafka hello

进行自动统计单词。

回车后我们回到一开始的主机,就可以看到打印的统计数据了

相关推荐
醉颜凉10 小时前
Kafka 与 RabbitMQ/RocketMQ 选型对比:场景匹配、性能基准与迁移成本
kafka·消息队列·rabbitmq·rocketmq·中间件选型
温暖小土12 小时前
CentOS 部署 Milvus 向量数据库完整指南
centos·ai编程·milvus·向量数据库
再写一行代码就下班13 小时前
linux sh脚本在windows修改导致无法使用解决方式
java·linux·centos
FYKJ_201013 小时前
django电影推荐系统55066-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
筑梦之路19 小时前
K8S yaml文件部署kafka集群(Kraft模式)——筑梦之路
容器·kafka·kubernetes
User_芊芊君子1 天前
数据库手记:从数据建模到 Spark 对接的实测记录
大数据·数据库·spark
筑梦之路1 天前
Kafka KRaft 模式 Kubernetes 部署手册(StatefulSet + apache/kafka 官方镜像)——筑梦之路
kafka·kubernetes·apache
计算机源码社1 天前
【27届大数据毕设】基于Spark的TikTok短视频属性分享与互动比率可视化分析系统 基于机器学习的TikTok短视频认证属性与互动效能关联分析
大数据·hadoop·python·机器学习·spark·毕业设计·课程设计
IT研究室1 天前
最新大数据毕业设计选题推荐-基于大数据的生活指数分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
Q26433650232 天前
【有源码】基于Spark的电商客户细分与盈利洞察分析系统-面向精准营销的电商客户细分模型构建与盈利能力可视化研究
大数据·hadoop·分布式·数据挖掘·数据分析·spark·毕业设计