admin 管理员组

文章数量: 887017

HDFS完全分布式集群搭建与配置及常见问题总结

目录

1 配置hdfs完全分布式集群步骤详解

1.2 配置前的准备工作

1.3配置环境变量

1.3.1 配置HADOOP_HOME环境变量

1.3.2  配置hadoop-env.sh环境变量

1.3.3 配置yarn-env.sh环境变量

1.3.4 配置core-site.xml环境变量

1.3.5 配置hdfs-site.xml环境变量

1.3.6 配置mapred-site.xml 环境变量

1.3.7 配置yarn-site.xml环境变量

1.3.8 slaves

1.3.9 同步配置信息

1.3.10 配置环境变量

2.启用HDFS集群

 2.1上传文件测试

3.HDFS搭建时遇到的常见问题总结


1 配置hdfs完全分布式集群步骤详解

  1. 1查看配置前需要的当前已有环境

①网络配置

先ping外网,三个虚拟机都ping一遍最好

代码: ping baidu(ctrl+c停止)

②主机名配置

cat /etc/hostnam

e 也是三台虚拟机都检查一遍

③主机域名映射

检查每台虚拟机的主机名称和映射是否对照

cat /etc/hosts

④防火墙和selinux关闭

systemctl status firewalld

如果程序显示中有dead这个单词,那么防火墙就是关闭的。

⑤ssh免密

ssh node01

⑥查看java jdk 的安装情况

完成这六项,我们就可以进行创建安装目录这个操作了。

1.2 配置前的准备工作

①检查1.1是否配置成功

②创建安装需要的目录

cd /opt
mkdir software
cd software/
mkdir hadoop
cd hadoop/
mkdir hdfs
cd /hdfs
mkdir tmp
mkdir name
mkdir data

pwd

·返回hadoop,上传压缩包:hadoop-2.9.2.tar.gz

代码:cd .. 即可回到上一目录hadoop中。

然后找到下好的hadoop-2.9.2.tar.gz文件,拖拽到虚拟机里,即会自动上传。

        如果出现乱码/火星文,删除重新上传就可以了。

        上传文件需等待几秒,如网速不好,时间会延长。

        366447449是hadoop-2.9.2.tar.gz的正常大小。

· 解压缩文件

tar -xvzf hadoop-2.9.2.tar.gz

·查看

cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop

1.3配置环境变量

1.3.1 配置HADOOP_HOME环境变量

①进入环境

vi /etc/profile

②进入后按键盘上的 A 进入编辑模式,添加环境变量。

export HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

!!!!!!!!!!!!!!!!!!!!!!切勿打错字母/多打空格/多按回车!!!!!!!!!!!!!!!!!!!!!!!!!!!!

③最后 Esc   :wq保存退出

刷新环境变量

测试hadoop是否安装成功

source /etc/profile
hadoop version

1.3.2  配置hadoop-env.sh环境变量

  • 这里我们无需对其进行配置保持配置不变。
  • 原来的配置是为了修改这里面的JAVAHOME值和HADOOPCONF_DIR的值,而并非新增。
  • 通过代码进入我们需要配置的环境中
  • vi /etc/hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8 #你的java jdk 的安装路径
export HADOOP_CONF_DIR=/opt/software/hadoop/hadoop-2.9.2/etc/hadoop #hadoop安装路径

1.3.3 配置yarn-env.sh环境变量

①代码进入环境中: cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/
vi yarn-env.sh②需要配置值:export JAVA_HOME=/usr/local/java/jdk1.8

1.3.4 配置core-site.xml环境变量

  • 此配置需要把文件系统节点改成node01
  • fs.defaultFS表示指定集群的文件系统类型是分布式文件系统(HDFS),datanode心跳发送到namenode的地址
  • hadoop.tmp.dir表示hadoop临时文件目录
  • 需要配置值:
vi core-site。xml<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>

1.3.5 配置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>

1.3.6 配置mapred-site.xml 环境变量

  • 需要把mapred-site.xml.template拷贝成mapred-site.xml文件进行配置
  • 进入环境代码:
cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/
cp mapred-site.xml.template  mapred-site.xml
vi mapred-site.xml在configuration标签中间添加以下配置
mapreduce.framework.name指定资源分配使用yarn
需要配置值:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

 1.3.7 配置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>

1.3.8 slaves

  • 配置3台机器主机名,此配置表示三台机器都作为DataNode
  • 进入环境变量:vi slaves
    写入主机名称:
    node01
    node02
    node03

 

1.3.9 同步配置信息

  • 在node02,node03上创建/opt/software目录
cd /opt/
mkdir software把node01上的配置同步到node02和node03
使用scp命令进行同步
代码:
cd /opt/software/
scp -r hadoop/ node02:$PWD
scp -r hadoop/ node03:$PWD

1.3.10 配置环境变量

  • 之前只在node03上配置了hadoop环境变量,现在需要在node01和node02上添加hadoop环境变量
  • 在node01和node02机器的/etc/profile环境变量中添加hadoop配置
  • 代码:
vi /etc/profileexport HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

  • 添加配置以后记得加载配置文件,使得配置文件生效,刷新环境变量。
source /etc/profile

2.启用HDFS集群

只需要在node1上格式化,不要重复格式化。

hdfs namenode -format
启动集群,只需要在node01上启动
start-dfs.sh 

查看进程启动情况

jps

node01上三个进程,node02,node03,上只会出现一个datanode的进程。

 ​​​​​​​​​​​​​

访问web网页端

url:http://192.168.67.110:50070/

 2.1上传文件测试

创建目录

上传文件到node01

cd /opt/
mkdir testData
cd testData/
mkdir hdfs
cd hdfs
rz #上传hadoop-2.9.2.tar.gz

#把hadoop-2.9.2.tar.gz上传到分布式文件系统
hdfs dfs -put hadoop-2.9.2.tar.gz  /test

然后查看每台虚拟机的节点占用情况

到这,我们就成功的完成了HDFS的完全分布式集群的搭建,下面来介绍一下搭建HDFS集群时可能遇到的问题。 

3.HDFS搭建时遇到的常见问题总结

 1.出问题首先学会查看日志 
hadoop 日志在哪里:   hadoop的日志在hadoop的安装目录下的 logs目录
查看方式:  tail -n 100  日志文件,寻找问题所在。不过首先需要进入hadoop目录下在查看
2.Hadoop启动后没有Name Node或DataNode进程
将所有节点的tmp目录和logs目录下的文件清空清空
rm -rf *
重新格式化namenode
hadoop namenode -format
重新启动HDFS集群
start hdfs -dfs
3.hadoop平台启动后少进程
杀死对应占用进程
kill ****
4.Datenode没有启动
可能是因为多次格式化的原因,每格式化一次都会生成一个NamenodeID,
而tem,data,name目录下会保存上次的NamenodeID,但hdfs namenode -format
会清空namenode下的数据,不会清空datanode中的数据,所以格式化前先清空tem目录下的数据
5.更该配置文件时一定不要写错
如果多写了会出现报错
这时我们就需要把配置文件删除,不然写什么都会报错。

结语:好了,今天我们团队的分享就到这里了,在这里感谢老师的答疑解惑。

本文标签: HDFS完全分布式集群搭建与配置及常见问题总结