Fixed that classpath problem with changing the classpath problem. This is very hacky but i am left with no option because of lack maven artifact of hbase-security jar in 0.94. Now, the class is: java -cp "/etc/hbase/conf:.:../sqlline-1.1.2.jar:../jline-2.11.jar:/opt/cloudera/parcels/CDH/lib/hbase/hbase-0.94.15-cdh4.6.0-security.jar:/opt/cloudera/parcels/CDH/lib/hbase/lib/*:/opt/cloudera/parcels/CDH/lib/hadoop/*:/opt/cloudera/parcels/CDH/lib/hadoop/lib/*:../phoenix-core-3.0.0-SNAPSHOT.jar:$phoenix_client_jar" -Dlog4j.configuration=file:$current_dir/log4j.properties sqlline.SqlLine -d org.apache.phoenix.jdbc.PhoenixDriver -u jdbc:phoenix:$1 -n none -p none --color=true --fastConnect=false --verbose=true --isolation=TRANSACTION_READ_COMMITTED $sqlfile
Now, i am able to connect! Phew!! On Mon, Apr 21, 2014 at 7:10 PM, anil gupta <[email protected]> wrote: > Wow! Moving /etc/hbase/conf to the very beginning of your class > path(before the "." current folder). Do you know why this behavior? > Initially, i was using /etc/hbase/conf but it was mind boggling to me that > conf was not getting picked so i tried a fluke with "/etc/hbase/conf/*". > Now, its able to get distributed cluster conf. However, now i get > NoSuchMethodError error: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > *2014-04-21 18:58:01 DEBUG SecureClient:263 - Connecting to > pprfihbdb406.corp.intuit.net/10.164.74.157:60000 > <http://pprfihbdb406.corp.intuit.net/10.164.74.157:60000>java.lang.NoSuchMethodError: > org.apache.hadoop.net.NetUtils.getInputStream(Ljava/net/Socket;)Lorg/apache/hadoop/net/SocketInputWrapper; > at > org.apache.hadoop.hbase.ipc.SecureClient$SecureConnection.setupIOstreams(SecureClient.java:270) > at > org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1141) > at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:988) > at > org.apache.hadoop.hbase.ipc.SecureRpcEngine$Invoker.invoke(SecureRpcEngine.java:107) > at com.sun.proxy.$Proxy5.getProtocolVersion(Unknown Source) at > org.apache.hadoop.hbase.ipc.SecureRpcEngine.getProxy(SecureRpcEngine.java:149) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:813) > at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:127) > at > org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated(ConnectionQueryServicesImpl.java:617) > at > org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:844) > at > org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:988) > at > org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:384) > at > org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:168) > at > org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateTableStatement.executeUpdate(PhoenixStatement.java:350) > at > org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1047) > at > org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1039) > at > org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:79) > at > org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:107) > at sqlline.SqlLine$DatabaseConnection.connect(SqlLine.java:4650) at > sqlline.SqlLine$DatabaseConnection.getConnection(SqlLine.java:4701) at > sqlline.SqlLine$Commands.connect(SqlLine.java:3942) at > sqlline.SqlLine$Commands.connect(SqlLine.java:3851) at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) at > sqlline.SqlLine$ReflectiveCommandHandler.execute(SqlLine.java:2810) at > sqlline.SqlLine.dispatch(SqlLine.java:817) at > sqlline.SqlLine.initArgs(SqlLine.java:633) at > sqlline.SqlLine.begin(SqlLine.java:680) at > sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441) at > sqlline.SqlLine.main(SqlLine.java:424)sqlline version 1.1.2* > > > > > *I feel like i am close to making it work. My gut feeling is that this is > related some incompatible jar file or hadoop1/hadoop2 profile. I am using > Hadoop 2.0.0-cdh4.6.0. Please let me know if i need to pass some params > while building phoenix on my machine. Right now, i am just doing "mvn clean > install" to build. * > Thanks for help! > Anil > > > > > On Mon, Apr 21, 2014 at 2:16 PM, Jeffrey Zhong <[email protected]>wrote: > >> >> Hey Anil, >> >> In classpath, when you point to configuration files, you can only specify >> folder name(in your case it should be /etc/hbase/conf). The wildcard "*" >> only works for files with extension .jar. In addition, you can move the >> /etc/hbase/conf to the very beginning of your class path(before the "." >> current folder) >> >> -Jeffrey >> >> On 4/21/14 10:32 AM, "anil gupta" <[email protected]> wrote: >> >> >$1= <zk>:<keytab>:<principal> >> > >> >This work is part of https://issues.apache.org/jira/browse/PHOENIX-19 . >> >So, >> >i modified the connection string to extra params. The patch is attached >> to >> >the jira. I'll also upload the most recent patch. >> > >> >I also tried your recommendation: >> >$1= <zk>:<port>:<root_dir>:<keytab>:<principal> >> > >> >Still, i get the same error. It seems like the conf files for my >> >distributed cluster is not getting picked up or some other conf file is >> >also present in the classpath. Is there anyway i can specify the exact >> >path >> >of conf file in java code so that i can debug this? Or Is there a way to >> >know which files Configuration is using to instantiate the Configuration >> >object? >> > >> > >> >On Mon, Apr 21, 2014 at 9:57 AM, Jeffrey Zhong >> ><[email protected]>wrote: >> > >> >> >> >> What's the value for your following "$1"? You need to specify the value >> >>as >> >> <hbase zookeeper quorum host string(without port)>:<zookeeper >> >>port>:<hbase >> >> root node> >> >> >> >> A sample value is quorumhost1,quoruamhost2,quorumhost3:2181:/hbase >> >> >> >> On 4/21/14 12:48 AM, "anil gupta" <[email protected]> wrote: >> >> >> >> >Hi All, >> >> > >> >> >Phoenix is trying to connect to a Standalone hbase rather than my >> Fully >> >> >distributed HBase cluster. Hence, it is getting >> >>MasterNotRunningException. >> >> > >> >> >This is my current command to invoke Phoenix: >> >> >java -cp >> >> >> >> >>>".:/etc/hbase/conf/*:../sqlline-1.1.2.jar:../jline-2.11.jar:../phoenix-c >> >>>or >> >> >> >> >>>e-3.0.0-SNAPSHOT.jar:$phoenix_client_jar:/opt/cloudera/parcels/CDH/lib/h >> >>>ba >> >> >> >> >>>se/hbase-0.94.15-cdh4.6.0-security.jar:/opt/cloudera/parcels/CDH/lib/hba >> >>>se >> >> >> >> >>>/lib/*:/opt/cloudera/parcels/CDH/lib/hadoop/*:/opt/cloudera/parcels/CDH/ >> >>>li >> >> >b/hadoop/lib/*" >> >> >-Dlog4j.configuration=file:$current_dir/log4j.properties >> >>sqlline.SqlLine >> >> >-d >> >> >org.apache.phoenix.jdbc.PhoenixDriver -u jdbc:phoenix:$1 -n none -p >> >>none >> >> >--color=true --fastConnect=false --verbose=true >> >> >--isolation=TRANSACTION_READ_COMMITTED $sqlfile >> >> > >> >> >As you can see that i have added /etc/hbase/conf/* in classpath. I >> also >> >> >verified that correct files are present in /etc/hbase/conf/ folder. >> >>Then >> >> >also Phoenix is not picking up the conf and its trying to connect to >> >>local >> >> >cluster where hbase.rootdir="file:///tmp/hbase-intuit/hbase" . I am >> >>unable >> >> >to figure out why Phoenix is not picking up the conf. IMO, adding >> >> >/etc/hbase/conf/* in classpath should be enough but it seems like this >> >>is >> >> >not sufficient. Any ideas/suggestions on how to make Phoenix pick up >> >>the >> >> >correct configuration? >> >> > >> >> >Thanks, >> >> >Anil Gupta >> >> > >> >> > >> >> >On Sun, Apr 20, 2014 at 11:47 PM, anil gupta <[email protected]> >> >> >wrote: >> >> > >> >> >> It seems like Phoenix is unable to connect to master. I am able to >> >>use >> >> >> hbase shell from that node. So, everything should be fine. I have >> >>also >> >> >> included hbase conf directories in classpath. Is there any other >> >>thing >> >> >>i am >> >> >> missing? >> >> >> >> >> >> This is the error i got: >> >> >> >> >> >> Found quorum: pprf1:2181,pprf2:2181,pprf3:2181,pprf4:2181,pprf5:2181 >> >> >> Error: Retried 14 times (state=08000,code=101) >> >> >> org.apache.phoenix.exception.PhoenixIOException: Retried 14 times >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java >> >>>>:9 >> >> >>9) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated >> >>>>(C >> >> >>onnectionQueryServicesImpl.java:680) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(Connec >> >>>>ti >> >> >>onQueryServicesImpl.java:821) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataCl >> >>>>ie >> >> >>nt.java:988) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.jav >> >>>>a: >> >> >>384) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCom >> >>>>pi >> >> >>ler.java:168) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.jdbc.PhoenixStatement$ExecutableCreateTableStatement >> >>>>.e >> >> >>xecuteUpdate(PhoenixStatement.java:350) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement >> >>>>.j >> >> >>ava:1047) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQue >> >>>>ry >> >> >>ServicesImpl.java:1016) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(Phoeni >> >>>>xD >> >> >>river.java:79) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDr >> >>>>iv >> >> >>er.java:107) >> >> >> at sqlline.SqlLine$DatabaseConnection.connect(SqlLine.java:4650) >> >> >> at >> >> >>sqlline.SqlLine$DatabaseConnection.getConnection(SqlLine.java:4701) >> >> >> at sqlline.SqlLine$Commands.connect(SqlLine.java:3942) >> >> >> at sqlline.SqlLine$Commands.connect(SqlLine.java:3851) >> >> >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> >> >> at >> >> >> >> >> >> >> >>>>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja >> >>>>va >> >> >>:57) >> >> >> at >> >> >> >> >> >> >> >>>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso >> >>>>rI >> >> >>mpl.java:43) >> >> >> at java.lang.reflect.Method.invoke(Method.java:606) >> >> >> at >> >> >>sqlline.SqlLine$ReflectiveCommandHandler.execute(SqlLine.java:2810) >> >> >> at sqlline.SqlLine.dispatch(SqlLine.java:817) >> >> >> at sqlline.SqlLine.initArgs(SqlLine.java:633) >> >> >> at sqlline.SqlLine.begin(SqlLine.java:680) >> >> >> at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:441) >> >> >> at sqlline.SqlLine.main(SqlLine.java:424) >> >> >> Caused by: org.apache.hadoop.hbase.MasterNotRunningException: >> >>Retried 14 >> >> >> times >> >> >> at >> >> >> >> org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:139) >> >> >> at >> >> >> >> >> >> >> >>>>org.apache.phoenix.query.ConnectionQueryServicesImpl.ensureTableCreated >> >>>>(C >> >> >>onnectionQueryServicesImpl.java:606) >> >> >> ... 23 more >> >> >> >> >> >> >> >> >> >> >> >> On Sun, Apr 20, 2014 at 9:18 PM, anil gupta <[email protected]> >> >> >>wrote: >> >> >> >> >> >>> I just fixed couple of initialization errors by putting phoenix >> >>jars, >> >> >>> sqlline and jline jars before hbase jars in classpath and added >> >>Hadoop >> >> >>> jars. Now the command is: >> >> >>> *java -cp >> >> >>> >> >> >> >> >>>>>".:/etc/hadoop/conf:/etc/hbase/conf:../sqlline-1.1.2.jar:../jline-2.11 >> >>>>>.j >> >> >> >> >>>>>ar:../phoenix-core-3.0.0-SNAPSHOT.jar:$phoenix_client_jar:/opt/clouder >> >>>>>a/ >> >> >> >> >>>>>parcels/CDH/lib/hbase/hbase-0.94.15-cdh4.6.0-security.jar:/opt/clouder >> >>>>>a/ >> >> >> >> >>>>>parcels/CDH/lib/hbase/lib/*:/opt/cloudera/parcels/CDH/lib/hadoop/*:/op >> >>>>>t/ >> >> >>>cloudera/parcels/CDH/lib/hadoop/lib/*" >> >> >>> *-Dlog4j.configuration=file:$current_dir/log4j.properties >> >> >>> sqlline.SqlLine -d org.apache.phoenix.jdbc.PhoenixDriver -u >> >> >>>jdbc:phoenix:$1 >> >> >>> -n none -p none --color=true --fastConnect=false --verbose=true >> >> >>> --isolation=TRANSACTION_READ_COMMITTED $sqlfile >> >> >>> >> >> >>> At present, it seems like the classpath errors are fixed. I see >> >>this on >> >> >>> the console, but its stuck at this line.: >> >> >>> Found quorum: >> pprf1:2181,pprf2:2181,pprf3:2181,pprf4:2181,pprf5:2181 >> >> >>> >> >> >>> Can anyone tell me where it is probably stuck? >> >> >>> >> >> >>> Thanks, >> >> >>> Anil Gupta >> >> >>> >> >> >>> >> >> >>> On Sun, Apr 20, 2014 at 9:02 PM, anil gupta >> >> >>><[email protected]>wrote: >> >> >>> >> >> >>>> Hi All, >> >> >>>> >> >> >>>> Due to issues faced in Phoenix-19 we cannot use >> >> >>>> phoenix-3.0.0-SNAPSHOT-client.jar, i am trying to run Phoenix on >> >> >>>> commandline with phoenix-3.0.0-SNAPSHOT-client-without-hbase.jar. >> >> >>>>Modified >> >> >>>> command to invoke phoenix in sqlline.sh looks like this: >> >> >>>> java -cp " >> >> >>>> >> >> >> >> >>>>>>*.:/etc/hadoop/conf:/etc/hbase/conf:/opt/cloudera/parcels/CDH/lib/hba >> >>>>>>se >> >> >> >> >>>>>>/hbase-0.94.15-cdh4.6.0-security.jar:/opt/cloudera/parcels/CDH/lib/hb >> >>>>>>as >> >> >> >> >>>>>>e/lib/*:../sqlline-1.1.2.jar:../jline-2.11.jar:../phoenix-core-3.0.0- >> >>>>>>SN >> >> >>>>APSHOT.jar*:$phoenix_client_jar" >> >> >>>> -Dlog4j.configuration=file:$current_dir/log4j.properties >> >> >>>>sqlline.SqlLine -d >> >> >>>> org.apache.phoenix.jdbc.PhoenixDriver -u jdbc:phoenix:$1 -n none >> -p >> >> >>>>none >> >> >>>> --color=true --fastConnect=false --verbose=true >> >> >>>> --isolation=TRANSACTION_READ_COMMITTED $sqlfile >> >> >>>> >> >> >>>> At present, i get the following error: >> >> >>>> [ERROR] Terminal initialization failed; falling back to >> unsupported >> >> >>>> java.lang.IncompatibleClassChangeError: Found class >> jline.Terminal, >> >> >>>>but >> >> >>>> interface was expected >> >> >>>> at jline.TerminalFactory.create(TerminalFactory.java:101) >> >> >>>> at jline.TerminalFactory.get(TerminalFactory.java:159) >> >> >>>> at sqlline.SqlLine$Opts.<init>(SqlLine.java:4846) >> >> >>>> at sqlline.SqlLine.<init>(SqlLine.java:175) >> >> >>>> at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:440) >> >> >>>> at sqlline.SqlLine.main(SqlLine.java:424) >> >> >>>> >> >> >>>> Exception in thread "main" java.lang.IncompatibleClassChangeError: >> >> >>>>Found >> >> >>>> class jline.Terminal, but interface was expected >> >> >>>> at sqlline.SqlLine$Opts.<init>(SqlLine.java:4846) >> >> >>>> at sqlline.SqlLine.<init>(SqlLine.java:175) >> >> >>>> at sqlline.SqlLine.mainWithInputRedirection(SqlLine.java:440) >> >> >>>> at sqlline.SqlLine.main(SqlLine.java:424) >> >> >>>> >> >> >>>> Please let me know what am i missing now? Or What's wrong with the >> >> >>>> initialization command? >> >> >>>> I am using cdh4.6 with HBase0.94.15. >> >> >>>> >> >> >>>> >> >> >>>> -- >> >> >>>> Thanks & Regards, >> >> >>>> Anil Gupta >> >> >>>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> -- >> >> >>> Thanks & Regards, >> >> >>> Anil Gupta >> >> >>> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> Thanks & Regards, >> >> >> Anil Gupta >> >> >> >> >> > >> >> > >> >> > >> >> >-- >> >> >Thanks & Regards, >> >> >Anil Gupta >> >> >> >> >> >> >> >> -- >> >> CONFIDENTIALITY NOTICE >> >> NOTICE: This message is intended for the use of the individual or >> >>entity to >> >> which it is addressed and may contain information that is confidential, >> >> privileged and exempt from disclosure under applicable law. If the >> >>reader >> >> of this message is not the intended recipient, you are hereby notified >> >>that >> >> any printing, copying, dissemination, distribution, disclosure or >> >> forwarding of this communication is strictly prohibited. If you have >> >> received this communication in error, please contact the sender >> >>immediately >> >> and delete it from your system. Thank You. >> >> >> > >> > >> > >> >-- >> >Thanks & Regards, >> >Anil Gupta >> >> >> >> -- >> CONFIDENTIALITY NOTICE >> NOTICE: This message is intended for the use of the individual or entity >> to >> which it is addressed and may contain information that is confidential, >> privileged and exempt from disclosure under applicable law. If the reader >> of this message is not the intended recipient, you are hereby notified >> that >> any printing, copying, dissemination, distribution, disclosure or >> forwarding of this communication is strictly prohibited. If you have >> received this communication in error, please contact the sender >> immediately >> and delete it from your system. Thank You. >> > > > > -- > Thanks & Regards, > Anil Gupta > -- Thanks & Regards, Anil Gupta
