完全分布式Hadoop的搭建,请见链接: link.
https://blog.csdn.net/qq_45720792/article/details/107299423
以下所有在终端上执行的操作均在root用户下完成!!!
su - //带环境配置文件切换为root用户
一、建立虚拟机
在VMware中新建1台虚拟机
1、主机名:hadp
2、镜像文件:Centos7
链接: link.
(https://pan.baidu.com/s/1pqGMlRwC-t5Qp5YF-aowuA 提取码:w3du)
3、内存建议为4G,CPU建议为2核
4、网络连接:NAT
5、记录各虚拟机IP
ip addr //适用于Centos7以上版本
ipconfig //适用于Centos7以下版本
二、配置静态网卡(IP)
虚拟机每次开机时都有可能更改IP,我们在搭建项目时,虚拟机的IP是不可以改变的。
vi /etc/sysconfig/network-scripts/ifcfg-ens33 //编辑网卡文件
该图是一个未修改的网卡文件(即默认网卡文件)
1、将BOOTPROTO的值(默认是dhcp)修改为static,即静态地址
2、添加IPADDR(IP地址)、NETMASK(子网掩码)、GATEWAY(网关)
IPADDR="192.168.137.152"
NETMASK="255.255.255.0"
GATEWAY="192.168.137.2"
DNS1=114.114.114.114
DNS2=119.29.29.29
vim操作不熟练的小可爱们,见链接: link.(https://blog.csdn.net/qq_45720792/article/details/107300929)
IPADDR:我们可以设置该虚拟机现在时刻的IP,此作用是保持该虚拟机IP不发生改变(查询IP的命令上文已提到);我们也可以设置一个我们想要的IP,便于理解和记忆(前提是该IP必须有效且未被占用)
NETMASK、GATEWAY:可以打开VMware→编辑→虚拟网络编辑器(→NET设置),进行查看(NETMASK、GATEWAY要与虚拟机的配置保持一致)


我们将ifcfg-ens33文件编辑后,如下:
3、重启网卡
service network restart //重启网卡,使设置生效
三、配置host文件
vi /etc/hosts在四台虚拟机上编辑hosts文件
该图是一个未修改的host文件(即默认host文件)

我们在hosts文件中增加以下内容:
192.168.137.100 hadp
我们将host文件编辑后,如下:
四、配置防火墙
systemctl status firewalld.service 查看防火墙状态
active(running) 防火墙为开启状态
inavtive(dead) 防火墙为关闭状态
systemctl disable firewalld.service禁止防火墙服务器
再次查看防火墙状态,确保为disavtive(dead)
reboot 重启CentOS系统,即时生效
防火墙为开启状态
防火墙为开启状态
五、Centos系统—jdk的安装
1、下载jdk
Windows系统中下载jdk文件
jdk-8u73-linux-x64.tar.gz
链接1: link.(https://pan.baidu.com/s/1cna38PQykYN03Hy_bUZ9pw 提取码:a42v)
链接2(oracle官网下载): link.(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
2、上传jdk
创建目录(置放安装文件)
mkdir -p /home/root/apps //在root目录下创建apps文件夹
将Windows系统中下载好的jdk-8u73-linux-x64.tar.gz上传至/home/root目录下
禁止!!!:此处严禁通过VMware tools工具,从Windows系统中将jdk安装包文件直接拖拽至虚拟机中,这个方法传输的文件很有可能都不完整,在解压的过程中将会出现如下异常提示
tar: 归档文件中异常的 EOF
tar: 归档文件中异常的 EOF
tar: Error is not recoverable: exiting now
这种方法通过后续的安装步骤,尽管jdk安装成功了,但显示的版本却是openjdk(Centos自带的jdk),这种情况就是安装出错,后续启动hadoop时将会出现路径上的问题
解决方法:使用Xftp上传jdk文件
链接: link.(https://pan.baidu.com/s/1oHCoCmxxLuTiE4JOyVZE6w 提取码:ntsi)
3、安装jdk
cd /home/root //进入root目录
tar -zxvf jdk-8u73-linux-x64.tar.gz -C apps // 将jdk解压至指定目录中(/home/root/apps)
4、配置jdk环境变量
vi /etc/profile //编辑/etc/profile文件
在文件的末尾设置JAVA环境变量(添加以下语句)
export JAVA_HOME=/home/root/apps/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
(jdk1.8.0_73,可在/home/root/apps路径下查看jdk的版本号,即文件夹名)
vim操作不熟练的小可爱们,见链接: link.(https://blog.csdn.net/qq_45720792/article/details/107300929)
source /etc/profile // 让修改后的/etc/profile文件立即生效
java -version //查看jdk版本信息
若版本信息与安装包一致,则安装成功
番外篇:
如果安装成openjdk,如何再调试为想要安装的jdk版本jdk1.8.0_73(即上传安装包的jdk版本)
1、查看jdk版本信息
java -version //查看jdk版本信息

此时显示的版本为:openjdk1.8.0_102
2、查找openjdk相关文件
rpm -qa |grep java //查出openjdk相关的文件
如图,我们可以看到相关文件有4个:
java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
3、删除openjdk
rpm -e --nodeps+文件名 //删除该文件
把这4个openjdk都删除:
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
4、查看jdk版本信息
java -version //查看jdk版本信息![]()
此时,显示没有安装jdk
5、重新安装
我们将/home/root/apps/目录下的jdk1.8.0_73文件夹删除,可以用Xftp删除(可能会有残留,不过没事,我们重新解压时会覆盖它)
cd /home/root //进入root目录(若在该目录内,忽略该步)
tar -zxvf jdk-8u73-linux-x64.tar.gz -C apps // 将jdk重新解压至指定目录中(/home/root/apps)
source /etc/profile // 刷新/etc/profile文件
java -version //查看jdk版本信息
若版本信息与安装包一致,则安装成功
六、Centos系统—hadoop的安装
1、安装wget
yum install wget
2、下载hadoop安装包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
3、安装hadoop
tar -xzvf hadoop-2.7.7.tar.gz -C /home/root/apps //将hadoop安装包解压到目录(apps)中
cd /home/root/apps //进入apps目录
4、配置Hadoop环境变量
vi /etc/profile //编辑/etc/profile文件
在文件的末尾设置JAVA环境变量(添加以下语句)
export HADOOP_HOME=/home/root/apps/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
vim操作不熟练的小可爱们,见链接: link.(https://blog.csdn.net/qq_45720792/article/details/107300929)
source /etc/profile // 让修改后的/etc/profile文件立即生效
hadoop //检查是否安装成功
七、配置SSH免密登录
生成公私钥
ssh-keygen -t rsa //生成公私钥
按三次回车键
执行完毕后,将在用户主目录下生成.ssh文件夹,其中包括公私钥文件。
发送公私钥
把公钥发送到服务器端(发送前要保证虚拟机服务器已通过root用户登录)
ssh-copy-id -i ~/.ssh/id_rsa.pub hadp //把公钥发送到hadp01
八、Hadoop集群配置
cd /home/root/apps/hadoop-2.7.7/etc/hadoop //进入工作目录
core-site.xml
vi core-site.xml //修改core-site.xml文件
该图是一个未修改的core-site.xml文件(即默认core-site.xml文件)
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadp:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/root/apps/hadoop-2.7.7/tmp</value>
</property>
修改后的效果图:
hdfs-site.xml
vi hdfs-site.xml //修改vi hdfs-site.xml文件
该图是一个未修改的hdfs-site.xml文件(即默认hdfs-site.xml文件)
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/root/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/root/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadp:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>hadp:50091</value>
</property>
修改后的效果图:
mapred-site.xml
cp mapred-site.xml.template mapred-site.xml //根据模板创建mapred-site.xml文件
vi mapred-site.xml //修改mapred-site.xml文件
该图是一个未修改的mapred-site.xml文件(即默认mapred-site.xml文件)
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改后的效果图:
yarn-site.xml
vi yarn-site.xml //修改yarn-site.xml文件
该图是一个未修改的yarn-site.xml文件(即默认yarn-site.xml文件)

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadp</value>
</property>
修改后的效果图:
hadoop-env.sh
vi hadoop-env.sh //修改hadoop-env.sh文件
该图是一个未修改的hadoop-env.sh文件(即默认hadoop-env.sh文件)
将默认的export JAVA_HOME=${JAVA_HOME}
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_73
修改后的效果图:

yarn-env.sh
vi yarn-env.sh //修改yarn-env.sh文件
该图是一个未修改的hadoop-env.sh文件(即默认hadoop-env.sh文件)
将默认的# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_73
别忘记删除这一行最前面的#
修改后的效果图:

九、Hadoop的格式化与启动
格式化
cd /home/root/apps/hadoop-2.7.7/ //进入至hadoop目录下
bin/hadoop namenode -format //格式化namenode

hadoop version //查看Hadoop版本信息
启动
sbin/start-all.sh //启动Hadoop

在Windows中启动浏览器查看运行情况(即使用外网查询,IP+端口号)
YARN
YARN的Web端口号是8088
http://192.168.137.153:8088/


HDFS
HDFS的Web端口号是50070
http://192.168.137.153:50070/
常见错误:可以打开YARN或HDFS任意一端口,但另外一个无法打开,输入jps时,也可以看见相应的节点未开启
解决方法:重新格式化并重启
jps
jps //查看各个虚拟机节点启动的状况
十、Hadoop的停止
sbin/stop-all.sh //停止Hadoop

完全分布式Hadoop的搭建,请见链接: link.
https://blog.csdn.net/qq_45720792/article/details/107299423