Sorry, this ref does not help me. I have set up the configuration in hbase-site.xml. But it seems there are still some extra configurations to be set or APIs to be called to make my spark program be able to pass the authentication with the HBase.
Does anybody know how to set authentication to a secured HBase in a spark program which use the API "newAPIHadoopRDD" to get information from HBase? Many Thanks! ------------------ ???????? ------------------ ??????: "yuzhihong";<yuzhih...@gmail.com>; ????????: 2015??5??19??(??????) ????9:54 ??????: "donhoff_h"<165612...@qq.com>; ????: "user"<user@spark.apache.org>; ????: Re: How to use spark to access HBase with Security enabled Please take a look at: http://hbase.apache.org/book.html#_client_side_configuration_for_secure_operation Cheers On Tue, May 19, 2015 at 5:23 AM, donhoff_h <165612...@qq.com> wrote: The principal is sp...@bgdt.dev.hrb. It is the user that I used to run my spark programs. I am sure I have run the kinit command to make it take effect. And I also used the HBase Shell to verify that this user has the right to scan and put the tables in HBase. Now I still have no idea how to solve this problem. Can anybody help me to figure it out? Many Thanks! ------------------ ???????? ------------------ ??????: "yuzhihong";<yuzhih...@gmail.com>; ????????: 2015??5??19??(??????) ????7:55 ??????: "donhoff_h"<165612...@qq.com>; ????: "user"<user@spark.apache.org>; ????: Re: How to use spark to access HBase with Security enabled Which user did you run your program as ? Have you granted proper permission on hbase side ? You should also check master log to see if there was some clue. Cheers On May 19, 2015, at 2:41 AM, donhoff_h <165612...@qq.com> wrote: Hi, experts. I ran the "HBaseTest" program which is an example from the Apache Spark source code to learn how to use spark to access HBase. But I met the following exception: Exception in thread "main" org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions: Tue May 19 16:59:11 CST 2015, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=68648: row 'spark_t01,,00000000000000' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=bgdt01.dev.hrb,16020,1431412877700, seqNum=0 I also checked the RegionServer Log of the host "bgdt01.dev.hrb" listed in the above exception. I found a few entries like the following one: 2015-05-19 16:59:11,143 DEBUG [RpcServer.reader=2,bindAddress=bgdt01.dev.hrb,port=16020] ipc.RpcServer: RpcServer.listener,port=16020: Caught exception while reading:Authentication is required The above entry did not point to my program clearly. But the time is very near. Since my hbase version is HBase1.0.0 and I set security enabled, I doubt the exception was caused by the Kerberos authentication. But I am not sure. Do anybody know if my guess is right? And if I am right, could anybody tell me how to set Kerberos Authentication in a spark program? I don't know how to do it. I already checked the API doc , but did not found any API useful. Many Thanks! By the way, my spark version is 1.3.0. I also paste the code of "HBaseTest" in the following: ***************************Source Code****************************** object HBaseTest { def main(args: Array[String]) { val sparkConf = new SparkConf().setAppName("HBaseTest") val sc = new SparkContext(sparkConf) val conf = HBaseConfiguration.create() conf.set(TableInputFormat.INPUT_TABLE, args(0)) // Initialize hBase table if necessary val admin = new HBaseAdmin(conf) if (!admin.isTableAvailable(args(0))) { val tableDesc = new HTableDescriptor(args(0)) admin.createTable(tableDesc) } val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable], classOf[org.apache.hadoop.hbase.client.Result]) hBaseRDD.count() sc.stop() } }