IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Kerberos一套完结 -> 正文阅读

[大数据]Kerberos一套完结

Kerberos概述

image-20220302094533186

Kerberos术语

KDC:密钥分发中心,负责存储用户信息,管理发放票据

Realm:Kerberos所管理的一个领域或范围,称之为一个Realm

Principal:Kerberos所管理的一个用户或者一个服务,可以理解为Kerberos中保存的一个账号,格式为:primary/instance@realm

Keytab:Kerberos中的用户认证,可通过密码或者密钥文件证明身份,keytab指密钥文件

Kerberos部署

安装Kerberos相关服务

选择集群中的一台主机作为Kerberos服务端,安装KDC。其他主机都需要部署Kerberos客户端

# 服务端主机执行以下安装命令
yum install -y krb5-server
# 客户端主机执行以下安装命令
yum install -y krb5-workstation krb5-libs

image-20220302112027168

修改配置文件

服务端主机:修改/var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 EXAMPLE.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

image-20220302112158262

客户端主机(所有主机):修改/etc/krb5.conf

image-20220302112455728

初始化KDC数据库

在服务端主机执行以下命令,并根据提示输入密码

kdb5_util create -s

image-20220302154730874

修改管理员权限配置文件

在服务端主机修改/var/kerberos/krb5kdc/kadm5.acl

*/admin@EXAMPLE.COM     *

image-20220302112719416

启动Kerberos相关服务

在主节点启动KDC,并配置开机自启

systemctl start krb5kdc
systemctl enable krb5kdc

image-20220302112912591

在主节点启动Kadmin,该服务为KDC数据库访问入口

systemctl start kadmin
systemctl enable kadmin

image-20220302113017061

创建Kerberos管理员用户

在KDC所在主机执行,并按提示输入密码

kadmin.local -q "addprinc admin/admin"

image-20220302113109190

Kerberos基本使用

Kerberos数据库操作

登录数据库

本地登录(无需认证)

kadmin.local

image-20220302113157364

远程登录(需要进行主体认证)

kadmin

image-20220302114742540

退出数据库

q

image-20220302113636301

创建Kerberos主体

登录数据库并执行,按提示输入密码

addprinc test

image-20220302113306821

也可以通过shell命令直接创建主体

kadmin.local -q"addprinc test"

image-20220302113356438

修改主体密码

cpw test

image-20220302113525899

查看所有主体

list_principals

image-20220302113544958

Kerberos认证操作

密码认证

使用kinit进行主体认证,并按提示输入密码

kinit test

image-20220302113801235

查看认证凭证

klist

image-20220302113814572

密钥文件认证

生成主体test的keytab文件到指定目录/root/test/test.keytab

# -norandkey的作用是声明不随机生成密码,若不加该参数,会导致之前的密码失效
kadmin.local -q "xst -norandkey -k  /root/test.keytab test@EXAMPLE.COM"

使用keytab进行认证

kinit -kt /root/test.keytab test

image-20220302113909701

image-20220302113937331

销毁凭证

kdestroy

image-20220302114139411

Kerberos生成Keytab

执行创建主体的语句,需要登录Kerberos数据客户端,登录之前需要先使用Kerberos的管理员用户进行认证,执行如下代码并按提示输入密码

kinit admin/admin

登录数据库客户端

kadmin

执行创建主体的语句

# addprinc创建主体
# -randkey:密码随机,因hadoop各服务均通过keytab文件认证,故密码可随机生成
# test/test:新增的主体
addprinc -randkey test/test
# 将主体的密钥写入keytab文件
# -k 指明keytab文件路径和文件名
# test/test:主体
xst -norandkey -k /etc/security/keytab/test.keytab test/test

image-20220302120252561

上述认证、登录、执行三步骤创建主体,可以在shell用如下快捷创建

# -p 主体
# -w 密码
# -q 执行语句
kadmin -padmin/admin -wadmin -q"addprinc -randkey test/test"
kadmin -padmin/admin -wadmin -q"xst -norandkey -k /etc/security/keytab/test.keytab test/test"

