`
功夫小当家
  • 浏览: 186402 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flume 源码编译 和 inteallij IDEA远程调试

阅读更多

1.本地环境:

apache-flume-1.8.0-src (官网下载源码,或者git下载)

java1.8

 

2.编译

    (1)用Inteallij IDEA 导入已下载的flume工程

 

    (2)修改flume-parent下的 pom.xml 添加 aliyun的仓库(加快下载,有些包直接从maven repository上下               载很慢 )

  <repositories><!-- 代码库 -->
        <repository>
            <id>maven-ali</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

   

    (3)开始漫长的编译过程

    如果是第一次的话,可能下载包要花2个多小时

    中间可能会报错(报错主要是某些包没下载成功,此时可以手动从仓库中手动下载到本地,然后放在本地      的maven 包路径下,默认的本地的包路径是 C:\Users\你的用户名\.m2\repository 下面)

mvn clean
mvn install -DskipTests -U -Dtar

 

    (4)如果你只想编译某些模块,只需要在对应模块下执行

mvn install -DskipTests -U -Dtar

 

    (5)由于整个项目是用pom管理包和模块,十分方便,如果在整个编译过程中,某些模块你需要编译,        或者编译耗时,或者编译失败,并且你暂时用不到整个模块,可以从pom中注释掉这个模块,不做编译,      具体做法如下图所示(具体的根据你的需求操作即可):


 

 

3.远程调试:

(1)修改服务器上的 bin/flume-ng 中的JAVA_OPTS变量,支持远程调试

JAVA_OPTS="-Xmx20m -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y"

 

具体如下:

 

(2)Inteallij IDEA配置 ,远程调试


 

 

 
(3)在任意代码出打上断点


 

(4)启动flume-ng(按实际情况修改下面命令)

bin/flume-ng agent --conf conf --conf-file ./conf/flume-custom.properties --name hd1 -Dflume.root.logger=INFO,console

 

启动后日志如下:


  

(5)Inteallij IDEA 开始debug,可以发现在断点处停止,debug流程成功了


 

4.思考:

  • 源码编译耗时费力,需要耐心,熬过去了,会有很大收获,同样也是更好理解源码的开始,万事开头难
  • remote debug可以更方便的了解执行流程,学习源码的捷径

 

  • 大小: 61.6 KB
  • 大小: 5.7 KB
  • 大小: 36.3 KB
  • 大小: 96.3 KB
  • 大小: 66.4 KB
  • 大小: 129.2 KB
  • 大小: 38.1 KB
  • 大小: 121.6 KB
0
0
分享到:
评论

相关推荐

    大数据Ambari之flume集成编译好的源码包

    **大数据Ambari之flume集成编译好的源码包** Apache Ambari 是一个用于管理和监控Hadoop集群的开源工具,它提供...因此,使用预编译好的Flume源码包与Ambari集成,可以大大提高大数据环境中数据流处理的效率和可靠性。

    flume 1.8所有源代码 编译通过版 附 maven3.5.2 安装包

    为了在Eclipse中进一步开发和调试Flume,你需要将编译后的源代码导入到Eclipse项目中。启动Eclipse,选择“File” -&gt; “Import” -&gt; “Existing Maven Projects”,然后浏览并选择Flume源码的根目录。Eclipse将自动...

    flume1.7.0源码

    通过分析 Apache Flume 1.7.0 的源码,开发者可以深入了解其内部工作流程,优化性能,解决实际问题,并为构建自己的数据采集和传输解决方案打下坚实基础。同时,对于大数据领域的研究者,源码也是深入研究数据处理...

    flume-ng-core-1.7.0.jar使用时请参阅我写的flume源码修改的文章

    修改以后的flume-ng-core-1.7.0.jar,将原来的文件按行读取修改为按文件读取。使用时,直接替换到集群中flume安装目录下面lib文件夹中的flume-ng-core-1.7.0.jar即可使用。

    Apache flume1.6_src

    Apache Flume 是一个分布式、可靠且可用的数据收集系统,用于高效地聚合、移动大量日志数据。Flume 1.6 版本是其一个重要里程碑,...如果你想要在大数据日志处理领域有所建树,对 Flume 源码的深入学习是必不可少的。

    47_Flume、Logstash、Filebeat调研报告

    Flume是Apache Hadoop项目的一部分,专门设计用于高效地收集、聚合和移动大规模日志数据。它的核心架构基于事件流,具备分布式、高可靠性和高可用性。Flume通过agent来实现数据采集,每个agent包含source、sink和...

    flume修改源码读日志到hbase

    flume修改源码读日志到hbase,①日志文件为json数据②修改文件编译打包并替换flumejar中的对应文件

    让你快速认识flume及安装和使用flume1 5传输数据 日志 到hadoop2 2 文档

    让你快速认识flume及安装和使用flume1 5传输数据 日志 到hadoop2 2 中文文档 认识 flume 1 flume 是什么 这里简单介绍一下 它是 Cloudera 的一个产品 2 flume 是干什么的 收集日志的 3 flume 如何搜集日志 我们把...

    flume1.8.0和elasticsearch5.2.6整合

    在大数据处理领域,Flume和Elasticsearch是两个重要的组件。Flume是Apache开发的一款用于收集、聚合和移动大量日志数据的工具,而Elasticsearch则是一个分布式、实时的搜索与分析引擎,广泛用于大数据的存储、检索和...

    flume安装程序

    你可以通过Flume的日志输出来监控和调试你的配置。`flume.root.logger`设置可以调整日志级别,如上述命令所示,设置为`INFO`级别,日志将输出到控制台。 6. **Flume的高级特性**: - **多级处理**:Flume支持多级...

    flume和logstash.zip

    标题中的"flume和logstash.zip"是一个包含两个著名数据采集工具——Apache Flume和Logstash的压缩包。这两个工具都是大数据生态系统中的重要组件,主要用于日志管理和数据收集。 Apache Flume是一个分布式、可靠且...

    Flume1.6.0入门:安装、部署、及flume的案例

    Flume 的初始版本被称为 FlumeOG(Original Generation),随着功能的不断扩展和完善,Flume 在 2011 年经历了一次重大的重构,新版本被称为 FlumeNG(Next Generation),并正式纳入 Apache 项目。 **Flume 的特点...

    Flume解析和应用

    ### Flume解析和应用 #### 一、Flume概述 Flume是由Cloudera开发的一款分布式、可靠且可用的日志采集系统。它被设计用来高效地处理大量数据流,能够从多个源头收集数据并将其传输至不同的存储系统中。Flume支持...

    电商数仓项目(八) Flume(2) 拦截器开发源代码

    Java 是 Flume 源码的主要编程语言,它提供了一套丰富的 API 和接口,使得我们可以方便地扩展 Flume 的功能。在拦截器开发中,我们通常需要实现 `org.apache.flume.interceptor.Interceptor` 接口。这个接口包含两个...

    flume开发相关工具包

    1. **Flume API**:提供了创建自定义Flume组件的接口和类,如`org.apache.flume.api.RPCClient`用于实现远程数据源,`org.apache.flume.sink.elasticsearch.ElasticSearchSink`则用于连接Elasticsearch。 2. **扩展...

    apache-flume-1.8.0

    Apache Flume 是一个分布式、可靠且可用的数据收集系统,用于高效地聚合、移动和加载大量日志数据到集中式存储系统,如Hadoop HDFS。它设计为容错性强,可扩展,允许从多个源收集数据,并将其流向目标,如数据仓库或...

    flume log4f示例源码

    Flume 是 Apache Hadoop 生态系统中的一个分布式、可靠且可用于有效收集、聚合和移动大量日志数据的工具。Log4j 是一个广泛使用的 Java 日志框架,它提供了灵活的日志记录配置,使得应用程序可以方便地输出不同级别...

    Flume集群环境搭建,flume监控

    Flume是一个由Cloudera公司开发的分布式、可靠且可用的系统,用于有效地收集、聚合和移动大量日志数据。它的设计灵感来源于一个古老的消息队列系统,但Flume在设计和功能上都有了显著的增强。Flume从1.5.0版本开始,...

    电商数仓项目(八) Flume 系列源码

    在"电商数仓项目(八) Flume 系列源码"中,我们可以深入理解 Flume 的工作原理和内部机制。Flume 主要由三个核心组件构成:Source、Channel 和 Sink。Source 负责接收数据,Channel 作为临时存储,Sink 则负责将数据...

    flume 安装和使用

    Flume 是 Apache 开源项目中的一个分布式、可靠且可用于有效收集、聚合和移动大量日志数据的工具。它设计的主要目标是简化大数据收集流程,确保数据的高可用性和高可靠性。在日志管理系统中,Flume 提供了多种数据源...

Global site tag (gtag.js) - Google Analytics