Hello,
I am trying to configure SAS access to Hadoop and running into the below error when running the Sample Lib code for SAS Hadoop connectivity. I am using HDP 2.2 and used the hadooptracer.py script to get all the jar and conf files. I set the SAS_HADOOP_CONFIG_PATH and SAS_HADOOP_JAR_PATH to the respective files.
We are using kerberos so maybe I am missing some other step? From the SAS Server i can access hdfs and hive. This is the error we are recieving as well as the lib code we are using: (also not i tried settign subprotocol=hive2 but that did not resolve anything)
options set=SAS_HADOOP_CONFIG_PATH "/sasdev/app/sasinst/hadoop/conf";
options set=SAS_HADOOP_JAR_PATH "/sasdev/app/sasinst/hadoop/lib";
libname hdplib hadoop server="700224-hdp.coach.com";
1 ;*';*";*/;quit;run;
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL='Program';
4 %LET _CLIENTPROJECTPATH='';
5 %LET _CLIENTPROJECTNAME='';
6 %LET _SASPROGRAMFILE=;
7
8 ODS _ALL_ CLOSE;
9 OPTIONS DEV=ACTIVEX;
10 GOPTIONS XPIXELS=0 YPIXELS=0;
11 FILENAME EGSR TEMP;
12 ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR STYLE=HtmlBlue
12 ! STYLESHEET=(URL="file:///C:/Program%20Files/SASHome/SASEnterpriseGuide/5.1/Styles/HtmlBlue.css") NOGTITLE NOGFOOTNOTE
12 ! GPATH=&sasworklocation ENCODING=UTF8 options(rolap="on");
NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR
13
14 GOPTIONS ACCESSIBLE;
15 options set=SAS_HADOOP_CONFIG_PATH "/sasdev/app/sasinst/hadoop/conf";
16 options set=SAS_HADOOP_JAR_PATH "/sasdev/app/sasinst/hadoop/lib";
17 libname hdplib hadoop server="700224-hdp.coach.com";
ERROR: Unable to connect to the Hive server.
WARNING: Connection to HiveServer2 failed. Attempting to connect using Hive1. Set SUBPROTOCOL=hive2 if you are running HiveServer2.
Set SUBPROTOCOL=hive if you are running Hive1.
ERROR: Could not open connection to jdbc:hive://700224-hdp.coach.com:10000/default;principal=hive/_HOST@DEV.COACH.COM. Check your
Hive server status and also set option SUBPROTOCOL= appropriately. Set SUBPROTOCOL=hive2 if you are running HiveServer2.
Set SUBPROTOCOL=hive if you are running Hive1.
ERROR: Error trying to establish connection.
ERROR: Error in the LIBNAME statement.
18
19 GOPTIONS NOACCESSIBLE;
20 %LET _CLIENTTASKLABEL=;
21 %LET _CLIENTPROJECTPATH=;
22 %LET _CLIENTPROJECTNAME=;
23 %LET _SASPROGRAMFILE=;
24
25 ;*';*";*/;quit;run;
26 ODS _ALL_ CLOSE;
27
28
29 QUIT; RUN;
30
So i have confirmed that it is soemthing kerberos related.
I ran the SAS deployment manager which pulled down the JAR/CONF files and i have verified that the SAS_HADOOP_CONFIG_PATH and SAS_HADOOP_JAR_PATH are pointing to the correct path.
Can someone outline the steps involved with kerberos? It is a little unclear. Which user does it try to authenticate with when it runs the libname command?
I created a ticket (kinit) with the user on the SAS server (this allows me to access hdfs) and tried to EXPORT KRB5CCNAME=/tmp/krb5_"id" but that did not work either.
Does the HDFS/HIVE on the cluster user need to have a valid ticket?
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.