image-20220302120457399

其他操作可查询官网

Hadoop Kerberos配置

创建Hadoop系统用户

为Hadoop开启Kerberos,需为不同服务准备不同的用户,启动服务时需要使用相应的用户。须在所有节点创建以下用户和用户组

User:GroupDaemons
hdfs:hadoopNameNode, Secondary NameNode, JournalNode, DataNode
yarn:hadoopResourceManager, NodeManager
mapred:hadoopMapReduce JobHistory Server

创建hadoop组

集群中都要创建

groupadd hadoop

创建各个用户并设置密码

集群中都要创建

useradd hdfs -g hadoop
echo hdfs | passwd --stdin  hdfs

useradd yarn -g hadoop
echo yarn | passwd --stdin yarn

useradd mapred -g hadoop
echo mapred | passwd --stdin mapred

为Hadoop各服务创建Kerberos主体

主体格式为serviceName/hostName@REALM如:datanode/bigdata100@EXAMPLE.COM

环境:3台节点,主机分别为bigdata100、bigdata102、bigdata104

服务所在主机主体
NameNodebigdata100nn/bigdata100
DataNodebigdata100、bigdata102、bigdata104dn/bigdata100、dn/bigdata102、dn/bigdata104
Secondary NameNodebigdata104sn/bigdata104
ResourceManagerbigdata102rm/bigdata102
NodeManagerbigdata100、bigdata102、bigdata104nm/bigdata100、nm/bigdata102、nm/bigdata104
JobHistory Serverbigdata100jhs/bigdata100
Web UIbigdata100、bigdata102、bigdata104HTTP/bigdata100、HTTP/bigdata102、HTTP/bigdata104

创建keytab存放位置

为服务创建的主体,需要通过密钥文件keytab文件进行认证,故需要准备一个安全的路径来存放keytab文件,在所有集群中创建keytab文件目录

mkdir /etc/security/keytab/
chown -R root:hadoop /etc/security/keytab/
chmod 770 /etc/security/keytab/

image-20220302120931214

创建主体

NameNode:bigdata100执行

kadmin -padmin/admin -wadmin -q"addprinc -randkey nn/bigdata100"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nn.service.keytab nn/bigdata100"

DataNode:bigdata100、bigdata102、bigdata104执行

kadmin -padmin/admin -wadmin -q"addprinc -randkey dn/bigdata100"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/dn.service.keytab dn/bigdata100"

kadmin -padmin/admin -wadmin -q"addprinc -randkey dn/bigdata102"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/dn.service.keytab dn/bigdata102"

kadmin -padmin/admin -wadmin -q"addprinc -randkey dn/bigdata104"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/dn.service.keytab dn/bigdata104"

Secondary NameNode:bigdata104执行

kadmin -padmin/admin -wadmin -q"addprinc -randkey sn/bigdata104"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/sn.service.keytab sn/bigdata104"

ResourceManager:bigdata102执行

kadmin -padmin/admin -wadmin -q"addprinc -randkey rm/bigdata102"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/rm.service.keytab rm/bigdata102"

NodeManager:bigdata100、bigdata102、bigdata104执行

kadmin -padmin/admin -wadmin -q"addprinc -randkey nm/bigdata100"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nm.service.keytab nm/bigdata100"

kadmin -padmin/admin -wadmin -q"addprinc -randkey nm/bigdata102"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nm.service.keytab nm/bigdata102"

kadmin -padmin/admin -wadmin -q"addprinc -randkey nm/bigdata104"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/nm.service.keytab nm/bigdata104"

JobHistory Server:bigdata100执行

kadmin -padmin/admin -wadmin -q"addprinc -randkey jhs/bigdata100"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/jhs.service.keytab jhs/bigdata100"

Web UI:bigdata100、bigdata102、bigdata104执行

kadmin -padmin/admin -wadmin -q"addprinc -randkey HTTP/bigdata100"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/spnego.service.keytab HTTP/bigdata100"

