CDH中使用了oozie进行任务调度,如在凌晨的进行ETL调度任务。
而kettle “data-integration”服务安装在cdh集群之外的一台server上(如111.111.111.111)。
drwxrwxr-x 4 yarn yarn adaptive-execution
-rw-rw-r-- 1 yarn yarn Carte.bat
-rwxrwxr-x 1 yarn yarn carte.sh
drwxrwxr-x 2 yarn yarn classes
drwxrwxr-x 3 yarn yarn Data Integration.app
drwxrwxr-x 2 yarn yarn Data Service JDBC Driver
drwxrwxr-x 3 yarn yarn docs
-rw-rw-r-- 1 yarn yarn Encr.bat
-rwxrwxr-x 1 yarn yarn encr.sh
drwxrwxr-x 4 yarn yarn hdfs:
-rw-rw-r-- 1 yarn yarn Import.bat
-rw-rw-r-- 1 yarn yarn import-rules.xml
-rwxrwxr-x 1 yarn yarn import.sh
-rw-rw-r-- 1 yarn yarn Kitchen.bat
-rwxrwxr-x 1 yarn yarn kitchen.sh
drwxrwxr-x 2 yarn yarn launcher
drwxrwxr-x 2 yarn yarn lib
drwxrwxr-x 6 yarn yarn libswt
-rw-rw-r-- 1 yarn yarn LICENSE.txt
drwxrwxr-x 2 yarn yarn logs
-rw-rw-r-- 1 yarn yarn Pan.bat
-rwxrwxr-x 1 yarn yarn pan.sh
-rw-rw-r-- 1 yarn yarn PentahoDataIntegration_OSS_Licenses.html
drwxrwxr-x 28 yarn yarn plugins
-rw-rw-r-- 1 yarn yarn purge-utility.bat
-rwxrwxr-x 1 yarn yarn purge-utility.sh
drwxrwxr-x 2 yarn yarn pwd
-rw-rw-r-- 1 yarn yarn README.txt
-rw-rw-r-- 1 yarn yarn runSamples.bat
-rwxrwxr-x 1 yarn yarn runSamples.sh
drwxrwxr-x 5 yarn yarn samples
-rw-rw-r-- 1 yarn yarn set-pentaho-env.bat
-rwxrwxr-x 1 yarn yarn set-pentaho-env.sh
drwxrwxr-x 2 yarn yarn simple-jndi
-rw-rw-r-- 1 yarn yarn Spark-app-builder.bat
-rwxrwxr-x 1 yarn yarn spark-app-builder.sh
-rw-rw-r-- 1 yarn yarn Spoon.bat
-rw-rw-r-- 1 yarn yarn spoon.command
-rw-rw-r-- 1 yarn yarn SpoonConsole.bat
-rw-rw-r-- 1 yarn yarn SpoonDebug.bat
-rwxrwxr-x 1 yarn yarn SpoonDebug.sh
-rw-rw-r-- 1 yarn yarn spoon.ico
-rw-rw-r-- 1 yarn yarn spoon.png
-rwxrwxr-x 1 yarn yarn spoon.sh
drwxrwxr-x 5 yarn yarn system
drwxrwxr-x 3 yarn yarn ui
-rwxrwxr-x 1 yarn yarn yarn.sh
由于kettle 任务被提交至yarn上,由yarn用户最终调用,因此需要在cdh集群的任一节点上能够免密登陆访问到kettle server。
cdh集群(这里版本为6.1.0)任一节点中切换到yarn下,无法切换,提示如下:
[root@server11-22-33-44 zhangsan]# su yarn
This account is currently not available.
一、关于取消禁用登录
查看/etc/passwd文件中yarn用户的配置,如下:
yarn:x:982:976:Hadoop Yarn:/var/lib/hadoop-yarn:/sbin/nologin
引申:
①、linux系统中,与用户密码相关的配置文件有2个:
/etc/passwd
/etc/shadow,上述字符串中第二列字符中的“x”即表示该用户密码报存到了shadow文件中。
②、关于禁用登录
/sbin/nologin设置了该用户禁用登录功能。
如使用"useradd -M -s /sbin/nologin nginx" 将创建了一个无登录权限的功能用户nginx。
[root@xx serv111-111]# useradd
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
本例中,需要使用yarn用户免密登陆到kettle server的yarn用户下,故cdh集群的各节点yarn用户必须设置为可登录。
设置也很简单,直接切换到root用户下,修改/etc/passwd文件,将/sbin/nologin修改为某一个登录shell即可。
如:
yarn:x:982:976:Hadoop Yarn:/var/lib/hadoop-yarn:/bin/bash
二、设置免密登陆
核心步骤:
如下步骤在每台cdh集群server上执行:
①、创建ssh目录
ssh-keygen -t rsa
②、然后分别拷贝公钥至kettle所在server,单向即可
ssh-copy-id -p ${port} -i ~/.ssh/id_rsa.pub 111.111.111.111