完全分布式HADOOP+JDK搭建
前言:自我认为伪分布式和完全分布式相差在以下地方:
伪分布式是一台虚拟机搭建、完全分布式是三台虚拟机搭建分别分为:master和slaves1、slaves2
一、新建三台虚拟机(以下命令3台虚拟机需同步执行)
1.关闭防火墙
systemctl status firewalld #查看防火墙状态
(active running)是开启状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #禁用开机自启防火墙
重新systemctl status firewalld
出现inactive (dead),证明关闭成功
2.修改主机名:hostnamectl set-hostname 主机名
主机:master
丛机1:slaves1
丛机2:slaves2
下面的配置操作和伪分布式几乎一样
3.配置网卡: (主节点.50 丛一51 丛二 52)
vim /etc/sysconfig/network-script/ifcfg-ens33
BOOTPROTO=static 静态IP
ONBOOT=YES
IPADDR=192.168.171.50 丛一 51 丛二 52
PREFIX=24
GATEWAY=192.168.171.2
NETMASK=255.255.255.0
(2.)重启网卡:service network restart
二、winscp链接主机(master)
把Hadoop和jdk放目录里(目录可以是/usr/local也可以是其他)
这是在/root根目录下
大家可以发现两个文件是压缩包形式,肯定是需要解压使用了
这里用到的命令是tar -zxvf 文件名
发现名字太长,改下名字。这里用到的是“mv”剪切或在同目录下移动或重命名
查看一下解压并重命名成功 (只需在主机上解压)
三、:修改 /etc/hosts
1、vi /etc/hosts
2、添加:192.168.##.** 主节点主机名
192.168.##.** 从节点1主机名
192.168.##.** 从节点2主机名
(注:三台虚拟机都要配置) (另外二台也是一样的操作)
四、配置SSH免密登录(三台虚拟机都要执行)
首先三台主机同步操作:ssh-keygen -t rsa 一直回车
创建公钥(3)
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
然后切到slaves1、slaves2
ssh-copy-id –i master
回到主机,master
将master的authorized_keys拷贝到其他节点
scp /root/.ssh/authorized_keys slave1:/root/.ssh
scp /root/.ssh/authorized_keys slave2:/root/.ssh
测试
三台机子可以互相连接 ssh 主机名
五、配置jdk和hadoop PATH
以下操作只在主机操作即可
vim /etc/profile 全局变量配置文件
配置hadoop
export HADOOP_HOME=hdoop路径
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置jdk
export JAVA_HOME=jdk路径
export PATH=$JAVA_HOME/bin:$PATH
:wq保存退出
使环境生效 source /etc/profile
六、配置hadoop文件
进文件目录: cd /root/hadoop/etc/hadoop (我的hadoop是在/root根目录)
1. vim hadoop-env.sh
export JAVA_HOME=/root/jdk
vim yarn-env.sh
2.vim core-site.xml
<configuration>
<property>
<name>fs.defaultFS </name>
<value>hdfs://master:9000</value>(主机名:9000)
</property>
<property>
<name>hadoop.tmp.dir</name>(tmp目录)
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
- vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- vim mapred-site.xml (cp mapred-site.xml.template mapred-site.xml) #改名
<property>
<name>mapreduce.framework.name</name> 注:framework
<value>yarn</value>
</property>
- vim yarn-site.xml 这个看着代码挺多,其实就几个代码不同,自己找一下,才有成就感
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
七、编写slaves文件 (也只需在主机进行)
vim slaves
里面的localhost删掉
添加上两台丛机的主机名 (每个主机名独占一行)
八、分发HADOOP和JDK (主机进行)
scp –r空格/root/hadoop root@slaves1:/root/hadoop
scp –r空格/root/hadoop root@slaves2:/root/hadoop
scp –r空格/root/jdk root@slaves1:/root/jdk
scp –r空格/root/jdk root@slaves2:/root/jdk
九、格式化Hadoop namenode –format
十、启动进程:
start-dfs.sh
start-yarn.sh
Master进程:namenode resorcemanager secondaryNameNode
Slave进程:datanode nodemanager
丛机进程
进程起不来,检查HADOOP和JDK配置文件
例:NameNode无法启动
vim /root/hadoop/etc/hadoop/core-site.xml
配置文件是否有书写错误
<configuration>
<property>
<name>fs.defaultFS </name>
<value>hdfs://master:9000</value>(主机名:9000)
</property>
<property>
<name>hadoop.tmp.dir</name>(tmp目录)
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
单独启动nodemanager yarn-daemon.sh start nodemanager