kadmin -padmin/admin -wadmin -q"addprinc -randkey HTTP/bigdata102"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/spnego.service.keytab HTTP/bigdata102"

kadmin -padmin/admin -wadmin -q"addprinc -randkey HTTP/bigdata104"
kadmin -padmin/admin -wadmin -q"xst -k /etc/security/keytab/spnego.service.keytab HTTP/bigdata104"

修改所有集群中keytab文件的所有者和访问权限

chown -R root:hadoop /etc/security/keytab/
chmod 660 /etc/security/keytab/*

修改Hadoop配置文件

各文件新增如下内容,并且分发到集群中

core-site.xml

<!-- Kerberos主体到系统用户的映射机制 -->
<property>
	<name>hadoop.security.auth_to_local.mechanism</name>
	<value>MIT</value>
</property>

<!-- Kerberos主体到系统用户的具体映射规则 -->
<property>
	<name>hadoop.security.auth_to_local</name>
	<value>
	RULE:[2:$1/$2@$0]([ndj]n\/.*@EXAMPLE\.COM)s/.*/hdfs/
	RULE:[2:$1/$2@$0]([rn]m\/.*@EXAMPLE\.COM)s/.*/yarn/
	RULE:[2:$1/$2@$0](jhs\/.*@EXAMPLE\.COM)s/.*/mapred/
	DEFAULT
	</value>
</property>

<!-- 启用Hadoop集群Kerberos安全认证 -->
<property>
	<name>hadoop.security.authentication</name>
	<value>kerberos</value>
</property>

<!-- 启用Hadoop集群授权管理 -->
<property>
	<name>hadoop.security.authorization</name>
	<value>true</value>
</property>

<!-- Hadoop集群间RPC通讯设为仅认证模式 -->
<property>
	<name>hadoop.rpc.protection</name>
	<value>authentication</value>
</property>

hdfs-site.xml

<!-- 访问DataNode数据块时需通过Kerberos认证 -->
<property>
	<name>dfs.block.access.token.enable</name>
	<value>true</value>
</property>

<!-- NameNode服务的Kerberos主体,_HOST会自动解析为服务所在的主机名 -->
<property>
	<name>dfs.namenode.kerberos.principal</name>
	<value>nn/_HOST@EXAMPLE.COM</value>
</property>

<!-- NameNode服务的Kerberos密钥文件路径 -->
<property>
	<name>dfs.namenode.keytab.file</name>
	<value>/etc/security/keytab/nn.service.keytab</value>
</property>

<!-- Secondary NameNode服务的Kerberos主体 -->
<property>
	<name>dfs.secondary.namenode.keytab.file</name>
	<value>/etc/security/keytab/sn.service.keytab</value>
</property>

<!-- Secondary NameNode服务的Kerberos密钥文件路径 -->
<property>
	<name>dfs.secondary.namenode.kerberos.principal</name>
	<value>sn/_HOST@EXAMPLE.COM</value>
</property>

<!-- NameNode Web服务的Kerberos主体 -->
<property>
	<name>dfs.namenode.kerberos.internal.spnego.principal</name>
	<value>HTTP/_HOST@EXAMPLE.COM</value>
</property>

<!-- WebHDFS REST服务的Kerberos主体 -->
<property>
	<name>dfs.web.authentication.kerberos.principal</name>
	<value>HTTP/_HOST@EXAMPLE.COM</value>
</property>

<!-- Secondary NameNode Web UI服务的Kerberos主体 -->
<property>
	<name>dfs.secondary.namenode.kerberos.internal.spnego.principal</name>
	<value>HTTP/_HOST@EXAMPLE.COM</value>
</property>

<!-- Hadoop Web UI的Kerberos密钥文件路径 -->
<property>
	<name>dfs.web.authentication.kerberos.keytab</name>
	<value>/etc/security/keytab/spnego.service.keytab</value>
</property>

<!-- DataNode服务的Kerberos主体 -->
<property>
	<name>dfs.datanode.kerberos.principal</name>
	<value>dn/_HOST@EXAMPLE.COM</value>
