Hi Sergey, Josh,

Thank you very much for your comments !!

Best Reagrds,
Rafa.

On Tue, Apr 18, 2017 at 5:29 AM, Sergey Soldatov <sergeysolda...@gmail.com>
wrote:

> That's not hbase-site.xml loaded incorrectly. This is the behavior of java
> classpath. It's accept only jars and directories. So if any resources
> should be added to the classpath other than jars, you need to add to the
> classpath the directory where they are located.
>
> Thanks,
> Sergey
>
> On Tue, Apr 11, 2017 at 10:15 AM, rafa <raf...@gmail.com> wrote:
>
>> Hi all,
>>
>>
>> I have been able to track down the origin of the problem and it is
>> related to the hbase-site.xml not being loaded correctly by the application
>> server.
>>
>> Seeing the instructions given by Anil in this JIRA:
>> https://issues.apache.org/jira/browse/PHOENIX-19 it has been easy to
>> reproduce it
>>
>> java <r...@clo-mgr-p-01u.cajamar.int:/tmp/testhbase2%3ejava>  -cp
>> /tmp/testhbase2:/opt/cloudera/parcels/CLABS_PHOENIX-4.7.0-1.
>> clabs_phoenix1.3.0.p0.000/lib/phoenix/lib/hadoop-hdfs-2.6.0-
>> cdh5.7.0.jar:/opt/cloudera/parcels/CLABS_PHOENIX-4.7.0-1.cla
>> bs_phoenix1.3.0.p0.000/lib/phoenix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar
>> sqlline.SqlLine -d org.apache.phoenix.jdbc.PhoenixDriver  -u
>> jdbc:phoenix:node-01u.xxxx.int:2181:phoe...@hadoop.int:/etc/
>> security/keytabs/phoenix.keytab  -n none -p none --color=true
>> --fastConnect=false --verbose=true  --incremental=false
>> --isolation=TRANSACTION_READ_COMMITTED
>>
>> In /tmp/testhbase2 there are 3 files:
>>
>> -rw-r--r--   1 root root  4027 Apr 11 18:23 hdfs-site.xml
>> -rw-r--r--   1 root root  3973 Apr 11 18:29 core-site.xml
>> -rw-rw-rw-   1 root root  3924 Apr 11 18:49 hbase-site.xml
>>
>>
>> a) If hdfs-site.xml is missing or invalid:
>>
>> It fails with Caused by: java.lang.IllegalArgumentException:
>> java.net.UnknownHostException: nameservice1
>>
>> (with HA HDFS, hdfs-site.xml  is needed to resolve the name service)
>>
>> b) if core-site.xml is missing or invalid:
>>
>>  17/04/11 19:05:01 WARN security.UserGroupInformation:
>> PriviledgedActionException as:root (auth:SIMPLE)
>> cause:javax.security.sasl.SaslException: GSS initiate failed [Caused by
>> GSSException: No valid credentials provided (Mechanism level: Failed to
>> find any Kerberos tgt)]
>> 17/04/11 19:05:01 WARN ipc.RpcClientImpl: Exception encountered while
>> connecting to the server : javax.security.sasl.SaslException: GSS
>> initiate failed [Caused by GSSException: No valid credentials provided
>> (Mechanism level: Failed to find any Kerberos tgt)]
>> 17/04/11 19:05:01 FATAL ipc.RpcClientImpl: SASL authentication failed.
>> The most likely cause is missing or invalid credentials. Consider 'kinit'.
>> javax.security.sasl.SaslException: GSS initiate failed [Caused by
>> GSSException: No valid credentials provided (Mechanism level: Failed to
>> find any Kerberos tgt)]
>>         at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChalleng
>> e(GssKrb5Client.java:211)
>>         at org.apache.hadoop.hbase.security.HBaseSaslRpcClient.saslConn
>> ect(HBaseSaslRpcClient.java:181)
>>
>> ...
>> Caused by: GSSException: No valid credentials provided (Mechanism level:
>> Failed to find any Kerberos tgt)
>>         at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5In
>> itCredential.java:147)
>>         at sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(
>> Krb5MechFactory.java:121)
>>         at sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(K
>> rb5MechFactory.java:187)
>>         at sun.security.jgss.GSSManagerImpl.getMechanismContext(GSSMana
>> gerImpl.java:223)
>>         at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextIm
>> pl.java:212)
>>         at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextIm
>> pl.java:179)
>>         at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChalleng
>> e(GssKrb5Client.java:192)
>>
>>
>>
>> c) If hbase-site.xml is missing or invalid:
>>
>> The zookeeeper connection works right, but not the Hbase master one:
>>
>> java  -cp /tmp/testhbase2:/opt/cloudera/parcels/CLABS_PHOENIX-4.7.0-1.
>> clabs_phoenix1.3.0.p0.000/lib/phoenix/lib/hadoop-hdfs-2.6.0-
>> cdh5.7.0.jar:/opt/cloudera/parcels/CLABS_PHOENIX-4.7.0-1.cla
>> bs_phoenix1.3.0.p0.000/lib/phoenix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar
>> sqlline.SqlLine -d org.apache.phoenix.jdbc.PhoenixDriver  -u
>> jdbc:phoenix:node-01u.xxxx.int:2181:phoe...@hadoop.int:/etc/
>> security/keytabs/phoenix.keytab  -n none -p none --color=true
>> --fastConnect=false --verbose=true  --incremental=false
>> --isolation=TRANSACTION_READ_COMMITTED
>> Setting property: [incremental, false]
>> Setting property: [isolation, TRANSACTION_READ_COMMITTED]
>> issuing: !connect jdbc:phoenix:node-01u.xxxx.int:2181:phoe...@hadoop.int:
>> /etc/security/keytabs/phoenix.keytab none none
>> org.apache.phoenix.jdbc.PhoenixDriver
>> Connecting to jdbc:phoenix:node-01u.xxxx.int:2181:phoe...@hadoop.int:
>> /etc/security/keytabs/phoenix.keytab
>> 17/04/11 19:06:38 INFO query.ConnectionQueryServicesImpl: Trying to
>> connect to a secure cluster with keytab:/etc/security/keytabs/p
>> hoenix.keytab
>> 17/04/11 19:06:38 INFO security.UserGroupInformation: Login successful
>> for user phoe...@hadoop.int using keytab file
>> /etc/security/keytabs/phoenix.keytab
>> 17/04/11 19:06:38 INFO query.ConnectionQueryServicesImpl: Successfull
>> login to secure cluster!!
>> 17/04/11 19:06:38 INFO zookeeper.RecoverableZooKeeper: Process
>> identifier=hconnection-0x6f9edfc9 connecting to ZooKeeper ensemble=
>> node-01u.xxxx.int:2181
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:zookeeper.version=3.4.5-cdh5.7.0--1, built on 04/17/2016
>> 08:12 GMT
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client environment:host.name=
>> node-01u.xxxx.int
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:java.version=1.7.0_131
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:java.vendor=Oracle Corporation
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:java.home=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.
>> 131.x86_64/jre
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:java.class.path=/tmp/testhbase2:/opt/cloudera/parcels/
>> CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000/lib/ph
>> oenix/lib/hadoop-hdfs-2.6.0-cdh5.7.0.jar:/opt/cloudera/parce
>> ls/CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000/lib/phoen
>> ix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:java.library.path=/usr/java/packages/lib/amd64:/
>> usr/lib64:/lib64:/lib:/usr/lib
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:java.io.tmpdir=/tmp
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:java.compiler=<NA>
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client environment:os.name
>> =Linux
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:os.arch=amd64
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:os.version=2.6.32-573.26.1.el6.x86_64
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client environment:user.name
>> =root
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:user.home=/root
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Client
>> environment:user.dir=/tmp/testhbase2
>> 17/04/11 19:06:38 INFO zookeeper.ZooKeeper: Initiating client connection,
>> connectString=node-01u.xxxx.int:2181 sessionTimeout=90000
>> watcher=hconnection-0x6f9edfc90x0, quorum=node-01u.xxxx.int:2181,
>> baseZNode=/hbase
>> 17/04/11 19:06:39 INFO zookeeper.ClientCnxn: Opening socket connection to
>> server node-01u.xxxx.int/192.168.101.161:2181. Will not attempt to
>> authenticate using SASL (unknown error)
>> 17/04/11 19:06:39 INFO zookeeper.ClientCnxn: Socket connection
>> established, initiating session, client: /192.168.101.161:33960, server:
>> node-01u.xxxx.int/192.168.101.161:2181
>> 17/04/11 19:06:39 INFO zookeeper.ClientCnxn: Session establishment
>> complete on server node-01u.xxxx.int/192.168.101.161:2181, sessionid =
>> 0x15afb9d0dee8c0f, negotiated timeout = 60000
>> 17/04/11 19:06:39 WARN util.NativeCodeLoader: Unable to load
>> native-hadoop library for your platform... using builtin-java classes where
>> applicable
>> 17/04/11 19:06:39 INFO metrics.Metrics: Initializing metrics system:
>> phoenix
>> 17/04/11 19:06:39 WARN impl.MetricsConfig: Cannot locate configuration:
>> tried hadoop-metrics2-phoenix.properties,hadoop-metrics2.properties
>> 17/04/11 19:06:39 INFO impl.MetricsSystemImpl: Scheduled snapshot period
>> at 10 second(s).
>> 17/04/11 19:06:39 INFO impl.MetricsSystemImpl: phoenix metrics system
>> started
>> 17/04/11 19:06:39 INFO Configuration.deprecation: hadoop.native.lib is
>> deprecated. Instead, use io.native.lib.available
>> 17/04/11 19:07:28 INFO client.RpcRetryingCaller: Call exception,
>> tries=10, retries=35, started=48483 ms ago, cancelled=false, msg=
>> 17/04/11 19:07:48 INFO client.RpcRetryingCaller: Call exception,
>> tries=11, retries=35, started=68653 ms ago, cancelled=false, msg=
>>
>>
>> Hbase master:
>>
>> 2017-04-11 19:06:40,212 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>> RpcServer.listener,port=60000: Caught exception while
>> reading:Authentication is required
>> 2017-04-11 19:06:40,418 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>> RpcServer.listener,port=60000: Caught exception while
>> reading:Authentication is required
>> 2017-04-11 19:06:40,726 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>> RpcServer.listener,port=60000: Caught exception while
>> reading:Authentication is required
>> 2017-04-11 19:06:41,233 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>> RpcServer.listener,port=60000: Caught exception while
>> reading:Authentication is required
>>
>>
>> Thanks !!
>> Best Regards,
>> rafa
>>
>>
>>
>>
>> On Tue, Apr 11, 2017 at 4:05 PM, rafa <raf...@gmail.com> wrote:
>>
>>> Hi everybody !,
>>>
>>> We have a CDH 5.8 kerberized cluster in which we have installed Apache
>>> Phoenix 4.7 (via CLABS parcel). Everything works as expected. The only
>>> problem we are facing is when trying to connect a WeblogicServer to Apache
>>> Phoenix via the fat client.
>>>
>>> needed files are added in classpath: hbase-site.xml,core-site.xml and
>>> hdfs-site.xml
>>>
>>> Jaas.conf used:
>>>
>>> Client {
>>> com.sun.security.auth.module.Krb5LoginModule required principal="
>>> phoe...@hadoop.int"
>>> useKeyTab=true
>>> keyTab=phoenix.keytab
>>> storeKey=true
>>> debug=true;
>>> };
>>>
>>> JDBC URL used: jdbc:phoenix:node-01u.xxxx.int:2181:hbase/
>>> phoe...@hadoop.int:/wldoms/domcb1arqu/phoenix.keytab
>>>
>>> The secured connection is made correctly in Zookeeper, but it never
>>> succeeds when connecting to the HBase Master
>>>
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client
>>> environment:java.io.tmpdir=/tmp
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client
>>> environment:java.compiler=<NA>
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client environment:os.name
>>> =Linux
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client
>>> environment:os.arch=amd64
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client
>>> environment:os.version=2.6.32-642.11.1.el6.x86_64
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client environment:user.name
>>> =weblogic
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client
>>> environment:user.home=/home/weblogic
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Client
>>> environment:user.dir=/wldoms/dominios/domcb1arqu
>>> 17/04/10 12:38:23 INFO zookeeper.ZooKeeper: Initiating client
>>> connection, connectString=node-01u.xxxx.int:2181 sessionTimeout=90000
>>> watcher=hconnection-0x589619380x0, quorum=node-01u.xxxx.int:2181,
>>> baseZNode=/hbase
>>> 17/04/10 12:38:23 INFO zookeeper.Login: successfully logged in.
>>> 17/04/10 12:38:23 INFO zookeeper.Login: TGT refresh thread started.
>>> 17/04/10 12:38:23 INFO zookeeper.Login: TGT valid starting at:
>>> Mon Apr 10 12:38:23 CEST 2017
>>> 17/04/10 12:38:23 INFO zookeeper.Login: TGT expires:
>>> Tue Apr 11 12:38:23 CEST 2017
>>> 17/04/10 12:38:23 INFO zookeeper.Login: TGT refresh sleeping until: Tue
>>> Apr 11 08:20:46 CEST 2017
>>> 17/04/10 12:38:23 INFO client.ZooKeeperSaslClient: Client will use
>>> GSSAPI as SASL mechanism.
>>> 17/04/10 12:38:23 INFO zookeeper.ClientCnxn: Opening socket connection
>>> to server node-01u.xxxx.int/192.168.101.161:2181. Will attempt to
>>> SASL-authenticate using Login Context section 'Client'
>>> 17/04/10 12:38:23 INFO zookeeper.ClientCnxn: Socket connection
>>> established, initiating session, client: /192.168.60.6:49232, server:
>>> node-01u.xxxx.int/192.168.101.161:2181
>>> 17/04/10 12:38:23 INFO zookeeper.ClientCnxn: Session establishment
>>> complete on server node-01u.xxxx.int/192.168.101.161:2181, sessionid =
>>> 0x15afb9d0dee82a6, negotiated timeout = 60000
>>> 17/04/10 12:38:24 INFO metrics.Metrics: Initializing metrics system:
>>> phoenix
>>> 17/04/10 12:38:24 WARN impl.MetricsConfig: Cannot locate configuration:
>>> tried hadoop-metrics2-phoenix.properties,hadoop-metrics2.properties
>>> 17/04/10 12:38:24 INFO impl.MetricsSystemImpl: Scheduled snapshot period
>>> at 10 second(s).
>>> 17/04/10 12:38:24 INFO impl.MetricsSystemImpl: phoenix metrics system
>>> started
>>> 17/04/10 12:38:24 INFO Configuration.deprecation: hadoop.native.lib is
>>> deprecated. Instead, use io.native.lib.available
>>> 17/04/10 12:39:13 INFO client.RpcRetryingCaller: Call exception,
>>> tries=10, retries=35, started=48396 ms ago, cancelled=false, msg=
>>> 17/04/10 12:39:33 INFO client.RpcRetryingCaller: Call exception,
>>> tries=11, retries=35, started=68572 ms ago, cancelled=false, msg=
>>> 17/04/10 12:39:53 INFO client.RpcRetryingCaller: Call exception,
>>> tries=12, retries=35, started=88752 ms ago, cancelled=false, msg=
>>> 17/04/10 12:40:13 INFO client.RpcRetryingCaller: Call exception,
>>> tries=13, retries=35, started=108791 ms ago, cancelled=false, msg=
>>>
>>>
>>> keeps retrying until it finally fails.
>>> ....
>>>
>>> We obtain:
>>>
>>> Mon Apr 10 12:38:24 CEST 2017, 
>>> RpcRetryingCaller{globalStartTime=1491820704684,
>>> pause=100, retries=35}, org.apache.hadoop.hbase.MasterNotRunningException:
>>> com.google.protobuf.ServiceException: org.apache.hadoop.hbase.except
>>> ions.ConnectionClosingException: Call to node-05u.xxxx.int/192.168.101.
>>> 167:60000 failed on local exception: org.apache.hadoop.hbase.except
>>> ions.ConnectionClosingException: Connection to
>>> node-05u.xxxx.int/192.168.101.167:60000 is closing. Call id=0,
>>> waitTime=32
>>> Mon Apr 10 12:38:25 CEST 2017, 
>>> RpcRetryingCaller{globalStartTime=1491820704684,
>>> pause=100, retries=35}, org.apache.hadoop.hbase.MasterNotRunningException:
>>> com.google.protobuf.ServiceException: org.apache.hadoop.hbase.except
>>> ions.ConnectionClosingException: Call to node-05u.xxxx.int/192.168.101.
>>> 167:60000 failed on local exception: org.apache.hadoop.hbase.except
>>> ions.ConnectionClosingException: Connection to
>>> node-05u.xxxx.int/192.168.101.167:60000 is closing. Call id=1,
>>> waitTime=6
>>>
>>>
>>> The connectivity to Hbase Master (port 60000) is ok from the WLS machine.
>>>
>>> Looking at the HBase Master logs we see that the HBase Master is
>>> responding everytime with "Authentication is required" error:
>>>
>>>
>>> 2017-04-10 12:47:15,849 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> RpcServer.listener,port=60000: connection from 192.168.60.6:34380; #
>>> active connections: 5
>>> 2017-04-10 12:47:15,849 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> RpcServer.listener,port=60000: Caught exception while
>>> reading:Authentication is required
>>> 2017-04-10 12:47:15,849 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> RpcServer.listener,port=60000: DISCONNECTING client 192.168.60.6:34380
>>> because read count=-1. Number of active connections:
>>>
>>> Executing a "hbase shell" manually inside the cluster after obtaining a
>>> ticket with the same keytab we see:
>>>
>>>
>>> 2017-04-11 12:33:12,319 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> RpcServer.listener,port=60000: connection from 192.168.101.161:60370; #
>>> active connections: 5
>>> 2017-04-11 12:33:12,330 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> Kerberos principal name is hbase/node-05u.xxxx....@hadoop.int
>>> 2017-04-11 12:33:12,330 DEBUG 
>>> org.apache.hadoop.security.UserGroupInformation:
>>> PrivilegedAction as:hbase/node-05u.xxxx....@hadoop.int (auth:KERBEROS)
>>> from:org.apache.hadoop.hbase.ipc.RpcServer$Connection.saslRe
>>> adAndProcess(RpcServer.java:1354)
>>> 2017-04-11 12:33:12,331 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> Created SASL server with mechanism = GSSAPI
>>> 2017-04-11 12:33:12,331 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> Have read input token of size 640 for processing by
>>> saslServer.evaluateResponse()
>>> 2017-04-11 12:33:12,333 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> Will send token of size 108 from saslServer.
>>> 2017-04-11 12:33:12,335 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> Have read input token of size 0 for processing by
>>> saslServer.evaluateResponse()
>>> 2017-04-11 12:33:12,335 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> Will send token of size 32 from saslServer.
>>> 2017-04-11 12:33:12,336 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> Have read input token of size 32 for processing by
>>> saslServer.evaluateResponse()
>>> 2017-04-11 12:33:12,336 DEBUG 
>>> org.apache.hadoop.hbase.security.HBaseSaslRpcServer:
>>> SASL server GSSAPI callback: setting canonicalized client ID:
>>> phoe...@hadoop.int
>>> 2017-04-11 12:33:12,336 DEBUG org.apache.hadoop.hbase.ipc.RpcServer:
>>> SASL server context established. Authenticated client:
>>> phoe...@hadoop.int (auth:KERBEROS). Negotiated QoP is auth
>>> 2017-04-11 12:33:12,336 INFO SecurityLogger.org.apache.hadoop.hbase.Server:
>>> Auth successful for phoe...@hadoop.int (auth:KERBEROS)
>>> 2017-04-11 12:33:12,338 INFO SecurityLogger.org.apache.hadoop.hbase.Server:
>>> Connection from 192.168.101.161 port: 60370 with version info: version:
>>> "1.2.0-cdh5.8.0" url: "file:///data/jenkins/workspac
>>> e/generic-package-rhel64-6-0/topdir/BUILD/hbase-1.2.0-cdh5.8.0"
>>> revision: "Unknown" user: "jenkins" date: "Tue Jul 12 16:09:11 PDT 2016"
>>> src_checksum: "b910b34d6127cf42495e0a8bf37a0e9e"
>>> 2017-04-11 12:33:12,338 INFO SecurityLogger.org.apache.hado
>>> op.security.authorize.ServiceAuthorizationManager: Authorization
>>> successful for phoe...@hadoop.int (auth:KERBEROS) for
>>> protocol=interface org.apache.hadoop.hbase.protob
>>> uf.generated.MasterProtos$MasterService$BlockingInterface
>>>
>>> It seems that the JDBC driver is not trying to authenticate to Hbase.
>>> Perhaps some of you have faced a similar situation or could point me to a
>>> new direction.
>>>
>>> Thank you very much for your help !
>>> Best Regards,
>>> rafa.
>>>
>>>
>>>
>>
>

Reply via email to