大数据集群配置-kafka

Kafka组件部署

0.准备工作

  1. 配置主机名和ip
# master 查看ip
hostname master && bash
echo master > /etc/hostname
ip a
# slave1 查看ip
hostname master && bash
echo slave1 > /etc/hostname
ip a
# slave2 查看ip
hostname master && bash
echo slave2 > /etc/hostname
ip a
# 配置ip映射
vi /etc/hosts
# 例如,ip不代表你本机ip,记得更换
# 三台都需要配置hosts文件
192.168.10.3 master
192.168.10.4 slave1
192.168.10.5 slave2
  1. 配置免密
# 查看ssh进程
ps - ef | grep ssh
# master
# 生成密钥ssh-keygen -t rsa 一直回车
# 复制key文件ssh-copy-id 输入yes 输入密码
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
# slave1
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
# slave2
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

  1. 测试免密
ssh slave1
  1. 关闭防火墙
# master slave1 slave2
systemctl stop firewalld
systemctl disable firewalld
  1. 安装java
  • /root/.bashrc只对当前用户有效,/etc/profile是对全部用户有效
tar -zxvf /opt/software/jdk-8u161-linux-x64.tar.gz -C /usr/local/src
mv /usr/local/src/jdk1.8.0_65 /usr/local/src/java
vi /root/.bashrc
export JAVA_HOME=/usr/local/src/java
export PATH=$PATH:$JAVA_HOME/bin
scp -r /usr/local/src/java slave1:/usr/local/src
scp -r /usr/local/src/java slave2:/usr/local/src
scp /root/.bashrc slave1:/root
scp /root/.bashrc slave2:/root

# master
source /root/.bashrc
# slave1
source /root/.bashrc
# slave2
source /root/.bashrc
软件名称软件包名
Zookeeperzookeeper-3.4.8.tar.gz
Kafkakafka_2.11-1.0.0.tgz
jdkjdk-8u65-linux-x64.tar.gz
CentOSCentOS 7.4(mini 英文版本)

1.安装zookeeper 并配置 启动

  • 安装过了不用安装!!!!

  • 需安装 Zookeeper 组件具体要求同 Zookeeper 任务要求

  1. 解压安装包到指定目录
tar -zxvf /opt/software/zookeeper-3.4.8.tar.gz -C /usr/local/src
  1. 改名
cd /usr/local/src/
mv zookeeper-3.4.8 zookeeper
  1. 修改zoo.cfg配置文件
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
clientPort=2181
dataDir=/usr/local/src/zookeeper/data
dataLogDir=/usr/local/src/zookeeper/logs
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
  1. 创建data和logs目录
mkdir -p /usr/local/src/zookeeper/{data,logs}
  1. 创建myid文件
echo 1 > /usr/local/src/zookeeper/data/myid
  1. 配置环境zookeeper变量
vi /root/.bashrc
export ZK_HOME=/usr/local/src/zookeeper
export PATH=$PATH:$ZK_HOME/bin
source /root/.bashrc
chown -R root:root usr/local/src/zookeeper
  1. 分发zookeeper和profile文件到其他集群
## master
scp -r /usr/local/src/zookeeper slave1:/usr/local/src
scp -r /usr/local/src/zookeeper slave2:/usr/local/src
scp /root/.bashrc slave1:/root
scp /root/.bashrc slave2:/root
  1. 更改slave1的myid文件
# slave1
echo 2 > /usr/local/src/zookeeper/data/myid
source /root/.bashrc
  1. 更改slave2的myid文件
# slave2
echo 3 > /usr/local/src/zookeeper/data/myid
source /root/.bashrc
  1. 进入zookeeper目录关闭防火墙并启动zookeeper
# master
cd /usr/local/src/zookeeper
zkServer.sh start
# slave1
cd /usr/local/src/zookeeper
zkServer.sh start
# slave2
cd /usr/local/src/zookeeper
zkServer.sh start
  1. 查看是否成功并截图保存结果
# master
zkServer.sh status
# slave1
zkServer.sh status
# slave2
zkServer.sh status

2.安装Kafka

  1. 解压 Kafka 安装包到“/usr/local/src”路径
tar -zxvf /opt/software/kafka_2.11-1.0.0.gz -C /usr/local/src
  1. 并修改解压后文件夹名为 kafka,截图并保存结果;并修改解压后文件夹名为 kafka
cd /usr/local/src
mv kafka_2.11-1.0.0 kafka
  1. 截图并保存结果;
ll

3.配置kafka环境变量

  1. 设置 Kafka 环境变量,并使环境变量只对当前 root 用户生效,截图并保存 结果;
vi /root/.bashrc
export KAFKA_HOME=/usr/local/src/kafka
export PATH=$PATH:$KAFKA_HOME/bin
# :wq! 保存退出并source
source /root/.bashrc

4. 修改kafka相应文件并截图保存

  1. 修改master并截图
# master
# /zookeeper 快速查找,n向下查找,N向上查找,查到后直接 i 进入编辑模式
vi kafka/config/server.properties
broker.id=0
zookeeper.connect=master:2181,slave1:2181,slave2:2181
  1. 分发
scp -r /usr/local/src/kafka slave1:/usr/local/src
scp -r /usr/local/src/kafka slave2:/usr/local/src
scp /root/.bashrc slave1:/root
scp /root/.bashrc slave2:/root
  1. 修改slave1 slave2并截图保存
