hadoop完全分布式集群搭建

准备工作:
1.三台主机,主机名分别是master、slave01、slave02
2.修改主机名,vi /etc/sysconfig/network,重启
3.修改虚拟机的网络设备选项,仅主机模式
4.切换会普通用户,修改ifcfg-eth0,sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart重启服务 查看ifconfig

DEVICE=eth0
HWADDR=08:00:27:A3:67:AE
TYPE=Ethernet
UUID=dbf06565-ac4c-4441-9813-a2cb06e01e66
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.56.125
GATEWAY=192.168.56.2
NETMASK=255.255.255.0
DNS1=8.8.8.8

6.修改/etc/hosts文件,sudo vi /etc/hosts
7.关闭防火墙,service iptables stop,sudo chkconfig iptables off,
8.检查SSH是否已经安装成功 ,rpm -qa | grep openssh,rpm -qa | grep rsync
9.启动SSH服务,sudo service sshd restart
10.配置ssh无密码访问
生成公钥密钥对
在每个节点上分别执行:
命令行输入:cd .ssh/,ssh-keygen -t rsa
一直按回车直到生成结束
执行结束之后每个节点上的/root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub
其中前者为私钥,后者为公钥
在主节点上执行:
命令行输入:cp id_rsa.pub authorized_keys

将子节点的公钥拷贝到主节点并添加进authorized_keys
将两个子节点的公钥拷贝到主节点上
分别在两个子节点上执行:
scp /root/.ssh/id_rsa.pub root@master:/root/.ssh/id_rsa_slave01.pub
scp /root/.ssh/id_rsa.pub root@master:/root/.ssh/id_rsa_slave02.pub

然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去
主节点上执行:
cat id_rsa_slave01.pub>> authorized_keys
cat id_rsa_slave02.pub>> authorized_keys

将主节点的authorized_keys文件分别替换子节点的authorized_keys文件
主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置
scp authorized_keys root@slave01:/root/.ssh/
scp authorized_keys root@slave02:/root/.ssh/

最后测试是否配置成功
在master上分别执行
ssh slave01
ssh slave02
能正确跳转到两台子节点的操作界面即可,同样在每个子节点通过相同的方式登录主节点和其他子节点也能无密码正常登录就表示配置成功。

正式开始:
1.ssh连接xshell
2.ssh连接Xftp,用户名,密码
3.上传jdk,如果是root用户,传到/opt下;如果是普通用户,传到/home/lpy(普通用户名)
4.解压jdk tar -zxvf jdk... -C ~/app/ ,或者 ~/opt/ ,
5.查询已有的JDK rpm -qa |grep -i jdk
6.删除jdk rpm -e --nodeps 包名
7.配置环境变量 sudo vi /etc/profile
加入 export JAVA_HOME=/home/lpy/app/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin

生效 source /etc/profile
8.校验 java -version
9.解压hadoop sudo tar -zxvf hadoop... -C ~/app/
10.cd到hadoop-2.6.0-cdh5.7.0包中,再cd到etc/hadoop(etc前面没有/,相对路径),因为hadoop的配置文件都在etc/hadoop目录下
11.修改3个配置文件
sudo vi hadoop-env.sh #export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/lpy/app/jdk1.7.0_79
export HADOOP_HOME=/home/lpy/app/hadoop-2.6.0-cdh5.7.0


core-site.xml (改主机名) <configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hdfs/tmp</value>
</property>
</configuration>

hdfs-site.xml <property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/hdfs/tmp/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hdfs/tmp/dfs/data</value>
</property>
slaves ->hostname改为master
12.修改环境变量,追加HADOOP_HOME到/etc/profile中
sudo vi /etc/profile

export JAVA_HOME=/home/lpy/app/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/home/lpy/app/hadoop-2.6.0-cdh5.7.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile
13.格式化HDFS
如果出现java.io.IOException: Cannot create directory /opt/hdfs/tmp/dfs/name/current
表示目录操作权限不够,需要现在/opt/hdfs/tmp/dfs/name和/opt/hdfs/tmp/dfs/data目录下窗口current目录并设置权限:

[lpy@master bin]$ cd /opt/
[lpy@master opt]$ sudo chmod -R a+w /opt/hdfs
[lpy@master ~]$ cd app/hadoop-2.6.0-cdh5.7.0/bin
[lpy@master bin]$ hadoop namenode -format

进入bin目录执行命令 hadoop namenode -format

13.启动Hadoop并验证安装 进入sbin目录执行命令 sudo ./start-dfs.sh ./start-yarn.sh
[root@master ~]# cd app/hadoop-2.6.0-cdh5.7.0/
[root@master hadoop-2.6.0-cdh5.7.0]# cd sbin/
[root@master sbin]# ./start-dfs.sh
[root@master sbin]# ./start-yarn.sh


14.检验是否启动成功有两种方法:
1.通过查看进程
[root@master sbin]# jps
4615 NodeManager
4115 NameNode
4524 ResourceManager
4391 SecondaryNameNode
4680 Jps
4200 DataNode
[root@master sbin]# ssh slave01
Last login: Thu Nov 5 03:44:48 2020 from master
[root@slave01 ~]# jps
4013 DataNode
4243 Jps
4109 NodeManager
[root@slave01 ~]# ssh slave02
Last login: Thu Nov 5 03:44:57 2020 from slave01
[root@slave02 ~]# jps
3490 NodeManager
3624 Jps
3394 DataNode

2.通使用浏览器查看
本机端口号:50070 192.168.56.125:50070
15.如果想要停止Hadoop可以,进入sbin目录执行命令./stop-dfs.sh

解决问题:
Commod not found---》环境变量配置错误或者没有生效
格式化失败--》进入opt下 rm -rf hdfs目录 重新格式化(检查 core-site.xml hdfs-site.xml)
少Node 1.先关闭服务再开启 ./stop-dfs.sh ./start-dfs.sh
2.关闭服务 删除opt下的hdfs 重新格式化

原文地址:https://www.cnblogs.com/LEPENGYANG/p/13932492.html