flumepackage遇到的问题-创新互联

flume打包遇到的一些问题

创新互联建站专注于武陟企业网站建设,成都响应式网站建设公司,成都做商城网站。武陟网站建设公司,为武陟等地区提供建站服务。全流程按需定制,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

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

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.1 //hadoop-core-1.2.1.jar  改为hadoop-core-2.3.0-mr1-cdh6.1.0.jar
        0.92.1
        hadoop-core
        0.7.0
      

或者打包时指定:

mvn clean install -Phadoop-2

2.没有跳过test时

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

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


   commons-io
   commons-io
   2.4 //2.1的包没有Charsets这个类

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

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

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

1)

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

2)

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)

代码:

@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

mvn clean install -Phadoop-2 -DskipTests

4.json问题

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

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包

flume-1.6.0/flume-ng-sources/flume-kafka-source/pom.xml

   net.sf.json-lib
   json-lib
   2.4
   jdk15


    maven-assembly-plugin
    2.4
    
      
        jar-with-dependencies
      
    
    
      
        make-assembly
        package
        
          single
        
      
    
  

或者拷贝jar包:

/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

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:flumepackage遇到的问题-创新互联
文章分享:http://pwwzsj.com/article/jecoo.html