0
点赞
收藏
分享

微信扫一扫

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala

冬冬_79d4 2022-09-22 阅读 174


作者:朱超杰

文档编写目的


SAS提供了从基本统计数的计算到各种试验设计的方差分析,相关回归分析以及多变数分析的多种统计分析过程,几乎囊括了所有最新分析方法,其分析技术先进,可靠。分析方法的实现通过过程调用完成。许多过程同时提供了多种算法和选项。Cloudera与SAS是相互认证的合作伙伴,在各自的官网都能找到集成安装的专业文档,也能得到专业的支持。本文主要是介绍如何安装SAS,并在非Kerberos环境下连接Hive和Impala;以及在Kerberos环境下连接Hive和Impala


  • 内容概述

1.前置准备

2.SAS安装与配置

3.非Kerberos环境集成

4.Kerberos环境集成

5.总结


  • 测试环境

1.CM和CDH版本均为6.2.0

2.采用root用户

3.客户端系统Windows 10

4.SAS版本为9.4


SAS安装与配置


1.将下载好的安装包解压(只需解压一个即可),得到如下文件夹


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端


2.进入解压后的文件夹,然后以管理员身份运行setup.exe


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_02

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_03


3.语言选择,选择简体中文


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_04


4.选择【安装SAS软件】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_05


5.配置SAS的安装主目录


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_06


6.选择【安装SAS Foundation和相关软件】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_07


7.除了SAS Bridge for Esri这一项之外,其他项全选


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_08


8.根据操作系统选择相应的版本


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_09

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_10


9.勾选全部产品,可以看到有访问Hadoop和Impala的接口


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_11


10.添加SID文件。

在google上面直接查询“SID_header SAS 9.4 win 64 2019 filetype:txt”这段文字,其中9.4是SAS的版本,2019是过期的年份,还要看一下操作系统是64位还是32位的,进行相应的修改


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_12


11.先【全部清除】,然后选择【简体中文】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_13


12.确认区域设置


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_14


13.选择【SAS Foundation(64位)】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_15


14.指定浏览器


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_16


15.设置SAS JAVA Applet的部署目录


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_17


16.取消勾选SAS开机自启


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_18


17.SAS PC File Server的端口号


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_19


18.配置SAS环境url


http://localhost:8080/saslogon/sas-environment.xml


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_20


19.此时显示客户端的主机名和端口


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_21


20.检查系统加载安装包


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_22


21.可以看到下面的提示,如果出现不可写文件,就要按照提示的步骤来操作


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_23


22.检查完成后会按照要求安装一些软件


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_24


单击【开始】则会开始安装,在之前没有装过SAS的主机上,会先安装一些基本的服务,这些是系统要求的部分,如果安装失败则必须要先中止余下的安装,想办法将这些系统要求的软件安装上才可以。在安装完一些系统要求的服务后可能会提示需要重启主机,这时需要重启主机,再来安装。在安装其他服务(非系统要求的必须服务)的时候,安装成功则会在左侧有个绿色的对号,有些服务可能会安装失败,这时没关系,可以直接继续安装,不会影响使用。


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_25

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_26

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_27

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_28


23.打开SAS主页如下:


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_29


24.使用命令来查看可以使用的模块


proc setinit;                                                                                                                           
run;


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_30




注意:所列出的模块必须要有hadoop的模块,如果没有,则需要去找一个包含hadoop模块的SID文件更新一下,确定做法在安装步骤里有讲述



非Kerberos环境集成

3.1 SAS客户端环境配置


1.当前集群运行正常


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_31


2.集群未启用kerberos认证


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_32


3.拷贝jar包

注意:因为CDH6.2.0要求JDK版本最低为JDK1.8,而本次安装SAS只最高支持JDK1.7,所以此时需要将C5集群的/opt/Cloudera/parcels/CDH/jars目录下的所有jar包拷贝到SAS客户端所在机器


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_33


4.通过Cloudera Manager Web界面下载HDFS的客户端配置文件至本地


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_34

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_35


5.配置本地环境变量


根据我们本地存放的路径,配置如下环境变量:


SAS_HADOOP_CONFIG_PATH= F:\Software_Install_Dir\hdfs-clientconfig\hadoop-conf
SAS_HADOOP_JAR_PATH= F:\Software_Install_Dir\jars
SAS_HADOOP_RESTFUL=1


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_36

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_37

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_38


6.将集群主机信息添加到本地C:\Windows\System32\drivers\etc\hosts文件中


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_39


3.2 SAS连接Hive及操作


1.打开SAS,然后执行如下代码连接Hive,并执行SQL查询


libname hive Hadoop server="192.168.0.173" database="default" user="hive" password="123456";
proc sql;
select * from hive.sastest;
quit;


2.如下图所示,SAS成功连接Hive的default数据库,并在SAS资源管理器左侧出现了Hive逻辑库


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_40


3.SQL查询结果如下:


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_41


3.3 SAS连接Impala及操作


1.下载Impala ODBC驱动


https://www.cloudera.com/downloads/connectors/impala/odbc/2-6-5.html


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_42


