如何在E-MapReduce上使用引导操作安装kafka组件

Posted 阿里云云栖号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在E-MapReduce上使用引导操作安装kafka组件相关的知识,希望对你有一定的参考价值。

当前emr最新版本2.1.1没有kafka组件,需要额外安装。本文介绍如何用E-MapReduce引导操作来安装kafka_2.10-0.10.0.0版本。


什么是引导操作


关于E-MapReduce上引导操作的概念和使用方式请参考文档。


编写安装Kafka组件的脚本


在E-MapReduce中编写安装Kafka组件脚本主要有以下几步:


  1. 下载Kafka-0.10.0.0安装包

  2. 修改Kafka配置文件

  3. 创建Kafka Log目录

  4. 启动Kafka daemon进程


以下是安装Kafka组件的脚本简单示例:


#!/bin/bash

isMaster=`hostname --fqdn | grep emr-header`


if [ -n "$isMaster" ] ;then

    echo "Master Node does not need to start kafka!"

else

    echo "=> Download kafka package"

    wget http://emr-agent-pack.oss-cn-hangzhou-internal.aliyuncs.com/bootstrap/kafka/0-10-0-0/kafka_2.10-0.10.0.0.tgz

    tar xvf ./kafka_2.10-0.10.0.0.tgz -C /opt/apps/


    echo "=> Modify Kafka Configuration"

    echo "===> Replace broker id"

    WORKER_ID=`hostname | cut -d '-' -f 3 | cut -d '.' -f 1`

    sed -i "s/broker_id/$WORKER_ID/g" /opt/apps/kafka_2.10-0.10.0.0/config/server.properties


    echo "===> Replace zookeeper address"

    ZK_ADDR="emr-header-1:2181,emr-header-2:2181,emr-header-3:2181\/kafka-0.10.0.0"

    sed -i "s/zookeeper_address/$ZK_ADDR/g" /opt/apps/kafka_2.10-0.10.0.0/config/server.properties


    echo "===> Create kafka log dir"

    mkdir -p "/mnt/disk1/log/kafka-0.10.0.0"

    mkdir -p "/mnt/disk2/log/kafka-0.10.0.0"

    mkdir -p "/mnt/disk3/log/kafka-0.10.0.0"

    mkdir -p "/mnt/disk4/log/kafka-0.10.0.0"


    echo "===> Replace log dirs"

    KAFKA_LOG_DIR_STRING="\/mnt\/disk1\/log\/kafka-0.10.0.0,\/mnt\/disk2\/log\/kafka-0.10.0.0,\/mnt\/disk3\/log\/kafka-0.10.0.0,\/mnt\/disk4\/log\/kafka-0.10.0.0"

    sed -i "s/log_dirs/$KAFKA_LOG_DIR_STRING/g" /opt/apps/kafka_2.10-0.10.0.0/config/server.properties


    echo "===> Replace listeners"

    WORKER_HOSTNAME=`hostname`

    echo "listeners=PLAINTEXT://$WORKER_HOSTNAME:9092" >> /opt/apps/kafka_2.10-0.10.0.0/config/server.properties


    echo "===> Replace advertised listeners"

    echo "advertised.listeners=PLAINTEXT://$WORKER_HOSTNAME:9092" >> /opt/apps/kafka_2.10-0.10.0.0/config/server.properties


    echo "=> Start kafka daemon"

    /opt/apps/kafka_2.10-0.10.0.0/bin/kafka-server-start.sh -daemon /opt/apps/kafka_2.10-0.10.0.0/config/server.properties &


    echo "=> Clean" 

    rm -f ./kafka_2.10-0.10.0.0.tgz

fi 


上述脚本可以直接使用,安装的软件也是由E-MapReduce提供的。当然你可以基于这个脚本再修改,也可以使用自己的Kafka安装包,安装任意版本。


另外需要注意的是,这个脚本中只修改了几个必要的参数,自定义的调优参数需要你额外补充到脚本中,或者直接在安装包里预先修改好。


上传脚本


将上面的脚本上传到你自己的OSS中,可以通过OSS控制台上传,这里我们命名这个脚本为install_kafka.sh(任意你喜欢的名字都可以)。


安装


参照帮助文档,创建集群时点击添加引导操作,分别选择刚才上传的install_kafka.sh脚本,创建1个引导操作步骤。集群创建好后,通过集群详情页的引导/软件配置:无异常来确定引导操作执行成功。


-END-


云栖社区

ID:yunqiinsight

云计算丨互联网架构丨大数据丨机器学习丨运维

以上是关于如何在E-MapReduce上使用引导操作安装kafka组件的主要内容,如果未能解决你的问题,请参考以下文章

自建Hive数据仓库跨版本迁移到阿里云E-MapReduce

阿里云E-MapReduce探秘,快速构建可扩展的高性能大数据平台(技术部分)

操作系统引导文件如何工作?

E-MapReduce

如何删除双系统的其中一个操作系统

教你如何创建可引导的 macOS 安装器