Hadoop YARN集群是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。其核心是通过一个全局的资源管理器来实现分离资源管理与作业调度/监控。Hadoop YARN具有更高的可靠性,通过结合Zookeeper技术,可以实现分布式计算集群的高可用。同时,Hadoop YARN支持动态的资源调度,当没有新的分析作业时,会自动释放占用的计算资源,更节省计算资源。
本操作说明将带领您实现在iServer中集成Hadoop YARN集群并进行分布式分析。本操作说明包括以下两部分:
第一部分为搭建开启认证的YARN集群和开启认证的Hadoop集群,文中将为您介绍如何启动YARN集群和Hadoop集群,以及kerberos配置
第二部分为iServer使用YARN集群和Hadoop集群前所需配置。包括在iServer所在的服务器中配置Kerberos客户端,启动iServer内置的Spark集群,配置UGO等。
目录
- 1 搭建Hadoop YARN集群
- 1.1.准备
- 1.2.创建用户和用户组
- 1.3.配置免密登录
- 1.4.安装jdk
- 1.5.安装jsvc
- 1.6.Kerberos服务安装与配置
- 1.7.修改Hadoop集群配置
- 1.8.启动集群
- 1.9.验证集群是否可用
- 2 iServer所在服务器的相关配置
- 2.1.安装Kerberos客户端
- 2.2.配置Kerberos客户端
- 2.3.启动iServer内置的Spark
- 2.4.配置UGO
- 2.5.在iServer中配置YARN集群
1 搭建Hadoop YARN集群
1.1.准备
1.1.1.软件准备
本说明以虚拟机centos7系统为例,您需要准备以下安装包:
Hadoop安装包:Hadoop-2.7.3.tar.gz,下载后的存放路径:/home/iserver
JDK安装包:jdk-8u131-linux-x64.tar.gz:
Jsvc安装包:commons-daemon-1.0.15-src.tar.gz
Kerberos客户端安装包(windows): kfw-4.1-amd64.msi
1.1.2.主机准备
1.2.创建用户和用户组
在Master与各个节点分别创建以下用户组和用户,具体步骤如下:
- 新建用户组,命令如下:
groupadd Hadoop - 新建用户hdfs、yarn&#xff0c;其中需设定userID<1000&#xff0c;命令如下&#xff1a;
useradd -u 501 hdfs -g hadoop
useradd -u 502 yarn -g Hadoop
并使用passwd命令为新建用户设置密码&#xff1a;
passwd hdfs 输入新密码
passwd yarn 输入新密码 - 用户建好后&#xff0c;用id user命令查看用户信息如图1-1所示&#xff1a;
- 配置DNS和网关。如果是虚拟机&#xff0c;DNS和网关需与实体机相同。
- 将Master节点对应的IP添加到DNS服务中&#xff0c;并设置域名。如master162.ispeco.com
1.3.配置免密登录
为各节点间root、HDFS、YARN用户配置免密登录&#xff0c;具体步骤如下&#xff1a;
- 以HDFS用户为例&#xff0c;配置免密登录&#xff1a;
1). 分别在Master和Worker上执行ssh-keygen -t rsa -P’’(-P表示密码&#xff0c;可以忽略&#xff0c;默认需要三次回车)执行完命令后&#xff0c;在/home/hdfs/.ssh目录下生成如下两个文件&#xff0c;如图1-2所示&#xff1a;
其中id_rsa为私钥文件&#xff0c;id_rsa.pub为公钥文件。
2). 分别在Master和worker上执行以下命令&#xff1a;
ssh-copy-id -i /home/hdfs/.ssh/id_rsa.pub ip
当在Master上执行时&#xff0c;写Worker节点对应的IP。
3). 在Master和Worker上执行ssh worker/master&#xff0c;验证是否配置成功。 - root、YARN用户配置免密登录的操作同上。
1.4.安装jdk
解压jdk-8u131-linux-x64.tar.gz&#xff0c;并将其路径设置到环境变量中。
1.5.安装jsvc
安装jsvc的步骤如下&#xff1a;
- 解压文件commons-daemon-1.0.15-src.tar.gz
- 在commons-daemon-1.0.15-src/src/native/unix目录下依次执行&#xff1a;
support/buildconf.sh
./configure
make - 开始编译&#xff0c;成功后可在commons-daemon-1.0.15-src/src/native/unix目录下看到jsvc文件&#xff0c;并将其复制到【Hadoop-2.7.3安装包】/libexec目录下。
注意&#xff1a;
如果commons-daemon-1.0.15-src.tar.gz中已自带jsvc&#xff0c;则无需执行1、2&#xff0c;直接执行3即可。
1.6.Kerberos服务安装与配置
- Master节点需安装Kerberos的客户端及服务、Worker仅安装Kerberos的客户端即可。
yum install krb5-server &#xff08;服务&#xff09;
yum install krb5-workstation krb5-libs krb5-auth-dialog(客户端) - 配置Kerberos服务相关文件
配置etc/krb5.conf。修改其中的realm&#xff0c;把默认的EXAMPLE.COM修改为自己要定义的值&#xff0c;如&#xff1a;SUPERMP.COM。其中&#xff0c;需要修改以下参数&#xff1a;
default_realm&#xff1a;默认的realm。设置为realm。如SUERMAP.COM
kdc&#xff1a;代表要kdc的位置。添加格式是机器名
admin_server:代表admin的位置。格式是机器名
default_domain&#xff1a;代表默认的域名。&#xff08;设置Master主机所对应的域名&#xff0c;如master162.ispeco.com&#xff09;
注意&#xff1a;
/etc/krb5.conf (Master、Worker节点均需配置&#xff0c;且文件内容必须相同)
修改后的文件如图1-3所示&#xff1a;
1). vi /var/kerberos/krb5kdc/kdc.conf (仅配置Master节点&#xff0c;如果没有&#xff0c;需自建)&#xff0c;如图1-4所示。
图 1-4 配置vi /var/kerberos/krb5kdc/kdc.conf
2). 配置vi /var/kerberos/krb5kdc/kadm5.acl (仅配置Master节点&#xff0c;如果没有&#xff0c;需自建)&#xff0c;如图1-5。
- 创建 Kerberos数据库
创建Kerberos数据库&#xff0c;需要设置管理员密码&#xff0c;创建成功后会在/var/Kerberos/krb5kdc/下生成一系列文件&#xff0c;如果重新创建&#xff0c;需要先删除/var/kerberos/krb5kdc下面principal相关文件。
需在Master节点的root用户下执行以下命令&#xff1a;
kdb5_util create -s -r SUPERMAP.COM
执行成功后如图1-6所示&#xff1a;
注意&#xff1a;
数据库创建成功后&#xff0c;需重启krb5服务&#xff1a;
krb5kdc restart - 创建 kerberos的管理员
在Master节点的root用户下分别执行以下命令&#xff1a;
kadmin.local
addprinc admin/admin&#64;SUPERMAP1.COM
如图1-7所示&#xff1a;
- 创建 kerberos的普通用户及密钥文件&#xff0c;为配置时&#xff0c;各节点可以相互访问用。
1). 在Master节点的root用户下分别执行以下命令&#xff1a;
kadmin.local
#创建用户
addprinc -randkey yarn/master162.ispeco.com&#64;SUPERMAP.COM
addprinc -randkey yarn/worker163&#64;SUPERMAP.COM
addprinc -randkey hdfs/master162.ispeco.com&#64;SUPERMAP.COM
addprinc -randkey hdfs/worker163&#64;SUPERMAP.COM
#生成密钥文件&#xff08;生成到当前路径下&#xff09;
xst -k yarn.keytab yarn/master162.ispeco.com&#64;SUPERMAP.COM
xst -k yarn.keytab yarn/worker163&#64;SUPERMAP.COM
xst -k hdfs.keytab hdfs/master162.ispeco.com&#64;SUPERMAP.COM
xst -k hdfs.keytab hdfs/worker163&#64;SUPERMAP.COM
2). 将yarn.keytab &#xff08;yarn:hadoop 400&#xff09;和 hdfs.keytab (hdfs:hadoop 400)文件到Master和Worker节点的/var/kerberos/krb5kdc/ 目录&#xff0c;并设置相应的组&#xff0c;并将权限为400。如图1-8所示&#xff1a;
1.7.修改Hadoop集群配置
进入{HADOOP_HOME}/etc/hadoop目录&#xff0c;进行如下配置。
- core-site.xml文件内容如下&#xff1a;
- yarn-site.xml文件内容如下&#xff1a;
- Hdfs-site.xml文件内容如下&#xff1a;
- container-executor.cfg文件内容如下&#xff1a;
- hadoop-env.sh文件添加&#xff1a;
export JAVA_HOME&#61;/home/supermap/java/jdk1.8.0_131
export JSVC_HOME&#61;/home/supermap/hadoop/hadoop-2.7.3/libexec
如果需要调试&#xff0c;则添加&#xff1a;
export HADOOP_OPTS&#61;"$HADOOP_OPTS -Dsun.security.krb5.debug&#61;true" - yarn-env.sh文件添加&#xff1a;
export JAVA_HOME&#61;/home/supermap/java/jdk1.8.0_131 - masters文件添加&#xff1a;
master&#xff08;Master所在主机名&#xff09; - slaves文件添加&#xff1a;
worker&#xff08;Worker所在主机名&#xff09; - 将已配置的Hadoop安装包复制到Worker节点&#xff0c;放于与Master节点相同路径下。
- 权限设置&#xff08;Master、Worker节点都需设置&#xff09;
Hadoop安装包放于所属root并且是权限是755的目录下。
以下文件需要单独配置相应的权限与用户组&#xff1a;
1.8.启动集群
启动开启Kerberos认证的YARN 集群和开启Kerberos认证的Hadoop集群的步骤如下。
在Master节点下的HADOOP安装目录下执行以下命令&#xff1a;
- 使用root用户启动Kerberos服务
krb5kdc start - 在用户HDFS下的格式化集群&#xff08;仅第一次安装时或者修改了Hadoop相关设置后需要执行该步骤&#xff09;
[hdfs&#64;master bin]$ ./hadoop namenode –format - 启动集群
[hdfs&#64;master sbin]$ ./start-dfs.sh
[root&#64;master sbin]# ./start-secure-dns.sh
[yarn&#64;master sbin]$ ./start-yarn.sh - 如需停止集群
[yarn&#64;master sbin]$ ./stop-yarn.sh
[root&#64;master sbin]# ./stop-secure-dns.sh
[hdfs&#64;master sbin]$ ./stop-dfs.sh
1.9.验证集群是否可用
通过以下操作来验证YARN 集群和Hadoop集群是否成功启动&#xff1a;
YARN 集群&#xff1a;访问Master节点IP:8088
Hadoop集群: 访问Master节点IP:50070
2 iServer所在服务器的相关配置
2.1.安装Kerberos客户端
安装时&#xff0c;请确认客户端所在机器时间与服务器系统时间差不能超过5分钟。
2.2.配置Kerberos客户端
iServer安装在Windows系统上时&#xff0c;需修改C:\ProgramData\MIT\Kerberos5\krb5.ini文件&#xff0c;所设定Kerberos信息必须与Kerberos服务配置&#xff08;krb5.conf&#xff09;相同。具体内容如下所示&#xff1a;
[libdefaults]
default_realm &#61; SUPERMAP.COM
[realms]
SUPERMAP.COM &#61; {
kdc &#61; 192.168.112.162
admin_server &#61; 192.168.112.162
}
iServer服务在Linux 上&#xff0c;则需修改etc/krb5.conf。内容与Kerberos服务配置&#xff08;krb5.conf&#xff09;相同。
2.3.启动iServer内置的Spark
在【iServer安装路径】\support\ spark下的spark-default.conf中增加如下参数&#xff1a;
spark.yarn.am.memory 4g
此参数代表application master的内存大小&#xff0c;如果不设置&#xff0c;默认是512M。为了确保iServer分布式分析服务能够正常使用&#xff0c;修改为4G。用户可以根据自己的机器的内存合理分配。
使用Windows版本的iServer&#xff0c;需要另外增加如下配置&#xff1a;
spark.hadoop.yarn.resourcemanager.hostname hostname
更多的配置参见&#xff1a;http://spark.apache.org/docs/latest/running-on-yarn.html
2.4.配置UGO
在YARN集群的各个子节点下需要配置UGO&#xff0c;910及其以后版本的组件支持以下两种方式进行配置&#xff1a;
- 可直接将UGO的包解压将Bin目录放在固定目录/opt/SuperMap/iobjects/910/下
- 可以在/etc/profile文件中增加UGO_HOME&#xff0c;如下所示&#xff1a;
export LD_LIBRARY_PATH&#61;/home/supermap/
【iServer安装包】 /support/objectsjava/bin:$LD_LIBRARY_PATH
2.5.在iServer中配置YARN集群
在iServer设置前需进行以下操作&#xff1a;
- 从YARN集群主节点上复制{HADOOP_HOME}/etc/hadoop目录到iServer服务所在计算机上的位置&#xff08;随意&#xff09;
- 在YARN集群Master节点的root用户下分别执行以下命令&#xff1a;
kadmin.local
#创建用户
addprinc -randkey iserver &#64;SUPERMAP.COM
#生成密钥文件&#xff08;生成到当前路径下&#xff09;
xst -k yarn.keytab iserver&#64;SUPERMAP.COM - 在iServer服务的配置集群页面进行配置。具体如图2-1所示&#xff1a;
YARN集群配置目录&#xff1a;从YARN集群主节点上复制{HADOOP_HOME}/etc/hadoop目录到iServer服务所在计算机&#xff0c;目录位置可任意指定。
选择YARN集群是否已开启Kerberos认证&#xff1a;
主体名称&#xff1a;用户名&#64;域。例如&#xff1a;iserver&#64;SUPERMAP1.COM
用户名&#xff1a;必须是YARN集群Mater节点的一个系统用户
域&#xff1a;Kerberos服务设定的域。&#xff08;必须与YARN集群所在的域相同&#xff09;
密钥文件路径&#xff1a;第2步生的密钥文件拷贝到iServer服务所在机器的文件位置
配置文件位置&#xff1a;iServer服务所在机器的Kerberos客户端配置文件所在文件位置 - 在iServer服务进行数据注册。具体配置如图2-2所示&#xff1a;
勾选HDFS集群是否已开启Kerberos认证&#xff1a;
主体名称&#xff1a;用户名&#64;域。例如&#xff1a;iserver&#64;SUPERMAP1.COM
用户名&#xff1a;必须是YARN集群Mater节点的一个系统用户
域&#xff1a;Kerberos服务设定的域。&#xff08;必须与YARN集群所在的域相同&#xff09;
密钥文件路径&#xff1a;第2步生的密钥文件拷贝到iServer服务所在机器的文件位置
配置文件位置&#xff1a;iServer服务所在机器的Kerberos客户端配置文件所在文件位置