Return-Path: X-Original-To: apmail-hbase-user-archive@www.apache.org Delivered-To: apmail-hbase-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1C676DB52 for ; Tue, 18 Dec 2012 23:37:01 +0000 (UTC) Received: (qmail 53183 invoked by uid 500); 18 Dec 2012 23:36:59 -0000 Delivered-To: apmail-hbase-user-archive@hbase.apache.org Received: (qmail 53134 invoked by uid 500); 18 Dec 2012 23:36:59 -0000 Mailing-List: contact user-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hbase.apache.org Delivered-To: mailing list user@hbase.apache.org Received: (qmail 53126 invoked by uid 99); 18 Dec 2012 23:36:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 18 Dec 2012 23:36:58 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of bob.futrelle@gmail.com designates 209.85.214.172 as permitted sender) Received: from [209.85.214.172] (HELO mail-ob0-f172.google.com) (209.85.214.172) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 18 Dec 2012 23:36:52 +0000 Received: by mail-ob0-f172.google.com with SMTP id za17so1332476obc.31 for ; Tue, 18 Dec 2012 15:36:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=gVa4W26KXGbhcQtwymp6BU/TkaQzL60+cev8OOane10=; b=y0khhLqA3NqKRWtDoUysJBD087gjqZuvU2LPp+WIQPVeERTfxEuuEvZfgiGjftyVH6 G4niYkxmG/vuU9vWzfwGr7xfGfoGm52SjlZ/wKU0z45twS6ZROWQdYNoATpSSm5fUM8c HdSh8EIoTCTqBaJZjIW92awCY0BCX1bQwa2fPDsbwP6fhvzEv/n6HdoXs+d7Y0cFuJYP YkspmjmGt38PE2c0XmIHmePJ43MGS1T2celkQNQ7Dneu+DL7JjgIkZ3aOSk3EUDcw2Y5 D3hjLyzAhE6dyqhBsmfw95zzL7u9teIBJ3WCL/syJObDH5s7NwcuRJ25XTTF5lou3HA7 dbAQ== MIME-Version: 1.0 Received: by 10.60.31.130 with SMTP id a2mr3296674oei.95.1355873790979; Tue, 18 Dec 2012 15:36:30 -0800 (PST) Received: by 10.76.86.71 with HTTP; Tue, 18 Dec 2012 15:36:30 -0800 (PST) In-Reply-To: References: Date: Tue, 18 Dec 2012 18:36:30 -0500 Message-ID: Subject: Re: HBase 0.94 security configurations From: Bob Futrelle To: user@hbase.apache.org Content-Type: multipart/alternative; boundary=e89a8fb201acabec8504d128f79c X-Virus-Checked: Checked by ClamAV on apache.org --e89a8fb201acabec8504d128f79c Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable I'm able to duplicate the problems I've described by using only the first two lines of code. Entire class is: package us.tsos.nlpng.hbase.test1; import java.io.IOException; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.HBaseConfiguration; public class JustCreateTable { public static void main(String[] args) throws IOException { org.apache.hadoop.conf.Configuration conf =3D HBaseConfiguration.create(); HBaseAdmin hbase =3D new HBaseAdmin(conf); } } I was careful to do ./bin/stop-hbase.sh and then ./bin/start-hbase.sh before running the code. Leaving out the second line gives immediate termination, no errors, no surprise. - Bob On Tue, Dec 18, 2012 at 5:27 PM, Bob Futrelle wrote= : > I'm sure I found all the jars I need. > I'm not a Maven user. > My son understands Maven well. > He knows about the system I'm developing. > He suggests that there is no need for me to learn and use Maven. > > My approach is straightforward. > I let Eclipse do the builds and have been for, > I don't know - the last ten years? > Before that I guess I was using Ant for builds. > It's pretty smart too. > > I've been able to get past hundreds of apparent showstoppers, > but not this one, yet. > > I get plenty of "Warn" and "Info" lines in my console. > Then it settles down to repeating this block of lines indefinitely: > > 12/12/18 17:00:22 WARN zookeeper.RecoverableZooKeeper: Possibly transient > ZooKeeper exception: > org.apache.zookeeper.KeeperException$ConnectionLossException: > KeeperErrorCode =3D ConnectionLoss for /hbase/master > > 12/12/18 17:00:22 INFO util.RetryCounter: Sleeping 2000ms before retry > #1... > > 12/12/18 17:00:22 INFO zookeeper.ClientCnxn: Opening socket connection to > server /fe80:0:0:0:0:0:0:1%1:2181 > > 12/12/18 17:00:27 WARN client.ZooKeeperSaslClient: SecurityException: > java.lang.SecurityException: Unable to locate a login configuration > occurred when trying to find JAAS configuration. > > 12/12/18 17:00:27 INFO client.ZooKeeperSaslClient: Client will not > SASL-authenticate because the default JAAS configuration section 'Client' > could not be found. If you are not using SASL, you may ignore this. On th= e > other hand, if you expected SASL to work, please fix your JAAS > configuration. > > 12/12/18 17:00:27 WARN zookeeper.ClientCnxn: Session 0x0 for server null, > unexpected error, closing socket connection and attempting reconnect > > java.net.ConnectException: Connection refused > > at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) > > at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599) > > at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport( > ClientCnxnSocketNIO.java:286) > > at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1035) > > The serious exception is the java.net.ConnectException. This develops > after the four calls above listed below the exception, starting in > ZooKeeper. > > I'm thinking that I have to arrange what ./bin/start-hbase.sh does so it > is in synch with what my code is trying to do, or vice-versa --- some > common object/protocol that they agree on. Then a connection should work= . > > There's lots of info about enabling HBase security, but I think I should > disable it, though all the output above suggest that the SaslClient > exception is only a *warn*. I've found no explicit discussions out there > about disabling security or about not enabling it - same thing in the end= . > All my work is behind my firewall. > > I'm impressed how complicated it is to do something of a Hello World in > HBase. > > I used Java DB embedded in my apps for some years. It is simple to use. > It is slow. It is SQL. > I want NOSlow and NOSQL, but I don't want NOSimple ;-) > > - Bob > > > > On Tue, Dec 18, 2012 at 3:33 PM, Mesika, Asaf wrot= e: > >> I suggest you use a Maven project. >> I can copy-paste a small pom.xml for you to get you started. >> It will solve all of those missing JARS you have. >> >> Just make sure to install M2Eclipse plugin (Eclipse Marketplace) >> >> On Dec 18, 2012, at 8:15 PM, Bob Futrelle wrote: >> >> > Nick's suggestions appear to have helped, but we're not home yet. >> > >> > Start-up, CLI: >> > >> > $./bin/start-hbase.sh >> > starting master, logging to >> > >> /Users/robertfutrelle/Research/HBase/hbase/bin/../logs/hbase-robertfutre= lle-master-Macintosh.local.out >> > >> > Then I run my Java code, w. conf.set(=85) commented out per Nick's >> > suggestion. >> > 23 lines of output in Eclipse console. Last line of the 23 is, >> > >> > 12/12/18 12:56:51 INFO zookeeper.ClientCnxn: Session establishment >> complete >> > on server localhost/0:0:0:0:0:0:0:1:2181, sessionid =3D 0x13baf2762e80= 004, >> > negotiated timeout =3D 40000 >> > >> > >> > Then this exception brings things to a halt, >> > >> > Exception in thread "main" java.lang.NoClassDefFoundError: >> > com/google/protobuf/Message >> > >> > I'm a bit confused by the mixed approach in which I start HBase from t= he >> > command line and then execute Java code. How do the two come together= ? >> > >> > Thank you, everyone, for your continued help. >> > >> > As for security, it's not even listed in the index of Lars George's >> HBase >> > book. >> > >> > I'm confident that *persistence* will get things working (see my PS >> below). >> > >> > - Bob >> > >> > PS on persistence: >> > >> > Nothing in the world can take the place of Persistence. Talent will no= t; >> > nothing is more common than unsuccessful men with talent. Genius will >> not; >> > unrewarded genius is almost a proverb. Education will not; the world i= s >> > full of educated derelicts. Persistence and determination alone are >> > omnipotent. The slogan 'Press On' has solved and always will solve the >> > problems of the human race. < >> http://www.quotationspage.com/quote/2771.html> >> > [image: [info]] [image: >> > [add]] [ima= ge: >> > [mail]] [image: >> > [note]] >> > *Calvin Coolidge* >> > >> > >> > On Tue, Dec 18, 2012 at 3:19 AM, Nick Dimiduk >> wrote: >> > >> >> Are you using secure HBase? Don't -- it'll only get in the way for a >> simple >> >> example. Is the master running? Be sure to run ./bin/start-hbase.sh >> from >> >> the directory where you unpacked the tgz. You can omit the >> conf.set(...) >> >> business from your code. By default, the configuration will point to >> local >> >> host. >> >> >> >> Does any of that help? >> >> >> >> -n >> >> On Dec 17, 2012 8:47 PM, "Bob Futrelle" >> wrote: >> >> >> >>> Thanks for your quick reply. >> >>> >> >>> >> >>> On Mon, Dec 17, 2012 at 11:25 PM, Jimmy Xiang >> >> wrote: >> >>> >> >>>> Have you tried IPv4? >> >>> >> >>> >> >>> I can disable IPv6 in Mountain Lion, but all my "communication" is >> >>> *within*my own machine, so I don't understand why I'd be messing wit= h >> >>> IP, since >> >>> nothing I'm doing is going through my ethernet or WiFi. But that ma= y >> be >> >>> the HBase view of communication, even when entirely within a >> machine(?) >> >>> It's late - will try in the morning. >> >>> >> >>> As for the cloudera page, it seems like a huge amount of information >> that >> >>> goes way beyond the trivial setup that I'm trying to arrange for. >> Maybe >> >>> what I need is buried in the page somewhere (emphasis on "buried"). >> >>> >> >>> As they say: "My code is so simple, what could possibly go wrong?" >> ;-) >> >>> >> >>> - Bob >> >>> >> >>> >> >>>> As to secure HBase configuration, this >> >>>> instruction may be of some help: >> >>>> >> >>>> >> https://ccp.cloudera.com/display/CDH4DOC/HBase+Security+Configuration >> >>>> >> >>>> Thanks, >> >>>> Jimmy >> >>>> >> >>>> On Mon, Dec 17, 2012 at 8:15 PM, Bob Futrelle < >> bob.futrelle@gmail.com> >> >>>> wrote: >> >>>>> I have the same problem that Amit Sela had - an endlessly repeatin= g >> >>>> message >> >>>>> in my Eclipse console: >> >>>>> >> >>>>> java.net.ConnectException >> >>>>> : Connection refused >> >>>>> >> >>>>> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) >> >>>>> >> >>>>> at >> >>> sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:59= 9) >> >>>>> >> >>>>> at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport( >> >>>>> ClientCnxnSocketNIO.java:286) >> >>>>> >> >>>>> at >> >> org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1035) >> >>>>> >> >>>>> 12/12/17 20:54:51 INFO zookeeper.ClientCnxn: Opening socket >> >> connection >> >>> to >> >>>>> server /fe80:0:0:0:0:0:0:1%1:2181 >> >>>>> >> >>>>> 12/12/17 20:54:51 WARN zookeeper.RecoverableZooKeeper: Possibly >> >>> transient >> >>>>> ZooKeeper exception: >> >>>>> org.apache.zookeeper.KeeperException$ConnectionLossException: >> >>>>> KeeperErrorCode =3D ConnectionLoss for /hbase/master >> >>>>> >> >>>>> 12/12/17 20:54:51 INFO util.RetryCounter: Sleeping 2000ms before >> >> retry >> >>>> #1... >> >>>>> >> >>>>> 12/12/17 20:54:56 WARN client.ZooKeeperSaslClient: >> SecurityException: >> >>>>> java.lang.SecurityException: Unable to locate a login configuratio= n >> >>>>> occurred when trying to find JAAS configuration. >> >>>>> >> >>>>> 12/12/17 20:54:56 INFO client.ZooKeeperSaslClient: Client will not >> >>>>> SASL-authenticate because the default JAAS configuration section >> >>> 'Client' >> >>>>> could not be found. If you are not using SASL, you may ignore this= . >> >> On >> >>>> the >> >>>>> other hand, if you expected SASL to work, please fix your JAAS >> >>>>> configuration. >> >>>>> >> >>>>> 12/12/17 20:54:56 WARN zookeeper.ClientCnxn: Session 0x0 for serve= r >> >>> null, >> >>>>> unexpected error, closing socket connection and attempting reconne= ct >> >>>>> >> >>>>> >> >>>>> I'm about as much of a newbie as you can imagine. >> >>>>> >> >>>>> I found a small piece of code that creates a table. >> >>>>> It threw endless exceptions. I fixed each by finding the correct >> >> jars >> >>> (7 >> >>>>> in all) >> >>>>> and occasionally changing a bit of the code, e.g., using, not a >> >>>>> constructor, but >> >>>>> >> >>>>> HBaseConfiguration.create(); >> >>>>> >> >>>>> >> >>>>> I'm using hbase-0.94.3 and Eclipse 4.2.1 (Juno). >> >>>>> No apache/hbase plugins, just straight Eclipse/Java. >> >>>>> >> >>>>> The only setting I've touched is hbase-site.xml >> >>>>> in which I put the path to the directory that I want my DBs in. >> >>>>> It worked from HBase Shell. >> >>>>> But of course I want it to work from Java. >> >>>>> >> >>>>> I suspect that the right info in the hbase-policy.xml would fix al= l >> >>> this. >> >>>>> But my understanding of HBase so far is too skimpy to know what to >> >> put >> >>>>> there. >> >>>>> >> >>>>> My goal is to do all this work entirely within my own machine >> >> (MacBook >> >>>> Pro). >> >>>>> Single user, nothing remote, no clients/cluster. >> >>>>> >> >>>>> For total disclosure, here's the entire source - my little HBase >> >> Hello >> >>>> World >> >>>>> : >> >>>>> >> >>>>> package us.tsos.nlpng.hbase.test1; >> >>>>> >> >>>>> >> >>>>> import java.io.IOException; >> >>>>> >> >>>>> >> >>>>> import org.apache.hadoop.hbase.HColumnDescriptor; >> >>>>> >> >>>>> import org.apache.hadoop.hbase.HTableDescriptor; >> >>>>> >> >>>>> import org.apache.hadoop.hbase.client.HBaseAdmin; >> >>>>> >> >>>>> import org.apache.hadoop.hbase.HBaseConfiguration; >> >>>>> >> >>>>> >> >>>>> public class JustCreateTable { >> >>>>> >> >>>>> >> >>>>> public static void main(String[] args) throws IOException { >> >>>>> >> >>>>> >> >>>>> org.apache.hadoop.conf.Configuration conf =3D >> >>> HBaseConfiguration.create(); >> >>>>> >> >>>>> conf.set("hbase.master","localhost:60000"); >> >>>>> >> >>>>> >> >>>>> HBaseAdmin hbase =3D new HBaseAdmin(conf); >> >>>>> >> >>>>> HTableDescriptor desc =3D new HTableDescriptor("TEST"); >> >>>>> >> >>>>> HColumnDescriptor meta =3D new >> >> HColumnDescriptor("personal".getBytes()); >> >>>>> >> >>>>> HColumnDescriptor prefix =3D new >> >> HColumnDescriptor("account".getBytes()); >> >>>>> >> >>>>> desc.addFamily(meta); >> >>>>> >> >>>>> desc.addFamily(prefix); >> >>>>> >> >>>>> hbase.createTable(desc); >> >>>>> >> >>>>> } >> >>>>> >> >>>>> } >> >>>>> >> >>>>> >> >>>>> -- Bob Futrelle >> >>>>> >> >>>>> >> >>>>> retired CS prof. >> >>>>> >> >>>>> working hard on an NLP system >> >>>>> >> >>>>> HBase will really fit the ticket >> >>>>> >> >>>>> >> >>>>> "You never *learn* anything, you just get used to it." >> >>>> >> >>> >> >> >> >> > --e89a8fb201acabec8504d128f79c--