s/org.apache.flume.sink.hbase.SimpleHBaseEventSerializer/org.apache.flume.sink.hbase.SimpleHbaseEventSerializer. I am sorry for not following the same naming convention.
I also suggest using the AsyncHBaseSink. The AsyncHBaseSink provides way better performance. The only reason HBaseSink itself is not deprecated is that it uses the "official" HBase client API. But as of now, the AsyncHBaseSink is recommended over HBaseSink. Thanks, Hari -- Hari Shreedharan On Sunday, October 7, 2012 at 11:15 PM, iain wright wrote: > Thanks again Mike - > > HADOOP_HOME & HBASE_HOME in the env script did the trick. > > Now we're getting stuck on the class for the serializer not being found, > which i see present, I'm guessing its just another PATH im missing: > [ERROR - org.apache.flume.sink.hbase.HBaseSink.configure(HBaseSink.java:176)] > Could not instantiate event serializer. > java.lang.ClassNotFoundException: > org.apache.flume.sink.hbase.SimpleHBaseEventSerializer > at java.net.URLClassLoader$1.run(URLClassLoader.java:366) > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > at java.lang.ClassLoader.loadClass(ClassLoader.java:423) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:186) > at org.apache.flume.sink.hbase.HBaseSink.configure(HBaseSink.java:170) > at org.apache.flume.conf.Configurables.configure(Configurables.java:41) > at > org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.loadSinks(PropertiesFileConfigurationProvider.java:373) > at > org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.load(PropertiesFileConfigurationProvider.java:223) > at > org.apache.flume.conf.file.AbstractFileConfigurationProvider.doLoad(AbstractFileConfigurationProvider.java:123) > at > org.apache.flume.conf.file.AbstractFileConfigurationProvider.access$300(AbstractFileConfigurationProvider.java:38) > at > org.apache.flume.conf.file.AbstractFileConfigurationProvider$FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:202) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > > sink exists: > > $/app/flume/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase]$ > ls -lah > total 58 > drwxrwxrwx 2 root wheel 11B Oct 3 16:36 . > drwxrwxrwx 3 root wheel 3B Oct 3 16:36 .. > -rwxrwxrwx 1 root wheel 15k Oct 3 16:36 AsyncHBaseSink.java > -rwxrwxrwx 1 root wheel 2.6k Oct 3 16:36 AsyncHbaseEventSerializer.java > -rwxrwxrwx 1 root wheel 9.1k Oct 3 16:36 HBaseSink.java > -rwxrwxrwx 1 root wheel 1.8k Oct 3 16:36 > HBaseSinkConfigurationConstants.java > -rwxrwxrwx 1 root wheel 2.2k Oct 3 16:36 HbaseEventSerializer.java > -rwxrwxrwx 1 root wheel 5.9k Oct 3 16:36 RegexHbaseEventSerializer.java > -rwxrwxrwx 1 root wheel 4.8k Oct 3 16:36 > SimpleAsyncHbaseEventSerializer.java > -rwxrwxrwx 1 root wheel 4.6k Oct 3 16:36 SimpleHbaseEventSerializer.java > -rwxrwxrwx 1 root wheel 1.8k Oct 3 16:36 SimpleRowKeyGenerator.java > > > Startup used: > $/app/apache-flume-1.3.0-SNAPSHOT/bin/flume-ng agent -n agent1 -c ./conf -f > conf/brian.properties -Dflume.root.logger=INFO,console > > Relevant config: > $cat conf/brian.properties > #example.conf: A single-node Flume configuration > > # Name the components on this agent > agent1.sources = source1 > agent1.sinks = sink1 > agent1.channels = channel1 > > # Describe/configure source1 > agent1.sources.source1.type = exec > agent1.sources.source1.command = tail -F /log.log > agent1.sources.source1.batchSize = 1 > # Describe sink1 > #agent1.sinks.sink1.type = logger > agent1.sinks.sink1.type = org.apache.flume.sink.hbase.HBaseSink > agent1.sinks.sink1.table = brian_test > agent1.sinks.sink1.columnFamily = f1 > agent1.sinks.sink1.serializer = > org.apache.flume.sink.hbase.SimpleHBaseEventSerializer > > > # Use a channel which buffers events in memory > agent1.channels.channel1.type = memory > agent1.channels.channel1.capacity = 1000 > agent1.channels.channel1.transactionCapactiy = 100 > > # Bind the source and sink to the channel > agent1.sources.source1.channels = channel1 > agent1.sinks.sink1.channel = channel1 > > flume-env.sh (http://flume-env.sh) > > $ cat flume-env.sh (http://flume-env.sh) > > # Licensed to the Apache Software Foundation (ASF) under one > # or more contributor license agreements. See the NOTICE file > # distributed with this work for additional information > # regarding copyright ownership. The ASF licenses this file > # to you under the Apache License, Version 2.0 (the > # "License"); you may not use this file except in compliance > # with the License. You may obtain a copy of the License at > # > # http://www.apache.org/licenses/LICENSE-2.0 > # > # Unless required by applicable law or agreed to in writing, software > # distributed under the License is distributed on an "AS IS" BASIS, > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > # See the License for the specific language governing permissions and > # limitations under the License. > > # If this file is placed at FLUME_CONF_DIR/flume-env.sh > (http://flume-env.sh), it will be sourced > # during Flume startup. > > # Enviroment variables can be set here. > > #JAVA_HOME=/usr/lib/jvm/java-6-sun > > # Give Flume more memory and pre-allocate, enable remote monitoring via JMX > #JAVA_OPTS="-Xms100m -Xmx200m -Dcom.sun.management.jmxremote" > > # Note that the Flume conf directory is always included in the classpath. > #FLUME_CLASSPATH="" > > HBASE_HOME="/app/hbase" > > HADOOP_HOME="/app/hadoop" > > I've tried copying the sink from /flume-ng-sinks/blah/blah/hbase-blah.sink to > /app/flume/lib/ and setting my CLASSPATH & FLUME_CLASSPATH to /app/flume/lib > but same result. > > Appreciate any help > > Cheers, > > -- > Iain Wright > > (http://www.labctsi.org/)> This email message is confidential, intended only for the recipient(s) named above and may contain information that is privileged, exempt from disclosure under applicable law. If you are not the intended recipient, do not disclose or disseminate the message to anyone except the intended recipient. If you have received this message in error, or are not the named recipient(s), please immediately notify the sender by return email, and delete all copies of this message. > > > On Sat, Oct 6, 2012 at 9:34 PM, Mike Percy <[email protected] > (mailto:[email protected])> wrote: > > Iain, you have to set HBASE_HOME in flume-env.sh (http://flume-env.sh) > > (which is in the Flume conf directory) if Flume can't find the HBase > > classes. > > > > Regards, > > Mike > > > > > > On Fri, Oct 5, 2012 at 11:51 AM, iain wright <[email protected] > > (mailto:[email protected])> wrote: > > > Hi guys, > > > > > > May someone please advise on the best way to include the Hbase depencies > > > for a brand new install of flume, 1.3.0-SNAPSHOT? We are using HBase > > > 0.94.0, r1332822. > > > > > > 2012-10-05 11:38:00,084 (conf-file-poller-0) [ERROR - > > > org.apache.flume.conf.file.AbstractFileConfigurationProvider$FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:207)] > > > Failed to start agent because dependencies were not found in classpath. > > > Error follows. > > > java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration > > > at java.lang.Class.getDeclaredConstructors0(Native Method) > > > at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404) > > > at java.lang.Class.getConstructor0(Class.java:2714) > > > at java.lang.Class.newInstance0(Class.java:343) > > > at java.lang.Class.newInstance(Class.java:325) > > > at > > > org.apache.flume.sink.DefaultSinkFactory.create(DefaultSinkFactory.java:103) > > > at > > > org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.loadSinks(PropertiesFileConfigurationProvider.java:371) > > > at > > > org.apache.flume.conf.properties.PropertiesFileConfigurationProvider.load(PropertiesFileConfigurationProvider.java:223) > > > at > > > org.apache.flume.conf.file.AbstractFileConfigurationProvider.doLoad(AbstractFileConfigurationProvider.java:123) > > > at > > > org.apache.flume.conf.file.AbstractFileConfigurationProvider.access$300(AbstractFileConfigurationProvider.java:38) > > > at > > > org.apache.flume.conf.file.AbstractFileConfigurationProvider$FileWatcherRunnable.run(AbstractFileConfigurationProvider.java:202) > > > at > > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > > > at > > > java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) > > > at > > > java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) > > > at > > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) > > > at > > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > > > at > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > > > at java.lang.Thread.run(Thread.java:722) > > > Caused by: java.lang.ClassNotFoundException: > > > org.apache.hadoop.conf.Configuration > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:366) > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > > > at java.security.AccessController.doPrivileged(Native Method) > > > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:423) > > > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) > > > ... 19 more > > > > > > Thank you, > > > > > > -- > > > Iain Wright > > > (http://www.labctsi.org/)> > > This email message is confidential, intended only for the recipient(s) named above and may contain information that is privileged, exempt from disclosure under applicable law. If you are not the intended recipient, do not disclose or disseminate the message to anyone except the intended recipient. If you have received this message in error, or are not the named recipient(s), please immediately notify the sender by return email, and delete all copies of this message. > > >