2.双击下载好的msi文件安装Impala ODBC驱动


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_43

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_44

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_45

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_46

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_47

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_48


3.打开【控制面板主页】-> 【管理工具】-> 【ODBC 数据源(64位)】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_49

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_50


4.单击【添加】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_51


5.选择Impala的ODBC数据源,然后单击【完成】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_52

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_53


6.打开SAS,执行以下代码:


libname Impala impala server="192.168.0.173" database="default" user="test1" password="123456";
proc sql;
select * from Impala.sastest;
quit;


7.成功连接Impala,在SAS资源管理器中出现了Impala的逻辑库并执行表查询


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_54


8.SQL查询结果如下:


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_55


Kerberos环境集成

4.1 SAS客户端环境配置


1.集群已启用Kerberos认证


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_56


2.通过Cloudera Manager Web界面下载HDFS的客户端配置文件至本地


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_57

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_58


3.修改SAS_HADOOP_CONFIG_PATH环境变量配置如下:


SAS_HADOOP_CONFIG_PATH= F:\Software_Install_Dir\hdfs-clientconfig\hadoop-conf_kb


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_59


4.将集群中的krb5.conf文件拷贝到SAS自带的JDK目录SASHome\SASPrivateJavaRuntimeEnvironment\9.4\jre\lib\security下,如下所示


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_60

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_61


5.安装JCE



注意:SAS在集成Kerberos环境的Impala和Hive时,没有给SAS默认的JDK安装JCE文件。



下载JCE压缩包,解压后如下所示


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_62


将local_policy.jar和US_export_policy.jar文件拷贝到SAS自带的JDK目录,如下所示:


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_63


4.2 安装Kerberos客户端


1.在Kerberos官网下载安装包,下载地址:


http://web.mit.edu/kerberos/dist/


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_64


2.安装步骤如下所示:

双击下载好的msi文件


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_65


3.单击【Next】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_66


4.选择接收协议,然后单击【Next】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_67


5.单击【Typical】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_68


6.单击【Install】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_69


7.安装完成,单击【Finish】


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_70


至此安装完成


8.配置C:\ProgramData\MIT\Kerberos5\krb5.ini文件


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_71


将安装KDC Server的服务器上的/etc/krb5.conf配置文件中的部分内容拷贝到该文件中


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_72




注意:不要直接替换krb5.ini文件,否则会出现文件格式问题,建议拷贝部分内容到krb5.ini文件中,然后保存文件




9.配置环境变量,如下所示:


KRB5_CONFIG= C:\ProgramData\MIT\Kerberos5\krb5.ini


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_73



10.在C盘创建一个目录tmp


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_74


配置KRB5CCNAME位置指向该目录下的krb5cache文件


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_75


重启机器使环境变量生效


11.配置完成后,启动MIT Kerberos客户端,如下图所示:


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_76


12.在Winodw端,通过MIT Kerberos客户Get Ticket


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_77


13.在如下列表中可以看到获取的ticket


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_78


14.销毁获取到的Ticket


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_79

0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_80


15.命令行下初始化


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_81


16.在客户端可以看到初始化成功的Ticket


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_82


4.3 SAS连接Hive及操作


打开SAS,然后执行如下代码:


libname HIVE hadoop server="192.168.0.173" port=10000 database='default' HIVE_PRINCIPAL="hive/hadoop1.fayson.com@FAYSON.COM";
proc sql;
select * from hive.sastest;
quit;


成功连接Hive表test,结果如下所示:


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_客户端_83


查询结果如下:


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_84


4.4 SAS连接Impala及操作


打开SAS,执行以下代码:


libname Impala impala server="192.168.0.173" port=21050 database="default" IMPALA_PRINCIPAL="impala/hadoop1.macro.com@MACRO.COM";
proc sql;
select * from Impala.sastest;
quit;


成功连接Impala,在SAS资源管理器中出现了Impala的逻辑库


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hadoop_85


查询结果如下


0697-6.2.0-如何使用SAS连接CDH6.2.0集群的Hive和Impala_hive_86


总结


1.SAS M6之前版本是不支持JDK1.8的,而CDH6.2.0最低要求JDK1.8,所以通过SAS访问C6集群时选择使用C5的jar包。


2.SAS在集成Kerberos环境的CDH集群时,需要为SAS默认的JDK安装JCE文件。


3.SAS连接CDH时需要集群的jar包及配置文件,需要在SAS客户端机器上配置环境变量,也可以在在SAS代码中指定变量值。


4.在Window客户端下需要配置kerberos的环境变量KRB5_CONFIG指向krb5.ini路径,KRB5CCNAME指向kerberos用户的缓存文件krb5cache的路径,krb5cache的父目录必须存在, krb5cache文件可以不存在,在kinit时会自动生成。


5.SAS访问Kerberos环境下的CDH集群,需要将集群的krb5.conf文件拷贝到SAS自带的JDK目录SASHome\SASPrivateJavaRuntimeEnvironment\9.4\jre\lib\security下

举报

相关推荐

0 条评论