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

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

1. 什么是引导操作

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

2. 编写安装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个引导操作步骤。集群创建好后,通过集群详情页的引导/软件配置:无异常来确定引导操作执行成功

目录
相关文章
|
消息中间件 Java 关系型数据库
实时计算 Flink版操作报错合集之从 PostgreSQL 读取数据并写入 Kafka 时,遇到 "initial slot snapshot too large" 的错误,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
1527 0
|
消息中间件 Kafka 数据处理
实时计算 Flink版操作报错合集之使用kafka connector时,报错:java.lang.ClassNotFoundException,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
消息中间件 Java Kafka
kafka 磁盘扩容与数据均衡操作代码
Kafka 的磁盘扩容和数据均衡是与保证Kafka集群可用性和性能相关的两个重要方面。在 Kafka 中,分区数据的存储和平衡对集群的运行至关重要。以下是有关Kafka磁盘扩容和数据均衡的一些建议
449 1
|
消息中间件 Kafka
KafKa脚本操作
KafKa脚本操作
263 1
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到报错:Apache Kafka Connect错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
841 5
|
消息中间件 Kafka 数据库连接
实时计算 Flink版操作报错合集之无法将消费到的偏移量提交到Kafka如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
588 3
|
网络安全 流计算 Python
实时计算 Flink版操作报错合集之Flink sql-client 针对kafka的protobuf格式数据建表,报错:java.lang.ClassNotFoundException 如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
667 1
|
消息中间件 关系型数据库 网络安全
实时计算 Flink版操作报错合集之Flink sql-client 针对kafka的protobuf格式数据建表,报错:java.lang.ClassNotFoundException 如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
604 1
|
消息中间件 数据采集 SQL
DataWorks操作报错合集之通过dataworks把表数据发送到kafka,表字段全是string类型如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
276 2
|
机器学习/深度学习 人工智能 算法
人工智能平台PAI 操作报错合集之pyalink 1.6.1StreamOperator.fromDataframe(out_df, out_schema_str)之后直接连kafka sink会报下面的错误如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。

热门文章

最新文章