云服务器内容精选

  • 如何开发Flume第三方插件 安装Flume客户端,如安装目录为“/opt/flumeclient”。 将自主研发的代码打成jar包。 建立插件目录布局。 进入“Flume客户端安装目录/fusionInsight-flume-*/plugins.d”路径下,使用以下命令建立目录,可根据实际业务进行命名,无固定名称: cd /opt/flumeclient/fusioninsight-flume-1.9.0/plugins.d mkdir thirdPlugin cd thirdPlugin mkdir lib libext native 显示结果如下: 将第三方jar包放入“Flume客户端安装目录/fusionInsight-flume-*/plugins.d/thirdPlugin/lib”路径下,如果该jar包依赖其他jar包,则将所依赖的jar包放入“Flume客户端安装目录/fusionInsight-flume-*/plugins.d/thirdPlugin/libext”文件夹中,“Flume客户端安装目录/fusionInsight-flume-*/plugins.d/thirdPlugin/native”放置本地库文件。 配置“Flume客户端安装目录/fusionInsight-flume-*/conf/properties.properties”文件。 具体properties.properties参数配置方法,参考配置Flume非加密传输数据采集任务和配置Flume加密传输数据采集任务对应典型场景中properties.properties文件参数列表的说明。 父主题: Flume常见问题
  • 使用Flume客户端加密工具 安装Flume客户端后,配置文件的部分参数可能需要填写加密的字符,Flume客户端中提供了加密工具。 安装Flume客户端。 登录安装Flume客户端的节点,并切换到客户端安装目录。例如“/opt/FlumeClient”。 切换到以下目录 cd fusioninsight-flume-Flume组件版本号/bin 执行以下命令,加密原始信息: ./genPwFile.sh 输入两次待加密信息。 执行以下命令,查看加密后的信息: cat password.property 如果加密参数是用于Flume Server,那么需要到相应的Flume Server所在节点执行加密。需要使用omm用户执行加密脚本进行加密。 加密路径为“/opt/Bigdata/ FusionInsight _Porter_XXX/install/FusionInsight-Flume-Flume组件版本号/flume/bin/genPwFile.sh”。其中XXX为产品的版本号。 父主题: Flume企业级能力增强
  • 查看Flume客户端日志 安装Flume客户端。 进入Flume客户端日志目录,默认为“/var/log/Bigdata”。 执行如下命令查看日志文件列表。 ls -lR flume-client-* 日志文件示例如下: flume-client-1/flume: total 7672 -rw-------. 1 root root 0 Sep 8 19:43 Flume-audit.log -rw-------. 1 root root 1562037 Sep 11 06:05 FlumeClient.2017-09-11_04-05-09.[1].log.zip -rw-------. 1 root root 6127274 Sep 11 14:47 FlumeClient.log -rw-------. 1 root root 2935 Sep 8 22:20 flume-root-20170908202009-pid72456-gc.log.0.current -rw-------. 1 root root 2935 Sep 8 22:27 flume-root-20170908202634-pid78789-gc.log.0.current -rw-------. 1 root root 4382 Sep 8 22:47 flume-root-20170908203137-pid84925-gc.log.0.current -rw-------. 1 root root 4390 Sep 8 23:46 flume-root-20170908204918-pid103920-gc.log.0.current -rw-------. 1 root root 3196 Sep 9 10:12 flume-root-20170908215351-pid44372-gc.log.0.current -rw-------. 1 root root 2935 Sep 9 10:13 flume-root-20170909101233-pid55119-gc.log.0.current -rw-------. 1 root root 6441 Sep 9 11:10 flume-root-20170909101631-pid59301-gc.log.0.current -rw-------. 1 root root 0 Sep 9 11:10 flume-root-20170909111009-pid119477-gc.log.0.current -rw-------. 1 root root 92896 Sep 11 13:24 flume-root-20170909111126-pid120689-gc.log.0.current -rw-------. 1 root root 5588 Sep 11 14:46 flume-root-20170911132445-pid42259-gc.log.0.current -rw-------. 1 root root 2576 Sep 11 13:24 prestartDetail.log -rw-------. 1 root root 3303 Sep 11 13:24 startDetail.log -rw-------. 1 root root 1253 Sep 11 13:24 stopDetail.log flume-client-1/monitor: total 8 -rw-------. 1 root root 141 Sep 8 19:43 flumeMonitorChecker.log -rw-------. 1 root root 2946 Sep 11 13:24 flumeMonitor.log 其中FlumeClient.log即为Flume客户端的运行日志。 父主题: Flume运维管理
  • 补充说明 Flume可靠性保障措施。 Source与Channel、Channel与Sink之间支持事务机制。 Sink Processor支持配置failover、load_balance机制。 例如load_balance示例如下: server.sinkgroups=g1 server.sinkgroups.g1.sinks=k1 k2 server.sinkgroups.g1.processor.type=load_balance server.sinkgroups.g1.processor.backoff=true server.sinkgroups.g1.processor.selector=random Flume多客户端聚合级联时的注意事项。 级联时需要走Avro或者Thrift协议进行级联。 聚合端存在多个节点时,连接配置尽量配置均衡,不要聚合到单节点上。 Flume客户端可以包含多个独立的数据流,即在一个配置文件properties.properties中配置多个Source、Channel、Sink。这些组件可以链接以形成多个流。 例如在一个配置中配置两个数据流,示例如下: server.sources = source1 source2 server.sinks = sink1 sink2 server.channels = channel1 channel2 #dataflow1 server.sources.source1.channels = channel1 server.sinks.sink1.channel = channel1 #dataflow2 server.sources.source2.channels = channel2 server.sinks.sink2.channel = channel2
  • Flume模块介绍 Flume客户端/服务端由一个或多个Agent组成,而每个Agent是由Source、Channel、Sink三个模块组成,数据先进入Source然后传递到Channel,最后由Sink发送到下一个Agent或目的地(客户端外部)。各模块说明见表1。 表1 模块说明 名称 说明 Source Source负责接收数据或产生数据,并将数据批量放到一个或多个Channel。Source有两种类型:数据驱动和轮询。 典型的Source样例如下: 和系统集成并接收数据的Sources:Syslog、Netcat。 自动生成事件数据的Sources:Exec、SEQ。 用于Agent和Agent之间通信的IPC Sources:Avro。 Source必须至少和一个Channel关联。 Channel Channel位于Source和Sink之间,用于缓存Source传递的数据,当Sink成功将数据发送到下一跳的Channel或最终数据处理端,缓存数据将自动从Channel移除。 不同类型的Channel提供的持久化水平也是不一样的: Memory Channel:非持久化 File Channel:基于预写式日志(Write-Ahead Logging,简称WAL)的持久化实现 JDBC Channel:基于嵌入Database的持久化实现 Channel支持事务特性,可保证简易的顺序操作,同时可以配合任意数量的Source和Sink共同工作。 Sink Sink负责将数据传输到下一跳或最终目的,成功完成后将数据从Channel移除。 典型的Sink样例如下: 存储数据到最终目的终端Sink,比如:HDFS、Kafka 自动消耗的Sinks,比如:Null Sink 用于Agent和Agent之间通信的IPC sink:Avro Sink必须关联到一个Channel。 每个Flume的Agent可以配置多个Source、Channel、Sink模块,即一个Source将数据发送给多个Channel,再由多个Sink发送到下一个Agent或目的地。 Flume支持多个Flume配置级联,即上一个Agent的Sink将数据再发送给另一个Agent的Source。
  • 如何开发Flume第三方插件 该操作指导用户进行第三方插件二次开发。 本章节适用于 MRS 3.x及之后版本。 将自主研发的代码打成jar包。 安装Flume服务端或者客户端,如安装目录为“/opt/flumeclient”。 建立插件目录布局。 进入“Flume客户端安装目录/fusionInsight-flume-*/plugins.d”路径下,使用以下命令建立目录,可根据实际业务进行命名,无固定名称: cd /opt/flumeclient/fusioninsight-flume-1.9.0/plugins.d mkdir thirdPlugin cd thirdPlugin mkdir lib libext native 显示结果如下: 将第三方jar包放入“Flume客户端安装目录/fusionInsight-flume-*/plugins.d/thirdPlugin/lib”路径下,若该jar包依赖其他jar包,则将所依赖的jar包放入“Flume客户端安装目录/fusionInsight-flume-*/plugins.d/thirdPlugin/libext”文件夹中,“Flume客户端安装目录/fusionInsight-flume-*/plugins.d/thirdPlugin/native”放置本地库文件。 配置“Flume客户端安装目录/fusionInsight-flume-*/conf/properties.properties”文件。 具体properties.properties参数配置方法,参考配置Flume非加密传输数据采集任务和配置Flume加密传输数据采集任务对应典型场景中properties.properties文件参数列表的说明。 父主题: Flume常见问题
  • 常用Channel配置 Memory Channel Memory Channel使用内存作为缓存区,Events存放在内存队列中。常用配置如表6所示: 图6 Memory Channel 表6 Memory Channel常用配置 参数 默认值 描述 type - 类型,需配置为“memory”。仅可在“properties.properties”文件中配置。 capacity 10000 缓存在Channel中的最大Event数。 transactionCapacity 1000 每次存取的最大Event数。 channelfullcount 10 Channel full次数,达到该次数后发送告警。 File Channel File Channel使用本地磁盘作为缓存区,Events存放在设置的“dataDirs”配置项文件夹中。常用配置如表7所示: 图7 File Channel 表7 File Channel常用配置 参数 默认值 描述 type - 类型,需配置为“file”。仅可在“properties.properties”文件中配置。 checkpointDir ${BIGDATA_DATA_HOME}/flume/checkpoint 检查点存放路径。 dataDirs ${BIGDATA_DATA_HOME}/flume/data 数据缓存路径,设置多个路径可提升性能,中间用逗号分开。 maxFileSize 2146435071 单个缓存文件的最大值,单位:字节。 minimumRequiredSpace 524288000 缓冲区空闲空间最小值,单位:字节。 capacity 1000000 缓存在Channel中的最大Event数。 transactionCapacity 10000 每次存取的最大Event数。 channelfullcount 10 Channel full次数,达到该次数后发送告警。 Kafka Channel Kafka Channel使用kafka集群缓存数据,Kafka提供高可用、多副本,以防Flume或Kafka Broker崩溃,Channel中的数据会立即被Sink消费。常用配置如表 10 Kafka Channel 常用配置所示: 图8 Kafka Channel 表8 Kafka Channel常用配置 参数 默认值 描述 type - 类型,需配置为 “org.apache.flume.channel.kafka.KafkaChannel”.。 仅可在“properties.properties”文件中配置。 kafka.bootstrap.servers - kafka broker列表。 kafka.topic flume-channel Channel用来缓存数据的topic。 kafka.consumer.group.id flume Kafka消费者组ID。 parseAsFlumeEvent true 是否解析为Flume event。 migrateZookeeperOffsets true 当Kafka没有存储offset时,是否从ZooKeeper中查找,并提交到Kafka。 kafka.consumer.auto.offset.reset latest 当没有offset记录时,从指定的位置消费数据。 kafka.producer.security.protocol SASL_PLAINTEXT Kafka生产者安全协议。 kafka.consumer.security.protocol SASL_PLAINTEXT Kafka消费者安全协议。
  • 常用Sink配置 HDFS Sink HDFS Sink将数据写入HDFS。常用配置如表9所示: 图9 HDFS Sink 表9 HDFS Sink常用配置 参数 默认值 描述 channel - 与之相连的Channel。仅可在“properties.properties”文件中配置。 type hdfs 类型,需配置为“hdfs”。仅可在“properties.properties”文件中配置。 monTime 0(不开启) 线程监控阈值,更新时间大于阈值时重新启动该Sink,单位:秒。 hdfs.path - HDFS路径。 hdfs.inUseSuffix .tmp 正在写入的HDFS文件后缀。 hdfs.rollInterval 30 按时间滚动文件,单位:秒,同时需将“hdfs.fileCloseByEndEvent”设置为“false”。 hdfs.rollSize 1024 按大小滚动文件,单位:字节,同时需将“hdfs.fileCloseByEndEvent”设置为“false”。 hdfs.rollCount 10 按Event个数滚动文件,同时需将“hdfs.fileCloseByEndEvent”设置为“false”。 hdfs.idleTimeout 0 自动关闭空闲文件超时时间,单位:秒。 hdfs.batchSize 1000 每次写入HDFS的Event个数。 hdfs.kerberosPrincipal - 认证HDFS的Kerberos用户名,未启用Kerberos认证集群不配置。 hdfs.kerberosKeytab - 认证HDFS的Kerberos keytab路径,未启用Kerberos认证集群不配置 hdfs.fileCloseByEndEvent true 收到最后一个Event时是否关闭文件。 hdfs.batchCallTimeout - 每次写入HDFS超时控制时间,单位:毫秒。 当不配置此参数时,对每个Event写入HDFS进行超时控制。当“hdfs.batchSize”大于0时,配置此参数可以提升写入HDFS性能。 说明: “hdfs.batchCallTimeout”设置多长时间需要考虑“hdfs.batchSize”的大小,“hdfs.batchSize”越大,“hdfs.batchCallTimeout”也要调整更长时间,设置过短时间容易导致数据写入HDFS失败。 serializer.appendNewline true 将一个Event写入HDFS后是否追加换行符('\n'),如果追加该换行符,该换行符所占用的数据量指标不会被HDFS Sink统计。 Avro Sink Avro Sink把events转化为Avro events并发送到配置的主机的监测端口。常用配置如表10所示: 图10 Avro Sink 表10 Avro Sink常用配置 参数 默认值 描述 channel - 与之相连的Channel。仅可在“properties.properties”文件中配置。 type - 类型,需配置为“avro”。仅可在“properties.properties”文件中配置。 hostname - 绑定关联的主机名或IP地址。 port - 监测端口。 batch-size 1000 批次发送的Event个数。 ssl false 是否使用SSL加密。 truststore-type JKS Java信任库类型。 truststore - Java信任库文件。 truststore-password - Java信任库密码。 keystore-type JKS 密钥存储类型。 keystore - 密钥存储文件。 keystore-password - 密钥存储密码 HBase Sink HBase Sink将数据写入到HBase中。常用配置如表11所示: 图11 HBase Sink 表11 HBase Sink常用配置 参数 默认值 描述 channel - 与之相连的Channel。仅可在“properties.properties”文件中配置。 type - 类型,需配置为“hbase”。仅可在“properties.properties”文件中配置。 table - HBase表名称。 monTime 0(不开启) 线程监控阈值,更新时间大于阈值时重新启动该Sink,单位:秒。 columnFamily - HBase列族名称。 batchSize 1000 每次写入HBase的Event个数。 kerberosPrincipal - 认证HBase的Kerberos用户名,未启用Kerberos认证集群不配置。 kerberosKeytab - 认证HBase的Kerberos keytab路径,未启用Kerberos认证集群不配置。 Kafka Sink Kafka Sink将数据写入到Kafka中。常用配置如表12所示: 图12 Kafka Sink 表12 Kafka Sink常用配置 参数 默认值 描述 channel - 与之相连的Channel。仅可在“properties.properties”文件中配置。 type - 类型,需配置为“org.apache.flume.sink.kafka.KafkaSink”。 仅可在“properties.properties”文件中配置。 kafka.bootstrap.servers - Kafkabrokers列表,多个用英文逗号分隔。 monTime 0(不开启) 线程监控阈值,更新时间大于阈值时重新启动该Sink,单位:秒。 kafka.topic default-flume-topic 数据写入的topic。 flumeBatchSize 1000 每次写入Kafka的Event个数。 kafka.security.protocol SASL_PLAINTEXT Kafka安全协议,未启用Kerberos认证集群下须配置为“PLAINTEXT”。 kafka.kerberos.domain.name - Kafka Domain名称。安全集群必填。仅可在“properties.properties”文件中配置。 Other Kafka Producer Properties - 其他Kafka配置,可以接受任意Kafka支持的生产参数配置,配置需要加前缀“.kafka”。 仅可在“properties.properties”文件中配置。
  • 操作步骤 根据前提条件,创建一个满足要求的弹性云服务器。 登录集群详情页面,选择“组件管理”。 若集群详情页面没有“组件管理”页签,请先完成 IAM 用户同步(在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步)。 单击“下载客户端”。 在“客户端类型”选择“完整客户端”。 在“下载路径”选择“远端主机”。 将“主机IP”设置为E CS 的IP地址,设置“主机端口”为“22”,并将“保存路径”设置为“/tmp”。 如果使用SSH登录ECS的默认端口“22”被修改,请将“主机端口”设置为新端口。 “保存路径”最多可以包含256个字符。 “登录用户”设置为“root”。 如果使用其他用户,请确保该用户对保存目录拥有读取、写入和执行权限。 在“登录方式”选择“密码”或“SSH私钥”。 密码:输入创建集群时设置的root用户密码。 SSH私钥:选择并上传创建集群时使用的密钥文件。 单击“确定”开始生成客户端文件。 若界面显示以下提示信息表示客户端包已经成功保存。 下载客户端文件到远端主机成功。 若界面显示以下提示信息,请检查用户名密码及远端主机的安全组配置,确保用户名密码正确,及远端主机的安全组已增加SSH(22)端口的入方向规则。然后从3执行重新下载客户端。 连接到服务器失败,请检查网络连接或参数设置。 图1 下载客户端 选择“Flume”服务,单击“实例”,查看任意一个Flume实例和两个MonitorServer实例的“业务IP”。 使用VNC方式,登录弹性云服务器。参见远程登录(VNC方式)。 所有镜像均支持Cloud-init特性。Cloud-init预配置的用户名“root”,密码为创建集群时设置的密码。首次登录建议修改。 在弹性云服务器,切换到root用户,并将安装包复制到目录“/opt”。 sudo su - root cp /tmp/MRS_Flume_Client.tar /opt 在“/opt”目录执行以下命令,解压压缩包获取校验文件与客户端配置包。 tar -xvf MRS_Flume_Client.tar 执行以下命令,校验文件包。 sha256sum -c MRS_Flume_ClientConfig.tar.sha256 界面显示如下信息,表明文件包校验成功: MRS_Flume_ClientConfig.tar: OK 执行以下命令,解压“MRS_Flume_ClientConfig.tar”。 tar -xvf MRS_Flume_ClientConfig.tar 执行以下命令,安装客户端运行环境到新的目录,例如“/opt/Flumeenv”。安装时自动生成目录。 sh /opt/MRS_Flume_ClientConfig/install.sh /opt/Flumeenv 查看安装输出信息,如有以下结果表示客户端运行环境安装成功: Components client installation is complete. 执行以下命令,配置环境变量。 source /opt/Flumeenv/bigdata_env 执行以下命令,解压Flume客户端。 cd /opt/MRS_Flume_ClientConfig/Flume tar -xvf FusionInsight-Flume-1.6.0.tar.gz 执行以下命令,查看当前用户密码是否过期。 chage -l root “Password expires”时间早于当前则表示过期。此时需要修改密码,或执行chage -M -1 root设置密码为未过期状态。 执行以下命令,安装Flume客户端到新目录,例如“/opt/FlumeClient”。安装时自动生成目录。 sh /opt/MRS_Flume_ClientConfig/Flume/install.sh -d /opt/FlumeClient -f MonitorServer实例的业务IP地址 -c Flume配置文件路径 -l /var/log/ -e Flume的业务IP地址 -n Flume客户端名称 各参数说明如下: “-d”:表示Flume客户端安装路径。 “-f”:可选参数,表示两个MonitorServer角色的业务IP地址,中间用英文逗号分隔,若不设置则Flume客户端将不向MonitorServer发送告警信息,同时在MRS Manager界面上看不到该客户端的相关信息。 “-c”:可选参数,表示Flume客户端在安装后默认加载的配置文件“properties.properties”。如不添加参数,默认使用客户端安装目录的“fusioninsight-flume-1.6.0/conf/properties.properties”。客户端中配置文件为空白模板,根据业务需要修改后Flume客户端将自动加载。 “-l”:可选参数,表示日志目录,默认值为“/var/log/Bigdata”。 “-e”:可选参数,表示Flume实例的业务IP地址,主要用于接收客户端上报的监控指标信息。 “-n”:可选参数,表示自定义的Flume客户端的名称。 IBM的JDK不支持“-Xloggc”,需要修改“flume/conf/flume-env.sh”,将“-Xloggc”修改为“-Xverbosegclog”,若JDK为32位,“-Xmx”不能大于3.25GB。 “flume/conf/flume-env.sh”中,“-Xmx”默认为4GB。若客户端机器内存过小,可调整为512M甚至1GB。 例如执行:sh install.sh -d /opt/FlumeClient 系统显示以下结果表示客户端运行环境安装成功: install flume client successfully.
  • 操作场景 该任务指导用户使用Flume服务端从Kafka的Topic列表(test1)采集日志保存到HDFS上“/flume/test”目录下。 本章节适用于MRS 3.x及之后版本。 本配置默认集群网络环境是安全的,数据传输过程不需要启用SSL认证。如需使用加密方式,请参考配置Flume加密传输数据采集任务。该配置为只用一个Flume场景,例如:Kafka Source+Memory Channel+HDFS Sink.
  • Flume模块介绍 Flume客户端/服务端由一个或多个Agent组成,而每个Agent是由Source、Channel、Sink三个模块组成,数据先进入Source然后传递到Channel,最后由Sink发送到下一个Agent或目的地(客户端外部)。各模块说明见表1。 表1 模块说明 名称 说明 Source Source负责接收数据或产生数据,并将数据批量放到一个或多个Channel。Source有两种类型:数据驱动和轮询。 典型的Source样例如下: 和系统集成并接收数据的Sources:Syslog、Netcat。 自动生成事件数据的Sources:Exec、SEQ。 用于Agent和Agent之间通信的IPC Sources:Avro。 Source必须至少和一个Channel关联。 Channel Channel位于Source和Sink之间,用于缓存Source传递的数据,当Sink成功将数据发送到下一跳的Channel或最终数据处理端,缓存数据将自动从Channel移除。 不同类型的Channel提供的持久化水平也是不一样的: Memory Channel:非持久化 File Channel:基于预写式日志(Write-Ahead Logging,简称WAL)的持久化实现 JDBC Channel:基于嵌入Database的持久化实现 Channel支持事务特性,可保证简易的顺序操作,同时可以配合任意数量的Source和Sink共同工作。 Sink Sink负责将数据传输到下一跳或最终目的,成功完成后将数据从Channel移除。 典型的Sink样例如下: 存储数据到最终目的终端Sink,比如:HDFS、Kafka 自动消耗的Sinks,比如:Null Sink 用于Agent和Agent之间通信的IPC sink:Avro Sink必须关联到一个Channel。 每个Flume的Agent可以配置多个Source、Channel、Sink模块,即一个Source将数据发送给多个Channel,再由多个Sink发送到下一个Agent或目的地。 Flume支持多个Flume配置级联,即上一个Agent的Sink将数据再发送给另一个Agent的Source。
  • 补充说明 Flume可靠性保障措施。 Source与Channel、Channel与Sink之间支持事务机制。 Sink Processor支持配置failover、load_balance机制。 例如load_balance示例如下: server.sinkgroups=g1 server.sinkgroups.g1.sinks=k1 k2 server.sinkgroups.g1.processor.type=load_balance server.sinkgroups.g1.processor.backoff=true server.sinkgroups.g1.processor.selector=random Flume多客户端聚合级联时的注意事项。 级联时需要走Avro或者Thrift协议进行级联。 聚合端存在多个节点时,连接配置尽量配置均衡,不要聚合到单节点上。 Flume客户端可以包含多个独立的数据流,即在一个配置文件properties.properties中配置多个Source、Channel、Sink。这些组件可以链接以形成多个流。 例如在一个配置中配置两个数据流,示例如下: server.sources = source1 source2 server.sinks = sink1 sink2 server.channels = channel1 channel2 #dataflow1 server.sources.source1.channels = channel1 server.sinks.sink1.channel = channel1 #dataflow2 server.sources.source2.channels = channel2 server.sinks.sink2.channel = channel2
  • 操作场景 该任务指导用户使用Flume服务端从本地采集静态日志保存到Kafka的Topic列表(test1)。 本章节适用于MRS 3.x及之后版本。 本配置默认集群网络环境是安全的,数据传输过程不需要启用SSL认证。如需使用加密方式,请参考配置Flume加密传输数据采集任务。该配置为只用一个Flume场景,例如:Spooldir Source+Memory Channel+Kafka Sink.
  • Flume客户端Cgroup使用指导 加入Cgroup 执行以下命令,加入Cgroup,假设Flume客户端安装路径为“/opt/FlumeClient”,Cgroup cpu阈值设置为50%: cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin ./flume-manage.sh cgroup join 50 该命令不仅可以加入Cgroup,同时也可以更改Cgroup cpu阈值。 Cgroup cpu阈值取值范围为1~100*N之间的整数,N表示机器cpu核数。 查询Cgroup状态 执行以下命令,查询Cgroup状态,假设Flume客户端安装路径为“/opt/FlumeClient”: cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin ./flume-manage.sh cgroup status 退出Cgroup 执行以下命令,退出Cgroup,假设Flume客户端安装路径为“/opt/FlumeClient”: cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin ./flume-manage.sh cgroup exit 客户端安装完成后,会自动创建默认Cgroup。若安装客户端时未配置“-s”参数,则默认值为“-1”,表示agent进程不受cpu使用率限制。 加入、退出Cgroup时,agent进程不受影响。若agent进程未启动,加入、退出Cgroup仍然可以成功执行,待下一次agent启动时生效。 客户端卸载完成后,安装时期创建的Cgroup会自动删除。
  • 原因分析 HDFS未启动或故障。 查看Flume运行日志: 2019-02-26 11:16:33,564 | ERROR | [SinkRunner-PollingRunner-DefaultSinkProcessor] | opreation the hdfs file errors. | org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:414) 2019-02-26 11:16:33,747 | WARN | [hdfs-CCCC-call-runner-4] | A failover has occurred since the start of call #32795 ClientNamenodeProtocolTranslatorPB.getFileInfo over 192-168-13-88/192.168.13.88:25000 | org.apache.hadoop.io.retry.RetryInvocationHandler$ProxyDescriptor.failover(RetryInvocationHandler.java:220) 2019-02-26 11:16:33,748 | ERROR | [hdfs-CCCC-call-runner-4] | execute hdfs error. {} | org.apache.flume.sink.hdfs.HDFSEventSink$3.call(HDFSEventSink.java:744) java.net.ConnectException: Call From 192-168-12-221/192.168.12.221 to 192-168-13-88:25000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused HDFS Sink未启动。 查看Flume运行日志,发现“ flume current metrics”中并没有Sink信息: 2019-02-26 11:46:05,501 | INFO | [pool-22-thread-1] | flume current metrics:{"CHANNEL.BBBB":{"ChannelCapacity":"10000","ChannelFillPercentage":"0.0","Type":"CHANNEL","ChannelStoreSize":"0","EventProcessTimedelta":"0","EventTakeSuccessCount":"0","ChannelSize":"0","EventTakeAttemptCount":"0","StartTime":"1551152734999","EventPutAttemptCount":"0","EventPutSuccessCount":"0","StopTime":"0"},"SOURCE.AAAA":{"AppendBatchAcceptedCount":"0","EventAcceptedCount":"0","AppendReceivedCount":"0","MonTime":"0","StartTime":"1551152735503","AppendBatchReceivedCount":"0","EventReceivedCount":"0","Type":"SOURCE","TotalFilesCount":"1001","SizeAcceptedCount":"0","UpdateTime":"605410241202740","AppendAcceptedCount":"0","OpenConnectionCount":"0","MovedFilesCount":"1001","StopTime":"0"}} | org.apache.flume.node.Application.getRestartComps(Application.java:467)