大数据关于Kafka的进一步理解

Posted 多弗朗明哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据关于Kafka的进一步理解相关的知识,希望对你有一定的参考价值。

前置:

文件host

192.168.11.13
192.168.11.14
192.168.11.30

 

脚本init_kafka.sh

#!/bin/bash
source /etc/profile
if [ `whoami` != "root" ];then
    echo " only root can run me"
    exit 1
fi 
basepath=$(cd `dirname $0`; pwd)
cd $basepath

for host in `cat $basepath/host`;
do 
    sshp $host "useradd kafka"
    sshp $host "chown -R kafka:kafka /opt/kafka_2.11-0.8.2.2"
    sshp $host "mkdir  /data/kafka-log"
    sshp $host "mkdir  /data1/kafka-log"
    
    sshp $host "chown -R kafka:kafka /data/kafka-log"
    sshp $host "chown -R kafka:kafka /data1/kafka-log"
    echo "$host done"
done 
echo "done"

获取新增服务器host文件,迭代循环每个host服务器,分别新增一个kafka用户,然后将该服务器上的kafka安装文件夹修改所属权限为kafka用户,然后创建kafka-log的日志文件,分别放在/data和/data1下,然后修改kafka-log日志文件的所属权限为kafka用户。

总结起来就干了2个事:在新增的服务器节点上新增kafka用户并将kafka安装文件夹和日志文件夹的权限改为kafka用户。

 

脚本install_kafka.sh

#!/bin/bash
source /etc/profile
if [ `whoami` != "root" ];then
    echo " only root can run me"
    exit 1
fi 
basepath=$(cd `dirname $0`; pwd)
cd $basepath
kafka_tar=/opt/kafka_2.11-0.8.2.2.tgz
kafka_conf_dir=/opt/kafka_2.11-0.8.2.2/config
brokerid=101
for host in `cat $basepath/host`;
do
    echo $brokerid
    scpp $kafka_tar $host:/opt
    sshp $host "cd /opt;tar -zxf kafka_2.11-0.8.2.2.tgz"
    # 发送配置文件
    scpp $kafka_conf_dir/* $host:$kafka_conf_dir/
    # 修改broker.id
    sshp $host "sed -i ‘s/broker.id=87/broker.id=$brokerid/g‘ /opt/kafka_2.11-0.8.2.2/config/server.properties"
    # 修改 hostname
    sshp $host "sed -i ‘s/host.name=192.168.11.87/host.name=$host/g‘ /opt/kafka_2.11-0.8.2.2/config/server.properties"
    brokerid=$(($brokerid+1))
    echo "$host done"
done
echo ‘done‘

将该服务器下的kafka安装文件tar包复制到新增服务器的/opt下并解压,将kafka配置文件复制到服务器的配置文件夹下,修改101为host里面第一个ip的kafka的brokerid,并随着循环host而将brokerid数值+1,修改host的第一个ip为hostname,并随着循环host而将其他host的ip改为hostname。

总结起来就干了3个事:在新增的服务器节点上新增配置文件,并修改其中的brokerid和hostname为指定值

 

 

脚本remote_start_kafka.sh

#!/bin/bash
source /etc/profile
basepath=$(cd `dirname $0`; pwd)
cd $basepath

host=$1

scpp start_kafka.sh $host:/tmp/
scpp start.sh $host:/tmp/
sshp $host "sh /tmp/start.sh"

将start_kafka.sh和start.sh这个2个脚本复制到新增服务器的临时文件夹里,然后执行新增服务器上的start.sh脚本

总结起来就干了2个事:复制执行脚本到新增服务器上并执行其中的start.sh脚本

 

脚本start_all.sh

#!/bin/bash

source /etc/profile
basepath=$(cd `dirname $0`; pwd)
cd $basepath
for host in `cat $basepath/host`
do
    echo $host
    sh remote_start_kafka.sh $host
    echo "$host done"
done

循环执行,在host新增服务器里执行脚本remote_start_kafka.sh,并传递循环host列表的ip

总结起来就1个事:执行start_all.sh,启动全部的新增服务器的kafka服务

 

 

 

1.JMX的作用

 

以上是关于大数据关于Kafka的进一步理解的主要内容,如果未能解决你的问题,请参考以下文章

2021年大数据Kafka:❤️Kafka的java API编写❤️

Kafka-文件管理

kafka权威指南

Kafka 面试连环炮, 看看你能撑到哪一步?

深入理解分布式系统kafka知识点

大数据数据仓库-基于大数据体系构建数据仓库(Hive,Flume,Kafka,Azkaban,Oozie,SparkSQL)