我的大数据之路--kafka

由于三台集群的IP为静态IP,192.168.23.***。假如更换windows电脑的时候,本机ip已经改变,ping不同的情况下,virtualBox上不能再以桥接模式,要改为仅主机,这样的话虚拟机就连不上网,但是本机可以ping通,利用ftp来上传所需文件。
在这里插入图片描述
在管理—>主机网络管理器。
在这里插入图片描述
在这里插入图片描述

若要虚拟机联网,则要把虚拟机上的静态ip改成dhcp,再注释掉你的ip设置
在这里插入图片描述
再将网络改为桥接模式
在这里插入图片描述
在这里插入图片描述

centos查看ip

ip addr

ping通baidu

ping www.baidu.com
在这里插入图片描述
成功!!

kafka

1.0的话将目录改成1.0的目录即可

阅读顺序,理解kafka以及作用
1、http://orchome.com/3
2、http://orchome.com/5

下载以及配置文件和使用
https://blog.csdn.net/Poppy_Evan/article/details/79415460
或者
https://www.cnblogs.com/toov5/p/10293917.html

最终如下,其他配置不变 我的是kafka1.0

Master 主机
broker.id=0
host.name=Master
listeners=PLAINTEXT://192.168.23.200:9092
delete.topic.enable=true
log.dirs=/user/kafka-1.0/kafka-logs #事先创建好

Slave1主机
broker.id=1
host.name=Slave1
listeners=PLAINTEXT://192.168.23.201:9092
delete.topic.enable=true
log.dirs=/user/kafka-1.0/kafka-logs #事先创建好

Slave2主机
broker.id=2
host.name=Slave2
listeners=PLAINTEXT://192.168.23.202:9092
delete.topic.enable=true
log.dirs=/user/kafka-1.0/kafka-logs #事先创建好

先启动zookeeper
三台集群一shell启动

vi zookeeper_start.sh
-----------------------------------------------------
#!/bin/bash
 
ZOOKEEPER_HOME=/user/zookeeper-3.4.5    #你自己的安装目录
 
if [ $ZOOKEEPER_HOME != ""  ]; then
        ZOOCFG=$ZOOKEEPER_HOME/conf/zoo.cfg
        SLAVES=$(cat "$ZOOCFG" | sed '/^server/!d;s/^.*=//;s/:.*$//g;/^$/d')
        for s in $SLAVES
                do
                        echo "INFO:starting zookeeper on ${s}"
                        ssh $s "source /etc/profile;$ZOOKEEPER_HOME/bin/zkServer.sh start"  #这里为start
                        if [ $? != 0 ];
                                then
                                echo "Can not starting zookeeper server on host $s}"
                                exit 1
                        fi
                done
fi

三台集群一shell关闭

vi zookeeper_stop.sh
------------------------------------------------------------
#!/bin/bash

ZOOKEEPER_HOME=/user/zookeeper-3.4.5

if [ $ZOOKEEPER_HOME != ""  ]; then
        ZOOCFG=$ZOOKEEPER_HOME/conf/zoo.cfg
        SLAVES=$(cat "$ZOOCFG" | sed '/^server/!d;s/^.*=//;s/:.*$//g;/^$/d')
        for s in $SLAVES
                do
                        echo "INFO:starting zookeeper on ${s}"
                        ssh $s "source /etc/profile;$ZOOKEEPER_HOME/bin/zkServer.sh stop"  #这里为stop
                        if [ $? != 0 ];
                                then
                                echo "Can not starting zookeeper server on host $s}"
                                exit 1
                        fi
                done
fi

运行 sh zookeeper_start.sh

启动,用户组都为hadoop

bin/kafka-server-start.sh config/server.properties &

三台集群一shell启动
在/user/kafka_2.11-2.2.0/bin/下创建slave文件,输入集群的hostname
在这里插入图片描述

vi kafka_start.sh
-----------------------------------------------------
#!/bin/bash

cat /user/kafka_2.11-2.2.0/bin/slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile; /user/kafka_2.11-2.2.0/bin/kafka-server-start.sh /user/kafka_2.11-2.2.0/config/server.properties  >/dev/null 2>&1 &"
}&
wait
done

三台集群一shell关闭

vi kafka_stop.sh
---------------------------------------------------------
#!/bin/bash

cat /user/kafka_2.11-2.2.0/bin/slave | while read line
do
{
 echo $line
 ssh $line "source /etc/profile; jps |grep Kafka |cut -c 1-4 |xargs kill -s 9 "
}&
wait
done
使用

kafka中有一个被称为优先副本(preferred replicas)的概念。如果一个分区有3个副本,且这3个副本的优先级别分别为0,1,2,根据优先副本的概念,0会作为leader 。当0节点的broker挂掉时,会启动1这个节点broker当做leader。当0节点的broker再次启动后,会自动恢复为此partition的leader。不会导致负载不均衡和资源浪费,这就是leader的均衡机制。
在配置文件conf/ server.properties中配置开启(默认就是开启):auto.leader.rebalance.enable true

  1. 创建一个名为“test”的Topic,只有一个分区和一个备份,在分区 注意,创建主题时 主题名不建议使用".“和”_"字符。
 bin/kafka-topics.sh --create --zookeeper Master:2181 --replication-factor 1 --partitions 1 --topic test
  1. 查看已创建的topic信息,一开始就有一个帮你创建好的了,topic2:
bin/kafka-topics.sh --list --zookeeper Master:2181

在这里插入图片描述
3. 发送消息,这里的不能用localhost,在Master主机上

bin/kafka-console-producer.sh --broker-list Master:9092 --topic test

在这里插入图片描述
4. 消费消息,可在Slave1和Slave2上

bin/kafka-console-consumer.sh --bootstrap-server Slave1:9092 --topic test --from-beginning

在这里插入图片描述

  1. xshell可能会出现按退格键出现^H ^H ^H ^H的问题
    在这里插入图片描述
    解决办法:
    文件→属性→终端→键盘,
    把delete和backspace序列改为 ASCII 127即可。
    在这里插入图片描述
  2. 同是一个集群。互通的 ,只是消息存放的地方有别而已。
    继续创建topic,存放到三个broker:
bin/kafka-topics.sh --create --zookeeper Master:2181 --replication-factor 1 --partitions 3 --topic my-test-topic

  1. 查看主题?运行命令“describe topics”,看所有主题
 bin/kafka-topics.sh --describe --zookeeper Master:2181 

  1. 查看物理路径
ll kafka-logs/ | grep  my-test-topic
  1. 删除主题
    https://blog.csdn.net/belalds/article/details/80575751

出现Bug,之前的是2.2出现的bug,假如1.0出现了也一样

Exiting Kafka. (kafka.server.KafkaServerStartable)

解决办法
vi /user/kafka_2.11-2.2.0/config/server.properties

将对应的log.dir 的目录创建好,集群中的每个log.dir 目录改成不同的目录

Master
在这里插入图片描述

Slave1
在这里插入图片描述
Salve2
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值