</property>

<!-- DataNode服务的Kerberos密钥文件路径 -->
<property>
	<name>dfs.datanode.keytab.file</name>
	<value>/etc/security/keytab/dn.service.keytab</value>
</property>

<!-- 配置NameNode Web UI 使用HTTPS协议 -->
<property>
	<name>dfs.http.policy</name>
	<value>HTTPS_ONLY</value>
</property>

<!-- 配置DataNode数据传输保护策略为仅认证模式 -->
<property>
	<name>dfs.data.transfer.protection</name>
	<value>authentication</value>
</property>

yarn-site.xml

<!-- Resource Manager 服务的Kerberos主体 -->
<property>
	<name>yarn.resourcemanager.principal</name>
	<value>rm/_HOST@EXAMPLE.COM</value>
</property>

<!-- Resource Manager 服务的Kerberos密钥文件 -->
<property>
	<name>yarn.resourcemanager.keytab</name>
	<value>/etc/security/keytab/rm.service.keytab</value>
</property>

<!-- Node Manager 服务的Kerberos主体 -->
<property>
	<name>yarn.nodemanager.principal</name>
	<value>nm/_HOST@EXAMPLE.COM</value>
</property>

<!-- Node Manager 服务的Kerberos密钥文件 -->
<property>
	<name>yarn.nodemanager.keytab</name>
	<value>/etc/security/keytab/nm.service.keytab</value>
</property>

mapred-site.xml

<!-- 历史服务器的Kerberos主体 -->
<property>
	<name>mapreduce.jobhistory.keytab</name>
	<value>/etc/security/keytab/jhs.service.keytab</value>
</property>

<!-- 历史服务器的Kerberos密钥文件 -->
<property>
	<name>mapreduce.jobhistory.principal</name>
	<value>jhs/_HOST@EXAMPLE.COM</value>
</property>

配置HDFS使用HTTPS安全传输协议

生成密钥对

Keytool是java数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书

-keystore:指定密钥库的名称及位置(产生的各类信息将存在.keystore文件中)

-genkey(或者-genkeypair):生成密钥对

-alias:为生成的密钥对指定别名,如果没有默认是mykey

-keyalg:指定密钥的算法RSA/DSA 默认是DSA

生成keystore的密码及相应信息的密钥库

keytool -keystore /etc/security/keytab/keystore -alias jetty -genkey -keyalg RSA

image-20220302142943556

修改keystore文件的所有者和访问权限

chown -R root:hadoop /etc/security/keytab/keystore
chmod 660 /etc/security/keytab/keystore

密钥库的密码至少6个字符,可以是纯数字或者字母或者数字和字母的组合等等

确保hdfs用户(HDFS的启动用户)具有对所生成keystore文件的读权限

将该证书分发到集群中的每台节点相同路径

xsync /etc/security/keytab/keystore

修改hadoop配置文件ssl-server.xml

该文件位于$HADOOP_HOME/etc/hadoop下

mv $HADOOP_HOME/etc/hadoop/ssl-server.xml.example $HADOOP_HOME/etc/hadoop/ssl-server.xml
<!-- SSL密钥库路径 -->
<property>
	<name>ssl.server.keystore.location</name>
	<value>/etc/security/keytab/keystore</value>
</property>

<!-- SSL密钥库密码 -->
<property>
	<name>ssl.server.keystore.password</name>
	<value>123456</value>
</property>

<!-- SSL可信任密钥库路径 -->
<property>
	<name>ssl.server.truststore.location</name>
	<value>/etc/security/keytab/keystore</value>
</property>

<!-- SSL密钥库中密钥的密码 -->
<property>
	<name>ssl.server.keystore.keypassword</name>
	<value>123456</value>
</property>

<!-- SSL可信任密钥库密码 -->
<property>
	<name>ssl.server.truststore.password</name>
	<value>123456</value>
</property>

分发ssl-server.xml

image-20220302143748590

