@[toc]
3.Hadoop运行模式
3.3SSH无密登录配置
3.3.1配置ssh
3.3.1.1基本语法
ssh 另一台电脑的IP地址
3.3.1.2ssh连接时出现Host key verification failed的解决方法
- [summer@hadoop102 ~]$ ssh hadoop103
如果出现如下内容
Are you sure you want to continue connecting (yes/no)?
输入 yes,并回车
3.3.1.3退回到hadoop102
- [summer@hadoop103 ~]$ exit
3.3.2无密钥配置
3.3.2.1免密登录原理
3.3.2.2生成公钥和私钥
[summer@hadoop102 .ssh]$ pwd
/home/summer/.ssh
[summer@hadoop102 .ssh]$ ssh-keygen -t rsa
敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
3.3.2.3将公钥拷贝到要免密登录的目标机器上
- [summer@hadoop102 .ssh]$ ssh-copy-id hadoop102
- [summer@hadoop102 .ssh]$ ssh-copy-id hadoop103
- [summer@hadoop102 .ssh]$ ssh-copy-id hadoop104
完成后在hadoop102、hadoop103、hadoop104上都会有这个文件夹
注意:
还需要在hadoop103上采用 atguigu 账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
还需要在hadoop104上采用 atguigu 账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
还需要在hadoop102上采用 root 账号,配置一下无密登录到hadoop102、hadoop103、hadoop104;
这里我就不一一展示了
3.3.3.ssh文件夹下(~/.ssh)的文件功能解释
文件夹 | 作用 |
---|---|
known_hosts | 记录ssh访问过计算机的公钥(public key) |
id_rsa | 生成的私钥 |
id_rsa.pub | 生成的公钥 |
authorized_keys | 存放授权过的无密登录服务器公钥 |
3.4集群配置
3.4.1集群部署规划
注意:
NameNode和SecondaryNameNode不要安装在同一台服务器
ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
HDFS | NameNode DataNode |
DataNode | SecondayNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager |
NodeManager |
3.4.2配置文件说明
Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
3.4.2.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 |
3.4.2.2自定义配置文件
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。
3.4.3配置集群
3.4.3.1核心配置文件(core-site.xml)
配置core-site.xml
- [root@hadoop102 .ssh]# cd $HADOOP_HOME/etc/hadoop
- [root@hadoop102 .ssh]#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网页登录使用的静态用户为summer -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>summer</value>
</property>
</configuration>
HDFS网页登录先别配置,后面会配置
3.4.3.2HDFS配置文件(hdfs-site.xml)
配置hdfs-site.xml
- [root@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.4.3.3YARN配置文件(yarn-site.xml)
配置yarn-site.xml
- [root@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>
3.4.3.4MapReduce配置文件(mapred-site.xml)
配置mapred-site.xml
- [root@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>
3.4.4在集群上分发配置好的Hadoop配置文件
- [root@hadoop102 hadoop]# cd ..
- [root@hadoop102 etc]# xsync hadoop/
3.4.5去103和104上查看文件分发情况
- [summer@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
- [summer@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml