完全分布式运行模式
一、SSH无密登录配置
1、基本语法
ssh 另一台电脑的IP地址
[user@hadoop102 ~]$ ssh hadoop103
- 退回hadoop102
[user@hadoop103 ~]$ exit
2、配置
(1)生成公钥和私钥
[user@hadoop102 .ssh]$ pwd
/home/atguigu/.ssh
[user@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲三次回车,就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(2)将公钥拷贝到要免密登录的目标服务器上
[user@hadoop102 .ssh]$ ssh-copy-id hadoop102
[user@hadoop102 .ssh]$ ssh-copy-id hadoop103
[user@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:以上配置实现了在hadoop102上能无密登录hadoop102、hadoop103、hadoop104,但是在除了hadoop102外的服务器上不能实现无密登录,因此也需要在其他服务器上进行配置
3、.ssh 文件夹下(~/.ssh)的文件功能解释
文件名 | 功能 |
---|---|
known_hosts | 记录 ssh 访问过计算机的公钥(public key) |
id_rsa | 生成的私钥 |
id_rsa.pub | 生成的公钥 |
authorized_keys | 存放授权过的无密登录服务器公钥 |
二、集群配置
- 在前面的准备工作中,hadoop102、hadoop103、hadoop104中的hadoop没有关系,先需要在三台服务器之间建立好相关的规划
1、集群部署规划
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManage |
- NameNode和SecondaryNameNode不要安装在同一台服务器,因为这两个都比较耗内存
- ResourceManager也很消耗内存,他是YARN的资源管理者,也比较耗内存,不要和NameNode、SecondaryNameNode配置在同一台服务器上
2、配置文件说明
- Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值
(1)默认配置文件
要获取的默认文件 | 文件存放在Hadoop的jar包中的位置 |
---|---|
[core-default.xml] | hadoop-common-3.1.3.jar/core-default.xml |
[hdfs-default.xml] | hadoop-hdfs-3.1.3.jar/hdfs-default.xml |
[yarn-default.xml] | hadoop-yarn-common-3.1.3.jar/yarn-default.xml |
[mapred-default.xml] | hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml |
(2)自定义配置文件
- core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置
3、配置集群
(1)核心配置文件
- 配置core-site.xml
[user@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop
[user@hadoop102 hadoop]$ vim core-site.xml
文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>user</value>
</property>
</configuration>
(2)HDFS配置文件
- 配置hdfs-site.xml
[user@hadoop102 hadoop]$ vim hdfs-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
(3)YARN配置文件
- 配置yarn-site.xml
[user@hadoop102 hadoop]$ vim yarn-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
</configuration>
(4)MapReduce配置文件
- 配置mapred-site.xml
[user@hadoop102 hadoop]$ vim mapred-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4、在集群上分发配置好的Hadoop配置文件
[user@hadoop102 hadoop]$ xsync /opt/module/hadoop3.1.3/etc/hadoop/
标签:xml,配置文件,user,hadoop,Hadoop,集群,ssh,hadoop102,搭建
From: https://www.cnblogs.com/shihongpin/p/18410423