Apparently the Admin server is sending back an HTML form to have the name node logon. I'm not sure how this is supposed to work. I assume the HDFS plugin would take care of this somehow before syncing the policies or throw an exception that it could not log on?
Can someone explain what I should be doing to make this work? Thanks, Aaron On Thu, Sep 21, 2017 at 3:50 PM, Aaron Gresch <agre...@gmail.com> wrote: > > I encountered an error "Class > org.apache.ranger.authorization.hadoop.RangerHdfsAuthorizer > not found" when starting the name node. I added the patch for RANGER-1412 > to my enable-pdfs-plugin.sh script and got past this error. > > Now when I start the namenode, I see this callstack: > > https://github.com/apache/ranger/blob/ranger-0.7/agents- > common/src/main/java/org/apache/ranger/admin/client/ > RangerAdminRESTClient.java#L141 > > > 2017-09-21 20:43:33,571 [main] ERROR util.PolicyRefresher: > PolicyRefresher(serviceName=openqe79blue): failed to refresh policies. > Will continue to use last known version of policies (-1) > > com.sun.jersey.api.client.ClientHandlerException: A message body reader > for Java class org.apache.ranger.plugin.util.ServicePolicies, and Java > type class org.apache.ranger.plugin.util.ServicePolicies, and MIME media > type text/html; charset=ISO-8859-1 was not found > > at com.sun.jersey.api.client.ClientResponse.getEntity( > ClientResponse.java:549) > > at com.sun.jersey.api.client.ClientResponse.getEntity( > ClientResponse.java:506) > > at org.apache.ranger.admin.client.RangerAdminRESTClient. > getServicePoliciesIfUpdated(RangerAdminRESTClient.java:141) > > at org.apache.ranger.plugin.util.PolicyRefresher. > loadPolicyfromPolicyAdmin(PolicyRefresher.java:264) > > at org.apache.ranger.plugin.util.PolicyRefresher.loadPolicy( > PolicyRefresher.java:202) > > at org.apache.ranger.plugin.util.PolicyRefresher.startRefresher( > PolicyRefresher.java:149) > > at org.apache.ranger.plugin.service.RangerBasePlugin.init( > RangerBasePlugin.java:157) > > at org.apache.ranger.authorization.hadoop.RangerHdfsPlugin.init( > RangerHdfsAuthorizer.java:613) > > at org.apache.ranger.authorization.hadoop. > RangerHdfsAuthorizer.start(RangerHdfsAuthorizer.java:98) > > at org.apache.ranger.authorization.hadoop. > RangerHdfsAuthorizer.start(RangerHdfsAuthorizer.java:86) > > at org.apache.hadoop.hdfs.server.namenode.FSNamesystem. > startCommonServices(FSNamesystem.java:1131) > > at org.apache.hadoop.hdfs.server.namenode.NameNode. > startCommonServices(NameNode.java:760) > > at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize( > NameNode.java:711) > > at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>( > NameNode.java:905) > > at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>( > NameNode.java:884) > > at org.apache.hadoop.hdfs.server.namenode.NameNode. > createNameNode(NameNode.java:1610) > > at org.apache.hadoop.hdfs.server.namenode.NameNode.main( > NameNode.java:1678) > > > On Wed, Sep 20, 2017 at 4:59 PM, Ramesh Mani <rm...@hortonworks.com> > wrote: > >> Aron, >> >> Also make sure that the ranger admin conf files >> /etc/ranger/admin/conf/ranger-admin-site.xml >> has these rangerlookup kerberos principal. Should be there after >> installation. >> >> Regards, >> Ramesh >> >> From: Ramesh Mani <rm...@hortonworks.com> >> Date: Wednesday, September 20, 2017 at 1:32 PM >> >> To: "user@ranger.apache.org" <user@ranger.apache.org> >> Subject: Re: HDFS Kerberos documentation/setup >> >> Aron, >> >> TestConnection is just used for lookup purpose only. (To list the >> resource while maintaining policies). There should be steps to create >> keytab for rangerlookup, just make sure that you have policy for that >> user so it can list the hdfs directories/files. >> >> Even if the test connection fails it doesn’t stop you from maintaining >> policies and using ranger. >> >> Regards, >> Ramesh >> >> From: Aaron Gresch <agre...@gmail.com> >> Reply-To: "user@ranger.apache.org" <user@ranger.apache.org> >> Date: Wednesday, September 20, 2017 at 1:10 PM >> To: "user@ranger.apache.org" <user@ranger.apache.org> >> Subject: Re: HDFS Kerberos documentation/setup >> >> >> When I am in the Ranger Admin Service Manager -> Edit Service for HDFS, >> there is a Test Connection button. When I press it, it tries to login with >> Username and Password. We use keytabs. Tracing the ranger_admin.log, in >> BaseClient.java, the lookupPrincipal and lookupKeytab are not set. If I >> force these to be set in the code, it then uses a keytab. >> >> I'm not certain how the keytabs are to be specified other than the >> install.properties file. Clearly I must not have specified them properly. >> >> https://github.com/apache/ranger/blob/688807cf74fc434e246a2f >> 7d6c0e71e941178421/agents-common/src/main/java/org/ >> apache/ranger/plugin/client/BaseClient.java#L79-L80 >> >> >> <https://github.com/apache/ranger/blob/688807cf74fc434e246a2f7d6c0e71e941178421/agents-common/src/main/java/org/apache/ranger/plugin/client/BaseClient.java#L79-L80> >> >> >> On Wed, Sep 20, 2017 at 3:00 PM, Ramesh Mani <rm...@hortonworks.com> >> wrote: >> >>> Aron, >>> >>> When you say Login in with user and password is that Ranger Admin UI >>> login? Or is the hdfs plugin login into ranger to fetch the policy? >>> >>> Looks like the NPE is not related to Ranger, but please check >>> namenode.log what is there. Please enable debug on namenode and check it >>> out. >>> >>> Thanks, >>> Ramesh >>> >>> From: Aaron Gresch <agre...@gmail.com> >>> Reply-To: "user@ranger.apache.org" <user@ranger.apache.org> >>> Date: Wednesday, September 20, 2017 at 12:21 PM >>> To: "user@ranger.apache.org" <user@ranger.apache.org> >>> Subject: Re: HDFS Kerberos documentation/setup >>> >>> >>> Thanks. >>> >>> Having lots of issues trying to get this to work. >>> >>> Issue 1 - Admin Server >>> >>> I'm not exactly sure what I am doing right or wrong so far, but it is >>> still trying to login with a user and password rather than a keytab. In >>> BaseClient.login(), I hard-coded the keytab and principal, and then I see a >>> proper HDFS file listing occurring. This however is failing (see issue >>> 2). Looks like it is expecting some xalogin.xml that does not exist to set >>> these properties. I still need to dig into why this does not exist. >>> >>> I'm not clear what authentication mode means exactly. I don't think >>> UNIX/LDAP/AD fit anything we do based on questioning the Hadoop team here. >>> I'm not exactly clear what this setting is used for or which setting we >>> should specify. >>> >>> Issue 2 - Namenode >>> >>> I installed the plugin and was able to restart the name node, but no >>> policy data was in the cache directory, it appears unable to sync. When I >>> do a "hadoop ls" on the command line, I get a NPE: >>> >>> Caused by: >>> org.apache.hadoop.ipc.RemoteException(java.lang.NullPointerException): >>> java.lang.NullPointerException >>> >>> at org.apache.hadoop.hdfs.DFSUtil.bytes2String(DFSUtil.java:238) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.g >>> etINodeAttrs(FSPermissionChecker.java:243) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.c >>> heckPermission(FSPermissionChecker.java:182) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.c >>> heckTraverse(FSPermissionChecker.java:499) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkTrav >>> erse(FSDirectory.java:1605) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkTrav >>> erse(FSDirectory.java:1623) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSDirectory.resolvePa >>> th(FSDirectory.java:544) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSDirStatAndListingOp >>> .getListingInt(FSDirStatAndListingOp.java:55) >>> >>> at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getListi >>> ng(FSNamesystem.java:3695) >>> >>> >>> On Tue, Sep 19, 2017 at 2:53 PM, Ramesh Mani <rm...@hortonworks.com> >>> wrote: >>> >>>> Hi Aaron >>>> >>>> Please check this out https://cwiki.apache.org/c >>>> onfluence/display/RANGER/Ranger+installation+in+Kerberized++Environment >>>> >>>> Regards, >>>> Ramesh >>>> >>>> From: Aaron Gresch <agre...@gmail.com> >>>> Reply-To: "user@ranger.apache.org" <user@ranger.apache.org> >>>> Date: Tuesday, September 19, 2017 at 11:58 AM >>>> To: "user@ranger.apache.org" <user@ranger.apache.org> >>>> Subject: HDFS Kerberos documentation/setup >>>> >>>> 1) What documentation should I be following to install Ranger manually >>>> for a Kerberos Hadoop cluster? I am interested in the HDFS Plugin. >>>> >>>> This is what I found linked from the apache site, but is very old: >>>> >>>> https://cwiki.apache.org/confluence/display/RANGER/Ranger+In >>>> stallation+Guide >>>> >>>> >>>> 2) Following those instructions, I see "Create a repository in Ranger >>>> Policy Manager. E.g. "local_hdfs"." >>>> >>>> Is this the same as creating a Service? I see Services under HDFS on >>>> the Ranger admin server. >>>> >>>> >>>> 3) Creating an HDFS service lists a Username and Password. We don't >>>> use passwords for our clusters, but have keytabs. What should this >>>> mandatory field be? What is it used for? >>>> >>>> >>>> 4) How is this supposed to be setup for secure clusters? Is there any >>>> manually setup example I can be pointed to? >>>> >>>> >>>> Thanks, >>>> Aaron >>>> >>> >>> >> >