flume打包遇到的一些问题

1.ipc兼容性问题,线上使用2.3.0的hdfs,但是打包时默认为1.2.1的

1
2
3
4
08 Apr 2015 19:38:25,122 WARN  [SinkRunner-PollingRunner-DefaultSinkProcessor] (org.apache.flume.sink.hdfs.HDFSEventSink.process:455)  - HDFS IO error
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4
        at org.apache.hadoop.ipc.Client.call(Client.java:1113)
        at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)

拷贝hadoop-core包即可,或者更改pom.xml文件

1
2
3
4
5
6
      <properties>
        <hadoop.version>1.2.1</hadoop.version> //hadoop-core-1.2.1.jar  改为hadoop-core-2.3.0-mr1-cdh5.1.0.jar
        <hbase.version>0.92.1</hbase.version>
        <hadoop.common.artifact.id>hadoop-core</hadoop.common.artifact.id>
        <thrift.version>0.7.0</thrift.version>
      </properties>

或者打包时指定:

1
mvn clean install -Phadoop-2

2.没有跳过test时

1
org.apache.flume.auth.TestFlumeAuthenticator: org/apache/commons/io/Charsets (no class error)

根目录下的pom.xml文件中更改为:

1
2
3
4
5
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.4</version> //2.1的包没有Charsets这个类
</dependency>

如果手动下载jar包可以使用如下命令导入:

1
mvn install:install-file -DgroupId=commons-io -DartifactId=commons-io -Dversion=2.0.1 -Dpackaging=jar -Dfile=commons-io-2.4.jar

3. 程序语言问题,因为在系统中使用了中文环境导致编译不通过

1)

1
2
3
4
5
6
@Test
  public void shouldUseUtcAsBasisForDateFormat() {
    assertEquals("Coordinated Universal Time",
        factory.fastDateFormat.getTimeZone().getDisplayName()); //请求英文,返回中文
  }
...

2)

1
2
3
4
5
6
Running org.apache.flume.source.twitter.TestTwitterSource
Tests run: 2, Failures: 0, Errors: 1, Skipped: 1, Time elapsed: 0.247 sec <<< FAILURE!
testCarrotDateFormatBug(org.apache.flume.source.twitter.TestTwitterSource)  Time elapsed: 21 sec  <<< ERROR!
java.text.ParseException: Unparseable date: "Fri Oct 26 22:53:55 +0000 2012"
   at java.text.DateFormat.parse(DateFormat.java:357)
   at org.apache.flume.source.twitter.TestTwitterSource.testCarrotDateFormatBug(TestTwitterSource.java:109)

代码:

1
2
3
4
5
@Test
  public void testCarrotDateFormatBug() throws Exception {
    SimpleDateFormat formatterFrom = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); //更改为new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy",Locale.US);
    formatterFrom.parse("Fri Oct 26 22:53:55 +0000 2012");
  }

或者简单点,更改语言设置或者直接skip test

1
mvn clean install -Phadoop-2 -DskipTests

4.json问题

替换单个jar包时,因为依赖问题,包class not found:

1
2
3
4
5
Exception in thread "PollableSourceRunner-KafkaSource-kafka1" java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
        at org.apache.flume.source.kafka.KafkaSourceUtil.getDateMessage(KafkaSourceUtil.java:117)
        at org.apache.flume.source.kafka.KafkaSource.process(KafkaSource.java:123)
        at org.apache.flume.source.PollableSourceRunner$PollingRunner.run(PollableSourceRunner.java:139)
        at java.lang.Thread.run(Thread.java:745)

可以打成ensmbly包

1
2
3
4
5
6
7
flume-1.6.0/flume-ng-sources/flume-kafka-source/pom.xml
<dependency>
   <groupId>net.sf.json-lib</groupId>
   <artifactId>json-lib</artifactId>
   <version>2.4</version>
   <classifier>jdk15</classifier>
</dependency>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
    <executions>
      <execution>
        <id>make-assembly</id>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

或者拷贝jar包:

1
2
3
4
5
6
/Users/nizengguang/.m2/repository/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar
/Users/nizengguang/.m2/repository/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar
/Users/nizengguang/.m2/repository/commons-beanutils/commons-beanutils/1.8.0/commons-beanutils-1.8.0.jar
/Users/nizengguang/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
/Users/nizengguang/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
/Users/nizengguang/.m2/repository/commons-lang/commons-lang/2.5/commons-lang-2.5.jar

本文转自菜菜光 51CTO博客,原文链接:http://blog.51cto.com/caiguangguang/1635779,如需转载请自行联系原作者

