思路:
1.准备3台虚拟机(静态IP,IP映射,主机名称,防火墙关闭,普通用户创建 等等)
2.安装JDK,配置环境变量
3.安装Hadoop,配置环境变量
4.配置免密登录
5.编写同步脚本,配置集群
(前三步已完成)
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
SELinux是Linux历史上最杰出的安全子系统。
SELinux的作用:
打开/etc/selinux/config文件 把SELinux的值设置为disabled
主节点登陆到从节点中这时候可以免密
免密步骤:
scp /root/.ssh/authorized_keys node02:/root/.ssh
scp /root/.ssh/authorized_keys node03:/root/.ssh
完成免密:使用ssh命令访问某个机器
首先安装插件— yum -y install lrzsz
rz上传hadoop-2.9.2.tar.gz
tar -xvzf hadoop-2.9.2.tar.gz
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 version
Hadoop的配置文件一共分为两类:一类是默认的配置文件,一类是自定义的配置文件,大部分配置我们都可以采用默认配置文件,只有当用户想要修改默认的配置值的时候,才需要去修改自定义配置文件,更改对应的配置值即可。
在export JAVAHOME=/home/y/libexec/jdk1.6.0/这行下添加JAVAHOME配置
cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/路径下
在node02和node03上创建/opt/software目录
scp -r hadoop/ node02:$PWD
scp -r hadoop/ node03:$PWD
在node02和node03机器的/etc/profile环境变量中添加hadoop配置
vi /etc/profile
source /etc/profile
要先格式化—hdfs namenode -format
然后启动—start-dfs.sh(只需在node01上启动即可)
node02和node03上各有1个进程
http://192.168.67.110:50070/
①创建目录:hdfs dfs -mkdir /test
②创建hdfs文件—上传hadoop-2.9.2.tar.gz
③检查datanode
常见问题总结
1.网络配置:确认好VMware生成好的网关地址
虚拟机关闭时在VMware页面点击编辑进入虚拟网络编辑器选择NAT模式点NAT设置然后进入网关IP
接着确认VmNet8网卡已经设置好了IP地址
把IP地址设置为192.168.67.110
网关和之前看到网关地址必须保持一致192.168.67.2
2.识别不到主机名称要检查hosts文件—vi /etc/hosts里是否添加
192.168.67.110 node01 node01 hadoop.com
192.168.67.120 node02 node02 hadoop.com
192.168.67.130 node03 node03 hadoop.com
在windows里的hosts文件里也需要添加保存
C:\Windows\System32\drivers\etc\hosts
192.168.67.110 node01
192.168.67.120 node02
192.168.67.130 node03
注意:中间是否有空格。
3.HDFS完全分布式集群搭建以后,通过start-dfs.sh命令启动集群失败,很大一个原因就是服务器防火墙未关闭的原因。可以通过satemctl stop firewalld命令关闭防火墙然后再重新启动。
4.jps 发现进程已经没有,但是重新启动集群,提示进程已经开启。原因是在 Linux 的根目录下/tmp 目录中存在启动的进程临时文件,将集群相关进程删除掉,再重新启动集群。
5.集群启动不了:使用hdfs namenode -format格式化也没用
第一种可能是配置的文件路径不一致导致出错 首先要删除掉配置错的文件,统一配置到一个路径下重新配置。
第二种是因为关机等原因系统删除了tmp文件中的name,使得namenode不能启动。
解决办法1:如果secondarynamenode安装在了另一台机器,可以使用secondarynamenode恢复:
第一步删除 namenode主节点的metadata配置目录:rm -fr /data/dfs/name
第二步重启集群,
第三步使用hdfs namenode -format
解决办法2:使用hdfs namenode -format格式化namenode所在的机器
6.同步配置信息时使用scp命令进行同步
把第一台机器(node01)上的配置同步到另外两台(node02和node03)
同步的时候如果一台机器需要输入密码这时报错是因为这台机器免密登录没有设置成功
解决方法:在需要输入密码这台机器中再一次操作免密登录。
7.如果节点上的 datanode没有启动 成这个问题的原因可能是使用hdfs namenode -format格式化时格式化了多次造成的
解决方法:停止集群—stop-dfs.sh
删除所有节点在hdfs中配置的data目录下面的所有数据;
重新格式化—hdfs namenode -format
重新启动集群—start-dfs.sh
查看进程—jps
8.启动集群访问网页时连接不了这时可以查看在前面添加的 hosts文件,是否添加错误。
9.上传文件测试时在DataNode节点某个机器的基本单位显示的是0原因是没关闭防火墙去关闭防火墙重新启动即可。
10.jps不生效
原因:全局变量hadoop version没有生效
解决办法:需要source /etc/profile