配置 HDFS-配置 core-site-hdfs-size 以及 env.sh 等配置文件|学习笔记

简介: 快速学习配置 HDFS-配置 core-site-hdfs-size 以及 env.sh 等配置文件

开发者学堂课程【快速掌握 Hadoop 集成 Kerberos 安全技术配置 HDFS-配置 core-site-hdfs-size 以及 env.sh 等配置文件】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/708/detail/12564


配置 HDFS-配置 core-site-hdfs-size 以及 env.sh 等配置文件


内容介绍:

一、`hadoop-env.sh`增加

二、yarn-env.sh 增加

三、mapred-env.sh 增加

四、配置 core-site.xml

五、配置`hdfs-site.xml


一.`hadoop-env.sh`增加

机器 cdh1 cd/bigdata/hadoop-26.0-cdh5.14.4/etc/hadoop 目录下是需要运行的配置文件。

[root@cdh1native]#cd/bigdata/hadoop-26.0-cdh5.14.4/etc/hadoop

修改 vim hadoop-env.sh 将以下内容复制粘贴

export JAVA_HOME=/usr/local/jdk1.8.0_221

export HADOOP_HOME=/bigdata/hadoop-26.0-cdh5.14.4

export HADOOP_CONF_DIR=/bigdata/hadoop-26.0-cdh514.4/et

/hadoop

export HADOOP_L0G_DIR=/bigdata/hadoop-26.0-cdh5.14.4/logs/

hdfs

export HADOOP_COMMON_LIB_NATIVE_DIR=SHADOOP_HOME/lib/

native

Export HADOOP_0PTS="-Djava.library.path=${HADOOP_HHOME}/li

b/native

#路径根据具体自己配置的路径修改

主要复制 JAVA_HOME、HADOOP_HOME、HADOOP_CONF、HADOOP_L0G_DIR 文件夹的地方、本地运行库 lib/native 位置在哪。配置完成后点保存。


二.yarn-env.sh 增加

配置 vim yarn-env.sh

[root@cdh0 hadoop]#vim yarn-env.sh 添加以下内容

export JAVA_HOME=/usr/local/jdk1.8.0_221

export YARN_CONF_DIR=/bigdata/hadoop-2.6.0-cdh5.14.4/etc/h

adoop

export YARN_L0G_DIR=/bigdata/hadoop-2.6.0-cdh5.14.4/logs/ya

rn

根据自己路径具体配置


三.mapred-env.sh 增加

配置 vim mapred-env.sh 添加以下内容

[root@cdh0 hadoop]#vim mapred-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_221

保存


四、配置 core-site.xml

hadoop 核心 site

复制以下内容,粘贴,保存

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://cdh0.itcast.cn:8020</value>

<description></description></property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

<description></description></property>

<property>

<name>hadoop.security.authorization</name>

<value>true</value>

<description>是否开启hadoop的安全认证</description>

</property>

<property>

<name>hadoop.security.authentication</name>

<value>kerberos</value>

<description>使用kerberos作为hadoop的安全认证方案</description></property>

<property>

<name>hadoop.security.auth_to_local</name>

<value>

RULE:[2:$1@$0](nne*ITCAST.CN)s/.*/hdfs/ RULE:[2:$1@$0](sn@*ITCAST.CN)s/.*/hdfs/ RULE:[2:$1@$0](dn@.*ITCAST.CN)s/.*/hdfs/ RULE:[2:$1@$0](nm@.*ITCAST.CN)s/.*/yarn/ RULE:[2:$1@$0](rm@.*ITCAST.CN)s/.*/yarn/ RULE:[2:$1@$0](tl@.*ITCAST.CN)s/.*/yarn/

RULE:[2:$1@$0](jhs@.*ITCAST.CN)s/.*/mapred/ RULE:[2:$1@$0](HTTP@.*ITCAST.CN)s/.*/hdfs/ DEFAULT

</value>

<description>匹配规则,比如第一行就是表示将 nn/*@ITCA

ST.CN的 principal 绑定到 hdfs 账户上,想要得到一个认证后的 hdfs 账户,使用 Kerberos 的 nn/*@ITCAST.CN 账户来认证

同理,下面的 HTTP 开头的 Kerberos 账户,也是绑定到了 hdfs 本地账户上,如果想要操作 hdfs,用 nn 和 http 都可以,在逻辑上多创建几 kerbero 账户好分配,比如 namen

od 分配 nn,datanode 分配给 dn 其实 nn 和 dn 都是对应的 hdfs</description>

</property>

<!-- HIVE KERBEROS-->

<property>

<name>hadoop.proxyuser.hive.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hivegroups</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuserhdfs.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.HTTP.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.HTTPgroups</name>

<value>*</value>

</property>

<property>

<name></name>

<value></value>

</property>

</configuration>

执行 [root@cdh0 hadoop]#vim core-site.xml 内容为空,将复制内容放入,将 property 复制粘贴。有<description>简单描述,保存。

<name>fs.defaultFS</name>

<value>hdfs://cdh0.itcast.cn:8020</value>

hadoop 默认的 FS 路径。

hadoop.security.true 开启 hadoop 的安全认证,使用 Kerberos作为 hadoop 的安全认证方案。

<name>hadoop.security.auth_to_local</name>

<value>

RULE:[2:$1@$0](nne*ITCAST.CN)s/.*/hdfs/ RULE:[2:$1@$0](sn@*ITCAST.CN)s/.*/hdfs/ RULE:[2:$1@$0](dn@.*ITCAST.CN)s/.*/hdfs/ RULE:[2:$1@$0](nm@.*ITCAST.CN)s/.*/yarn/ RULE:[2:$1@$0](rm@.*ITCAST.CN)s/.*/yarn/ RULE:[2:$1@$0](tl@.*ITCAST.CN)s/.*/yarn/

RULE:[2:$1@$0](jhs@.*ITCAST.CN)s/.*/mapred/ RULE:[2:$1@$0](HTTP@.*ITCAST.CN)s/.*/hdfs/ DEFAULT

将 Kerberos 账户对应到本地账户,匹配规则,比如第一行是表示满足 nn/*@ITCAST.CN 规则的 principal 绑定到 hdfs 账户上,想得到一个认证后的 hdfs 账户,使用 Kerberos 满足 nn/*@ITCAST.CN 规格的账户认证。比如 nn/cdh0@ITCAST.CN、cdh1@ITCAST.CN。满足规格的账户认证得到被授权的 hdfs 账户,可以访问 hadoop 集群同时拥有最高权限。如果没有满足规格的账户授权认证,hdfs 账户为普通账户,没有权限访问 hadoop 集群。

同理,下面的 HTTP 开头的 Kerberos 账户,满足规则,可以映射到 hdfs 本地账户,如果想 hdfs 账户被认证成功,用 nn 和 http 都可以得到授权后的 hdfs 账户。

<!-- HIVE KERBEROS-->

<property>

<name>hadoop.proxyuser.hive.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.hive groups</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuserhdfs.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.HTTP.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.HTTPgroups</name>

<value>*</value>

</property>

<property>

<name></name>

<value></value>

</property>

</configuration>

HIVE 相关配置,proxyuser 给*,groups 给*


五、配置 hdfs-site.xml

configuration 为空

[root@cdh0 hadoop]#vim hdfs-site.xml

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>/data/nn</value>

<descriotion>Path on the local filesystem where the Name

Node stores the namespace and transactions logs persist

ently.</description>

</property>

<property>

<name>dfs.namenode.hosts</name>

<value>cdh1.itcast.cncdh2.itcast.cn</value>

<description>List of permitted DataNodes.</description>

</property>

<property>

<name>dfs.blocksize</name>

<value>268435456</value>

<description></description>

</property>

<property>

<name>dfs.namenodehandler.count</name>

<value>100</value>

<description></description>

</property>

<description></description>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>/data/dn</value>

</property>

<property>

<name>dfs.block.access.token.enable</name>

<value>true</value>

</property>

<!-- NameNode security config -->

<property>

<name>dfs.namenode.kerberos.principal</name>

<value>nn/_HOSTITCAST.CN</value>

<description>namenode 对应的 kerberos 账户为 nn/主机名@IT

CAST.CN _HOST 会自动转换为主机名 </description>

</property>

<property>

<name>dfs.namenode.keytabfile</name>

<!-- path to the HDFS keytab-->

<value>/etc/securitv/kevtabs/nn.service.keytab</value>

<description>使用-randkey 创建的用户密码随机不知道,需要用免密登录的 keytab 文件指定 namenode 需要用的 keytab 文件在哪里</description>

</property>

<property>

<name>dfs.namenode.kerberos.internal.spnego.principal</name>

<value>HTTP/_HOST@ITCAST.CN</value>

<description>https 相关(如开启namenodeUI)使用的账户

</description></property>

<!--Secondary NameNode security config-->

<property>

<name>dfs.secondary.namenode.kerberos.principal</name>

<value>sn/_HOST@ITCAST.CN</value>

<description>secondarynamenode使用的账户</description></pr

operty>

<property>

<name>dfs.secondary.namenode.keytab.file</name>

<!-- path to the hDFS keytab -->

<value>/etc/security/keytabs/snservice.keytab</value>

<description>sn对应的 keytab 文件</description>

</property>

<property><name>dfs.secondary.namenode.kerberos.internal.spnego.principal</name>

<value>HTTP/_HOST@ITCAST.CN</value>

<description>sn需要开启http页面用到的账户</description>

</property>

<!-- DataNode security config -->

<property>

<name>dfs.datanode.kerberos.principal</name>

<value>dn/_HOsT@ITCAST.CN</value>

<description>datanode用到的账户 </descriptioon>

</property>

<property>

<name>dfs.datanode.keytab.file</name>

<!-- path to the HDFS keytab -->

<value>/etc/security/keytabs/dn.service.keytab</value>

<description>datanode 用到的 keytab 文件路径</description>

</property>

<property>

<name>dfs.datanode.data.dir.perm</name>

<value>700</value>

</property>

<property><name>dfs.web.authenticationkerberos.principal</name<value>HTTP/_HOST@ITCAST.CN</value>

<description>web hdfs 使用的账户</description>

</property><property>

<name>dfs.web.authentication.kerberos.keytab</name>

<!-- path to the HDFS keytab-->

<value>/etc/security/keytabs/sn.service.keytab</value>

<description>sn对应的 keytab 文件</description>

</property>

<property><name>dfs.secondary.namenode.kerberos.internal.spnego.principal</name>

<value>HTTP/_HOST@ITCAST.CN</value>

<description>sn需要开启 http 页面用到的账户</description>

</property>

<!-- DataNode security config --><property>

<name>dfs.datanode.kerberos.principal</name>

<value>dn/_HOsT@ITCAST.CN</value>

<description>datanode 用到的账户</description>

</property>

<property>

<name>dfs.datanode.keytab.file</name>

<!-- path to the HDFS keytab -->

<value>/etc/security/keytabs/dn.service.keytab</value>

<description>datanode用到的 keytab 文件路径</description>

</property>

<property>

<name>dfs.datanode.data.dir.perm</name>

<value>700</value></property>

<property>

<name>dfs.web.authentication.kerberos.principal</name>

<value>HTTP/_HOST@ITCAST.CN</value>

<description>web hdfs 使用的账户</description>

</property>

<property>

<name>dfs.web.authentication.kerberos.keytab</name>

</property>

<value>/etc/security/keytabs/spnego.service.keytab</value>

<description>对应的 keytab 文件</description>

</property>

<property>

<name>dfs.permissions.supergroup</name>

<value>hdfs</value>

</property>

<property>

<name>dfs.http.policy</name>

<value>HTTPS_ONLY</value>

<description>所有开启的 web 页面均使用 https,细节在ssl server 和 client 配置文件内配置</description>

</property>

<property>

<name>dfs.data.transfer.protection</name>

<value>integrity</value>

</property><property>

<name>dfs.https.port</name>

<value>50470</value>

</property>

</configuration>

普通的 hadoop 配置项 namenode、blocksize 等。

NameNode security config 中 dfs.namenode.kerberos.principal

配置。指定namenode 程序 kerberos 对应的账户 nn/_HOST@ITC

AST.CN,_动态解析主机名。如果 namenode 运行在 cdh0,自动转化为 nn/cdh0.itcast.cn@ITCAST.CN,将 _HOST 转换为具体的主

机名。

NameNode 创建的 kerberos 账户为 nn/cdh0.itcast.cn@ITCAST.C

N,cdh0.itcast.cn 对应_,在哪个机器上跑转变为哪个机器账户。可以改成 nn/cdh0.itcast.cn@ITCAST.CN 固定写法。账户有对应的 keyta 

b,不可能一直坐在电脑前输入密码,需要免密的东西,自动拿到密码,告诉keytab 路径 dfs.secondary.namenode.kerberos.principal。

namenode 需要使用 HTTP 相关的,namenode 界面可帮助监控集群情况,打开浏览器可查看。浏览器页面需要使用 HTTPS,使用 kerberos 不能使用普通的 HTTP,只能使用 HTTPS。使用 HTTPS 需要认证,HTTP/_HOST@ITCAST.CN,_HOST 进行主机名转换。

如果 namenode 运行在 cdh0 就相当于 HTTP/cdh0.itcast.cn@ITC

AST.CN

免密登录文件etc/security/keytabs/spnego.service.keytab second

ary.namenode 需要 HTTPS 端口 HTTP/_HOST@IT.CN 账户,共用一个账户。

datanode 需要使用账户dn/_HOST@ITCAST.CN,kerberos,文件存放在哪里 etc/security/keytabs/dn.service.keytab

dfs.datanode.data.dir.perm 创建 datanode 目录权限,默认700。

dfs.web.authentication.kerberos.principal 外网授权  

HTTP/_HOST@ITCAST.CN HTTP 账户使用哪一个

etc/security/keytabs/spnego.service.keytab keytab 在哪里。

dfs.http.policy HTTPS_ONLY 说明所有使用 web 页面均使用 https,不使用 https 不能工作,使用 keytabs 安全。

dfs.https.port 写到50470

如果使用 HTTPS 有相关证书,证书配置在 ssl server 和 client 配置文件内配置。

相关文章
|
7月前
|
存储 分布式计算 负载均衡
Hadoop学习笔记(二)之HDFS
Hadoop学习笔记(二)之HDFS
|
4月前
|
存储 SQL 分布式计算
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
Hadoop(HDFS+MapReduce+Hive+数仓基础概念)学习笔记(自用)
254 0
|
4月前
|
存储 机器学习/深度学习 分布式计算
Hadoop学习笔记(HDP)-Part.12 安装HDFS
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
69 0
Hadoop学习笔记(HDP)-Part.12 安装HDFS
|
6月前
|
分布式计算 Hadoop
Hadoop Hdfs配置过程全程报道
Hadoop Hdfs配置过程全程报道
|
7月前
|
存储 分布式计算 Hadoop
Hadoop配置手册2: 测试Hdfs和WordCount测试
Hadoop配置手册2: 测试Hdfs和WordCount测试
86 0
|
存储 缓存 分布式计算
HDFS(二)|学习笔记
快速学习 HDFS(二)
133 0
HDFS(二)|学习笔记
|
数据采集 存储 SQL
爬虫识别-HDFS数据恢复到 Redis| 学习笔记
快速学习爬虫识别-HDFS数据恢复到 Redis
160 0
|
监控 开发工具 开发者
网站流量日志 Flume收集--hdfs--基于文件闲置策略滚动| 学习笔记
快速学习网站流量日志 Flume收集--hdfs--基于文件闲置策略滚动
141 0
网站流量日志 Flume收集--hdfs--基于文件闲置策略滚动| 学习笔记
|
4月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
40 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
161 0

相关实验场景

更多