flume package遇到的问题相关推荐

  1. Ambari2.75集成flume1.9

    Ambari2.75默认是没有flume组件,这里需要自定义集成.(ambari的安装可参考我上一篇文章:最新版Ambari2.75安装及HDP3.1.5集群搭建) 一:使用如下github地址,将编 ...

  2. Hadoop生态圈-Flume的组件之自定义拦截器(interceptor)

    Hadoop生态圈-Flume的组件之自定义拦截器(interceptor) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客只是举例了一个自定义拦截器的方法,测试字节传输速 ...

  3. flume自定义Interceptor

    2019独角兽企业重金招聘Python工程师标准>>> 背景: 在工作中遇到这样一个问题,nginx老的收集的日志格式为前面使用","分割,后面使用"空 ...

  4. 日志采集框架Flume以及Flume的安装部署(一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统)...

    Flume支持众多的source和sink类型,详细手册可参考官方文档,更多source和sink组件 http://flume.apache.org/FlumeUserGuide.html Flum ...

  5. 大数据笔记(三十二)——SparkStreaming集成Kafka与Flume

    三.集成:数据源 1.Apache Kafka:一种高吞吐量的分布式发布订阅消息系统 (1) (*)消息的类型 Topic:主题(相当于:广播) Queue:队列(相当于:点对点) (*)常见的消息系 ...

  6. flume与Mosquitto的集成

    文章来自:http://www.cnblogs.com/hark0623/p/4173714.html   转发请注明 因业务需求,需要flume收集MQTT(Mosquitto)的数据.  方法就是 ...

  7. flume可以实时监控mysql嘛_flume使用(三):实时log4j日志通过flume输出到MySql数据库...

    本文在[flume使用(二):采集远程日志数据到MySql数据库]一文基础之上进行测试操作.本文使用到的: flume版本.jdk版本.mysql.数据库表.javaBean.自定义的mysqlSin ...

  8. Spark Streaming之:Flume监控目录下文件内容变化,然后Spark Streaming实时监听Flume,然后从其上拉取数据,并计算出结果

    1.安装flume 2.到Spark-Streaming官网下载poll方式的Sink 3.将sink放入到flume的lib包里面 4.先启动flume(多个),然后在启动Streaming程序 下 ...

  9. 自定义Flume拦截器,并将收集的日志存储到Kafka中(案例)

    1.引入POM文件 如果想调用Flume,需要引入flume相关的jar包依赖,jar包依赖如下: <?xml version="1.0" encoding="UT ...

最新文章

  1. 全志uboot修改_全志SDK编译问题解决二:build uboot only
  2. 学习linux基础操作,从0开始入门!
  3. docker-compose HBase + Phoenix 开发环境单机快速部署
  4. 和菜鸟一起学linux内核源码之基础准备篇
  5. php加mySQL制作网络硬盘_PHP实现的简单网络硬盘
  6. 【CodeForces - 215B 】Olympic Medal (数学,公式推导)
  7. 天池 在线编程 订单分配(回溯)
  8. LeetCode 1162. 地图分析(BFS)
  9. Linux内核驱动调试,Linux内核设备驱动之内核的调试技术笔记整理
  10. Sql为什么连接不上服务器上的数据库
  11. 为什么要重构,何时进行重构
  12. 跳跃表(skiplist )详解及其C++编程实现
  13. 电脑链接打印机方法(TCP/IP连接,Windows10适用,其他版本未验证)
  14. typedef与define 傻傻的分不清楚
  15. 《第五项修炼——学习型组织的艺术与实务》读后感
  16. 百万邮做邮件营销的邮箱配置
  17. 华为服务器克隆linux,华为RH2288H V3服务器磁盘阵列配置RAID
  18. nginx sendfile什么作用
  19. 如何判断线性方程组是一个解还是无穷个解
  20. python:在Windows上使用 Python

热门文章

  1. android+rom+bootloader+flash,Android ROM开发(4) bootloader 三种启动模式
  2. java中equals函数所在的类,重写Java中的equals方法介绍
  3. 大数据项目开发案例_大数据分析技术——项目案例1(猫眼电影数据分析上)...
  4. 机器人编程与python语言的区别_儿童编程和机器人编程有啥区别?
  5. 武侠乂服务器位置在哪,武侠乂手游秘境在哪里 地图秘境宝藏分布位置大全
  6. amd为什么还用针脚_为什么AMD不取消cpu上的针脚?
  7. 20172325 2018-2019-1 《Java程序设计》第二周学习总结
  8. Java数据类型(基本数据类型)学习
  9. Java:switch语句例子
  10. 一站式学习Wireshark(七):Statistics统计工具功能详解与应用