HDFS完全分布式集群搭建与配置及常见问题总结
承接(Linux Centos7 虚拟机环境配置_W958271612的博客-CSDN博客)
一:配置前提
对三台虚拟机进行检查
- 网络配置
检查node01,node02,node03是否能ping通外网
ping baidu.com
- 主机名配置配置
检查三台主机名是否配置
cat /etc/hostname
- 主机域名映射
cat /etc/hosts
三台虚拟机都要检查※
- 防火墙和selinux关闭
(1)检查防火墙状态
systemctl status firewalld
显示灰色点和(dead)状态
三台虚拟机都要检查※
(2)检查selinux
vi /etc/selinux/config
- ssh免密
二:安装HDFS
1.创建文件夹
将HDFS安装在 /opt/software/hadoop/ 目录下
在/opt/software/hadoop/目录下创建 hdfs
在hdfs下创建 data name tmp目录分别存放DataNode NameNode和临时文件
2.上传并解压hadoop安装包
回到/opt/software/hadoop/ 目录
上传hadoop安装包
使用rz命令上传hadoop-2.9.2.tar.gz
上传后使用ll命令查看文件大小是否相同
解压安装包 tar -zxvf hadoop-2.9.2.tar.gz
生成hadoop-2.9.2
3.配置HADOOP_HOME环境变量
vi /etc/profile
export HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
保存退出后 刷新环境变量
source /etc/profile
验证hadoop是否安装完成
4.配置hadoop环境分布式集群
一共七个文件
hadoop-env.sh yarn-env.sh core-site.xml hdfs-site.xml
mapred-site.xml yarn-site.xml slaves
4.1 hadoop-env.sh
vi hadoop-env.sh
修改java_home路径
修改为:
修改配置文件路径
修改后
4.2 yarn-env.sh
vi yarn-env.sh
Yarn的java配置环境变量是注释的 删掉注释
修改后
4.3 core-site.xml
此配置需把文件系统节点改成node01
修改的两个内容
fs.defaultFS表示指定集群的文件系统类型是分布式文件系统(HDFS)hadoop.tmp.dir表示hadoop临时文件目录
vi core-site.xml
将所有的配置信息写在configuration标签对里
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop/hdfs/tmp</value>
</property>
4.4 hdfs-site.xml
- dfs.replication原本配置是1,修改为3,三副本策略,表示副本数是3
- dfs.name.dir和dfs.data.dir配置不变
- dfs.datanode.max.locked.memory配置添加,开启缓存,配置值根据自己机器情况配置
- dfs.permissions配置添加,值配置false,不开启文件权限
vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/software/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/software/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.datanode.max.locked.memory</name>
<value>65536</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
4.5 mapred-site.xml
(1) 本身无mapred-site.xml文件
将mapred-site.xml.template重命名为mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
(2)修改mapred-site.xml
vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
4.5 yarn-site.xml
在configuration标签中间添加以下配置
yarn.resourcemanager.hostname:yarn相关资源服务器的主机名,使用node01
yarn.nodemanager.aux-services和MapReduce计算相关
yarn.nodemanager.vmem-check-enabled 关闭虚拟内存检查
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
4.5 slaves
配置DataNode的节点
vi slaves
4.6 同步配置信息
5:同步node02和node03
5.1同步配置信息
在 node02和node03中创建/opt/software目录
把node01上的配置同步到node02和node03
使用scp命令进行同步
cd /opt/software/
scp -r hadoop/ node02:$PWD
scp -r hadoop/ node03:$PWD
5.2 配置环境变量
由于之前只在node01配置了hadoop环境变量 现在需要在node02和node03上配置hadoop环境变量
vi /etc/profile
代码参考二.3
别忘了加载配置文件
source /etc/profile
三: 启动集群
- 格式化
对namenode进行格式化操作
hdfs namenode -format
- 启动集群
在node01中输入start-dfs.sh启动整个HDFS集群
启动后使用jps去查看每一个节点的进程
node01
node02
node03
只有当三个节点中以上进程同时存在 就说明HDFS完全分布式是搭建完成的
HDFS默认的WEB端口号
http://node01:50070/
常见问题
一.cd进了错的配置文件目录
完整的hadoop配置文件目录为
/opt/software/hadoop /hadoop-2.9.2/etc/hadoop/
在vi 配置文件前 应cd到该目录下,许多同学只是cd到了/opt/software/hadoop/下,导致无法修改配置文件
二.上传hadoop-2.9.2.tar.gz出现乱码
如果出现乱码使用ctrl+c终止上传后
使用rm -rf hadoop-2.9.2.tar.gz删除未上传完整的压缩包后重新上传即可
三.同步配置信息
在node02和node03上创建/opt/sofware后,
使用scp -r hadoop/ node02:$PWD将node01配置同步到node02和node03过程中前,未将node01 node02 node03的当前目录cd到/opt/software目录下导致配置同步不一致导致后续启动集群失败