xsync $HADOOP_HOME/etc/hadoop/ssl-server.xml

配置Yarn使用LinuxContainerExecutor

修改所有节点的container-executor所有者和权限,要求其所有者为root,所有组为hadoop(启动NodeManger的yarn用户的所属组),权限为6050。其默认路径为$HADOOP_HOME/bin,所有集群中都要执行

chown root:hadoop /opt/module/hadoop-3.1.3/bin/container-executor
chmod 6050 /opt/module/hadoop-3.1.3/bin/container-executor

修改所有节点的container-executor.cfg文件的所有者和权限,要求该文件及其所有的上级目录的所有者均为root,所有组为hadoop(启动NodeManger的yarn用户的所属组),权限为400。其默认路径为$HADOOP_HOME/etc/hadoop

chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg
chown root:hadoop /opt/module/hadoop-3.1.3/etc/hadoop
chown root:hadoop /opt/module/hadoop-3.1.3/etc
chown root:hadoop /opt/module/hadoop-3.1.3
chown root:hadoop /opt/module
chmod 400 /opt/module/hadoop-3.1.3/etc/hadoop/container-executor.cfg

修改container-executor.cfg和yarn-site.xml

文件位于$HADOOP_HOME/etc/hadoop下

yarn.nodemanager.linux-container-executor.group=hadoop
banned.users=hdfs,yarn,mapred
min.user.id=1000
allowed.system.users=
feature.tc.enabled=false

image-20220302144417494

<!-- 配置Node Manager使用LinuxContainerExecutor管理Container -->
<property>
	<name>yarn.nodemanager.container-executor.class</name>
	<value>org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor</value>
</property>

<!-- 配置Node Manager的启动用户的所属组 -->
<property>
	<name>yarn.nodemanager.linux-container-executor.group</name>
	<value>hadoop</value>
</property>

<!-- LinuxContainerExecutor脚本路径 -->
<property>
	<name>yarn.nodemanager.linux-container-executor.path</name>
	<value>/opt/module/hadoop-3.1.3/bin/container-executor</value>
</property>

分发container-executor.cfg和yarn-site.xml文件

xsync container-executor.cfg
xsync yarn-site.xml

安全模式下启动Hadoop集群

修改特定本地路径权限

LocationArgsUser:Grouprwx
lcocal$HADOOP_LOG_DIRhdfs:hadoopdrwxrwxr-x
lcocaldfs.namenode.name.dirhdfs:hadoopdrwx------
lcocaldfs.namenode.data.dirhdfs:hadoopdrwx------
lcocaldfs.namenode.checkpoint.dirhdfs:hadoopdrwx------
lcocalyarn.nodemanager.local-dirsyarn:hadoopdrwxrwxr-x
lcocalyarn.nodemanager.log-dirsyarn:hadoopdrwxrwxr-x

$HADOOP_LOG_DIR所有节点:bigdata100、bigdata102、bigdata104

该变量位于hadoop-env.sh文件,默认值为 ${HADOOP_HOME}/logs

chown hdfs:hadoop /opt/module/hadoop-3.1.3/logs/
chmod 775 /opt/module/hadoop-3.1.3/logs/

dfs.namenode.name.dir(NameNode节点):bigdata100

该参数位于hdfs-site.xml文件,默认值为file://${hadoop.tmp.dir}/dfs/name

chown -R hdfs:hadoop /opt/module/hadoop-3.1.3/data/dfs/name/
chmod 700 /opt/module/hadoop-3.1.3/data/dfs/name/

dfs.datanode.data.dir(DataNode节点):bigdata100、bigdata102、bigdata104

该参数为于hdfs-site.xml文件,默认值为file://${hadoop.tmp.dir}/dfs/data

chown -R hdfs:hadoop /opt/module/hadoop-3.1.3/data/dfs/data/
chmod 700 /opt/module/hadoop-3.1.3/data/dfs/data/

dfs.namenode.checkpoint.dir(SecondaryNameNode节点):bigdata104

该参数位于hdfs-site.xml文件,默认值为file://${hadoop.tmp.dir}/dfs/namesecondary

chown -R hdfs:hadoop /opt/module/hadoop-3.1.3/data/dfs/namesecondary/
chmod 700 /opt/module/hadoop-3.1.3/data/dfs/namesecondary/

yarn.nodemanager.local-dirs(NodeManager节点):bigdata100、bigdata102、bigdata104

该参数位于yarn-site.xml文件,默认值为file://${hadoop.tmp.dir}/nm-local-dir

chown -R yarn:hadoop /opt/module/hadoop-3.1.3/data/nm-local-dir/
chmod -R 775 /opt/module/hadoop-3.1.3/data/nm-local-dir/

yarn.nodemanager.log-dirs(NodeManager节点):bigdata100、bigdata102、bigdata104

该参数位于yarn-site.xml文件,默认值为$HADOOP_LOG_DIR/userlogs

chown yarn:hadoop /opt/module/hadoop-3.1.3/logs/userlogs/
chmod 775 /opt/module/hadoop-3.1.3/logs/userlogs/

启动HDFS

启动不同服务时需要使用对应的用户

单点启动

启动NameNode:bigdata100

# -i:重新加载环境变量
# -u:以特定用户的身份执行后续命令
sudo -i -u hdfs hdfs --daemon start namenode

启动DataNode,所有集群都要执行bigdata100、bigdata102、bigdata104

# -i:重新加载环境变量
# -u:以特定用户的身份执行后续命令
sudo -i -u hdfs hdfs --daemon start datanode

启动SecondaryNameNode,bigdata104

# -i:重新加载环境变量
# -u:以特定用户的身份执行后续命令
sudo -i -u hdfs hdfs --daemon start secondarynamenode

群起

在主节点bigdata100配置hdfs用户到所有节点的免密登录

# 切换到hdfs用户
su hdfs
# 生成公钥私钥
ssh-keygen -t rsa
# 拷贝到集群上
ssh-copy-id bigdata100
ssh-copy-id bigdata102
ssh-copy-id bigdata104

image-20220302152544306

修改主节点bigdata100节点的$HADOOP_HOME/sbin/start-dfs.sh脚本,在顶部增加以下环境变量

HDFS_DATANODE_USER=hdfs
HDFS_NAMENODE_USER=hdfs
HDFS_SECONDARYNAMENODE_USER=hdfs

image-20220302150736780

$HADOOP_HOME/sbin/stop-dfs.sh也需在顶部增加上述环境变量才可使用

HDFS_DATANODE_USER=hdfs
HDFS_NAMENODE_USER=hdfs
HDFS_SECONDARYNAMENODE_USER=hdfs

image-20220302150916890

image-20220302152716194

image-20220302152751533

启动Yarn

单点启动

启动Resource Manager:bigdata103

sudo -i -u yarn yarn --daemon start resourcemanager

启动Node Manager:bigdata100、bigdata102、bigdata104

sudo -i -u yarn yarn --daemon start nodemanager

群起

在Yarn主节点(bigdata102)配置yarn用户到所有节点的免密登录

# 切换到hdfs用户
su hdfs
# 生成公钥私钥
ssh-keygen -t rsa
# 拷贝到集群上
ssh-copy-id bigdata100
ssh-copy-id bigdata102
ssh-copy-id bigdata104

修改主节点(bigdata102)的$HADOOP_HOME/sbin/start-yarn.sh,在顶部增加以下环境变量

YARN_RESOURCEMANAGER_USER=yarn
YARN_NODEMANAGER_USER=yarn

image-20220302153953248

stop-yarn.sh也需在顶部增加上述环境变量才可使用

image-20220302154014241

sbin/start-yarn.sh

image-20220302154218689

启动HistoryServer

启动历史服务器:bigdata100

sudo -i -u mapred mapred --daemon start historyserver

Hive Kerberos配置

后续开发中更新…

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:21:05  更:2022-03-03 16:22:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:06:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码