`
qianshangding
  • 浏览: 127892 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Flume - 重新编译源码

 
阅读更多

Flume是一个分布式日志收集系统系统,具体的后面的文章会详细介绍。因为在使用Flame的过程中自定义了一些功能,所以需求重新打包,本篇只讲述如果编译,打包,导入eclipse阅读源码。

编译过程中遇到些问题,网上找了好多资料,都无法解决。记录下来,希望能对需要的人有所帮助。

1,通过git下载源码,最新版本是1.7.0,我编译的是1.7.0的快照版本
地址:https://github.com/apache/flume.git
这里写图片描述
2,mvn clean eclipse:clean
3,mvn install eclipse:eclipse -Dmaven.test.skip=true -Dtar
有以下报错,原因都是无法连接到maven.twttr.com,可能是被墙了。导致无法下载jar和pom文件
这里写图片描述

[ERROR] Failed to execute goal on project flume-ng-morphline-solr-sink: Could not resolve dependencies for project org.apache.flume.flume-ng-sinks:flume-ng-morphline-solr-sink:jar:1.7.0-SNAPSHOT: Failed to collect dependencies at
org.kitesdk:kite-morphlines-all:pom:1.0.0 -> org.kitesdk:kite-morphlines-useragent:jar:1.0.0 -> ua_parser:ua-parser:jar:1.3.0: Failed to read artifact descriptor for ua_parser:ua-parser:jar:1.3.0: Could not transfer artifact ua_pa
rser:ua-parser:pom:1.3.0 from/to maven-twttr (http://maven.twttr.com): Connect to maven.twttr.com:80 [maven.twttr.com/46.82.174.68] failed: Connection timed out: connect -> [Help 1]

我没有试过能不能链接到maven.twttr.com。
解决办法是在根pom文件的标签添加下面的maven库地址。

<repository>
      <id>maven.tempo-db.com</id>
      <url>http://maven.oschina.net/service/local/repositories/sonatype-public-grid/content/</url>
</repository>

maven.oschina.net是开源中国 “中国源” 项目的一个子系统,在不断进行完善当中,很靠谱国内maven库。有了它,妈妈再也不用担心你下不了依赖包了。嘿嘿!!!

很多开源项目的jar和POM在http://search.maven.org无法找到,大家可以试试在http://maven.oschina.net

OK,继续编译,又出现如下错误:
这里写图片描述
注释:flume-ng-channels\flume-kafka-channel\的

<!--
   <dependency>
     <groupId>org.apache.flume.flume-ng-sinks</groupId>
     <artifactId>flume-ng-kafka-sink</artifactId>
     <version>${project.version}</version>
     <classifier>tests</classifier>
     <scope>test</scope>
   </dependency>
-->

注释:\flume-ng-sinks\flume-ng-hbase-sink\

<!--            
        <dependency>
          <groupId>org.apache.hbase</groupId>
          <artifactId>hbase</artifactId>
          <optional>true</optional>
        </dependency>

        <dependency>
          <groupId>org.apache.hbase</groupId>
          <artifactId>hbase</artifactId>
          <classifier>tests</classifier>
          <scope>test</scope>
        </dependency>
-->

Continue!
这里写图片描述
编译成功,导入到eclipse。尽情的阅读和修改源码吧。^-^

最后需要注意flume的flume-hdfs-sink分两块:

<id>hadoop-1.0</id><id>hadoop-2</id>

如果用的是hadoop2.X的,打包的时候需要指定,命令: mvn install eclipse:eclipse -Dmaven.test.skip=true -Phadoop-2 -Dtar

生成:
apache-flume-1.7.0-SNAPSHOT-bin.tar.gz和apache-flume-1.7.0-SNAPSHOT-src.tar.gz

关于flume后续将会持续更新。。。

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    apache-flume-1.9.0-bin.tar.gz

    这个版本的 Flume 已经预先编译完成,用户下载后可以直接进行安装和使用,无需自行编译源代码。 描述中的 "编译好的flume1.9.0,下载安装即可使用" 提醒我们,该文件包含的 Flume 实例是已经准备好运行的,只需遵循...

    flume-ng-sql-source-1.5.2

    以传统数据库作为flume的source 支持自定义查询以提供使用整个SQL语言的可能性。这是强大的,但有风险,请小心使用自定义查询。 要避免行导出重复,请使用WHERE子句中的$ @ $特殊字符,以递增方式导出未处理的行和...

    apache-flume-1.8.0-src.tar.gz

    `apache-flume-1.8.0-src`这个源码包包含了Flume 1.8.0版本的全部源代码,开发者可以深入研究其内部实现,包括事件处理流程、数据传输机制、配置解析等。源码中包含了以下主要目录: 1. **src/main/java**:Flume的...

    flume-1.9.0.tgz

    "flume-1.9.0.tgz" 是 Flume 的一个版本压缩包,包含了该版本的所有源码、库文件和必要的配置文档。 **Flume 的基本概念和架构** Flume 主要由三个核心组件构成:Sources、Channels 和 Sinks。Sources 负责接收...

    flume-ng-sql-source-1.5.3.jar

    这个jar包是从Git上下载源码并修改Pom.xml文件之后,重新编译过的。之所以重新编译,是因为源码直接编译出来的jar包,里面有一个方法返回值不兼容,编译详情可以参考我的文章...

    apache-flume-1.9.0-bin.tar,kafka_2.11-0.10.1.0,zookeeper-3.3.6_.tar

    文件名称列表中的“apache-flume-1.9.0-bin.tar.gz”、“zookeeper-3.3.6_.tar.gz”和“kafka_2.11-0.10.1.0.tgz”分别是Flume、ZooKeeper和Kafka的不同版本的源码包。用户需要先解压缩这些文件,然后根据各自的安装...

    flume-ng-sql-source:Flume Source从SQL数据库导入数据

    在最后一次更新之后,该代码已与hibernate集成在一起,因此该技术支持的所有数据库均应正常工作。 编译与包装 $ mvn package 部署方式 将目标文件夹中的flume-ng-sql-source-.jar复制到flume plugins dir文件夹中 ...

    apache-flume-1.4.0.tar.gz

    在"apache-flume-1.4.0-src"这个压缩包中,包含了Flume的源代码,用户可以根据需求进行编译和定制。源代码包含以下组件和模块: 1. **Sources**: 这部分包含了各种不同类型的源头实现,比如简单的文件源、JMS源、...

    flume-plugin-maven-plugin-1.0.zip

    "rest-field-filter-master"这个文件夹可能包含了REST字段过滤器的源代码、配置文件、示例和测试用例,是开发者深入理解和使用此库的重要资源。 总的来说,"flume-plugin-maven-plugin-1.0.zip"和"rest-field-...

    FLUME-GettingStarted-210517-1656-5860

    要从源代码构建 Flume NG,你需要准备 Git、Sun JDK 1.6、Apache Maven 3.x、大约90MB的本地磁盘空间和网络连接。 1. **检出源代码** ```bash $ git clone ...

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

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

    rocketmq_flume_project.zip

    在rocketmq-flume项目根目录执行mvn clean install dependency:copy-dependencies进行源码编译,产生 rocketmq-flume-source-1.0.0.jar包,拷贝到flume的lib目录下,通过添加flume的source配置,即可实现 rocketmq中...

    rocketmq-flume:用于RocketMQ与Flume-ng之间的消息接收和投递

    首先请确定您已经对和有了基本的了解确保本地maven库中已经存在,或者下载RocketMQ源码自行编译在rocketmq-flume项目根目录执行mvn clean install dependency:copy-dependencies将rocketmq-flume相关依赖jar包拷贝到...

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

    **大数据Ambari之flume集成编译好的源码包** Apache Ambari 是一个用于管理和监控Hadoop集群的开源工具,它提供了直观的Web界面和RESTful API,使得安装、配置、管理Hadoop生态系统变得更加简单。Flume是Apache的一...

    Flume对接Spark Streaming的相关jar包

    此 jar 文件在 Flume 集成 Spark Streaming 时用于编译和运行 Scala 代码。 2. commons-lang3-3.3.2.jar:Apache Commons Lang 是一组对 Java 语言的实用工具类库,提供了一些高级字符串处理、日期时间操作等功能。...

    rocketmq-flume-master:flume收集日志发送到rocketmq

    确保本地maven库中已经存在,或者下载RocketMQ源码自行编译 在rocketmq-flume项目根目录执行mvn clean install dependency:copy-dependencies 将rocketmq-flume相关依赖jar包拷贝到$FLUME_HOME/lib目录中(具体包会在...

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

    在 `flume-interceptor` 压缩包中,你可能找到了示例拦截器的源代码。研究这些代码可以帮助你更好地理解拦截器的工作原理,并为自己的项目提供参考。通过实践编写和调试拦截器,你可以更深入地了解 Flume 如何处理...

Global site tag (gtag.js) - Google Analytics