# 修改slave1和slave2的broker.id
# slave1
vi /usr/local/src/kafka/config/server.properties
broker.id=1
#保存退出
source /root/.bashrc
# slave2
vi /usr/local/src/kafka/config/server.properties
broker.id=2
#保存退出
source /root/.bashrc

5.启动kafka并截图保存结果

# master
kafka-server-start.sh -daemon /usr/local/src/kafka/config/server.properties 
# slave1
kafka-server-start.sh /usr/local/src/kafka/config/server.properties
# slave2
kafka-server-start.sh /usr/local/src/kafka/config/server.properties

6.创建指定topic并截图保存结果

# --topic 后跟 topic的名字
kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --replication-factor 2 --topic hello --partitions 1

7.查看所有topic信息并截图保存结果

kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181

8.启动指定生产者(producer)并截图并保存结果;

# --topic 后面为tpoic的名字
kafka-console-producer.sh --broker-list master:9092,slave1:9091,slave2:9092 --topic hello

9. 启动消费者(consumer),并截图并保存结果

# --topic 后面为tpoic的名字
kafka-console-consumer.sh --bootstrap-server master:9092,slave1:9091,slave2:9092  --topic hello --from-beginning

10.测试生产者(producer),并截图并保存结果;

# producer随便输入点东西

11.测试消费者(consumer),并截图并保存结果。

# consumer可以看到输出
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spark Structured Streaming是一种基于Spark SQL引擎的流处理框架,它可以实现实时数据处理和分析。在使用Spark Structured Streaming进行大数据处理时,需要注意以下几点最佳实践: 1. 使用高可用性的集群:在使用Spark Structured Streaming时,需要保证集群的高可用性,以确保数据处理的稳定性和可靠性。 2. 选择合适的数据源:Spark Structured Streaming支持多种数据源,包括Kafka、Flume、HDFS等,需要根据实际情况选择合适的数据源。 3. 设计合理的数据处理流程:在设计数据处理流程时,需要考虑数据的实时性、处理效率和数据质量等因素,以确保数据处理的准确性和高效性。 4. 优化性能:在使用Spark Structured Streaming进行大数据处理时,需要优化性能,包括调整资源分配、调整并行度、使用缓存等方法,以提高数据处理的效率和速度。 5. 监控和调试:在使用Spark Structured Streaming进行大数据处理时,需要进行监控和调试,及时发现和解决问题,以确保数据处理的稳定性和可靠性。 ### 回答2: Spark Structured Streaming是一种用于实时流式数据处理的大数据最佳实践。它是Apache Spark的一部分,提供了一种简单而强大的方式来处理连续的数据流。 Spark Structured Streaming的实现原理基于Spark的弹性分布式数据集(RDD)模型,它将数据流视为一系列连续的批处理作业。这使得开发者能够使用Spark的强大功能进行实时数据分析和处理。 Spark Structured Streaming的关键特性包括: 1. 高级API:Structured Streaming提供了一种高级API,可以轻松地处理数据流。开发者只需编写一次数据处理逻辑,然后Spark会自动将其应用于连续的数据流。 2. 实时处理:Structured Streaming能够以低延迟处理数据流,提供近实时的结果。 3. 容错性:Structured Streaming具有Spark的容错机制,可以自动处理故障并继续处理数据流,确保数据不丢失。 4. 高吞吐量:Structured Streaming能够处理大规模的数据流,具有较高的吞吐量和扩展性。 5. 与其他Spark组件的集成:Structured Streaming可以与其他Spark组件(如Spark SQL和MLlib)无缝集成,从而可以方便地进行数据分析和机器学习任务。 在实践中,可以使用Spark Structured Streaming来解决许多实时数据处理的问题。例如,可以使用它进行实时日志分析、实时监测和预测、实时推荐和广告投放等。 总而言之,Spark Structured Streaming是一种强大且灵活的实时数据处理解决方案,适用于大规模的数据流处理场景。它提供了简单的API和高性能的处理能力,为开发者提供了处理实时数据流的最佳实践。 ### 回答3: 大数据最佳实践中,Spark的Structuring是一种优秀的实时处理框架,它针对流数据进行高效的处理和分析。StructStreaming提供了一种简单、易于使用的API来处理结构化数据流,并支持强大的时间窗口操作、累加器和支持容错的状态更新。 Spark StructStreaming的最佳实践包括以下几个方面: 1. 数据流处理:结构化流可以处理各种实时数据源,如Kafka、Flume等,并且能够处理高吞吐量和低延迟数据。在处理数据流时,可以使用规约、窗口操作等技术来实现实时的数据计算和聚合。 2. 内存优化:Spark StructStreaming可以将数据缓存到内存中以提高性能,并使用解析器和列式存储来最大限度地减少内存占用和I/O开销。此外,通过调整内存分配和堆外内存配置,可以进一步优化性能。 3. 容错性和数据一致性:StructStreaming提供了容错性和一致性保证,可以在节点故障时自动恢复数据处理,并确保最终输出的一致性。 4. 结构化数据查询:Spark StructStreaming支持基于SQL的查询语言,可以使用SQL语句对流数据进行查询和分析。此外,还可以使用DataFrame和DataSet API进行更高级的数据操作和转换。 5. 流式机器学习:StructStreaming可以与Spark的机器学习库集成,实现基于流数据的实时机器学习模型训练和预测。通过结合流式数据和机器学习算法,可以实现实时的数据分析和预测。 总而言之,Spark StructStreamin的最佳实践是基于结构化数据流的实时处理和分析。它提供了简单易用的API和强大的功能,可以应用于各种大数据场景,并提供高性能、容错性和一致性保证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厨 神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值