完全分布式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是不可以改变的。
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要与虚拟机的配置保持一致)
3、重启网卡
service network restart
//重启网卡,使设置生效
vi /etc/hosts
在四台虚拟机上编辑hosts文件
该图是一个未修改的host文件(即默认host文件)
我们在hosts文件中增加以下内容:
192.168.137.100 hadp
systemctl status firewalld.service
查看防火墙状态
active(running) 防火墙为开启状态
inavtive(dead) 防火墙为关闭状态
systemctl disable firewalld.service
禁止防火墙服务器
再次查看防火墙状态,确保为disavtive(dead)
reboot
重启CentOS系统,即时生效
防火墙为开启状态
防火墙为开启状态
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)
创建目录(置放安装文件)
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)
cd /home/root
//进入root目录
tar -zxvf jdk-8u73-linux-x64.tar.gz -C apps
// 将jdk解压至指定目录中(/home/root/apps)
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版本信息
若版本信息与安装包一致,则安装成功
yum install wget
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
tar -xzvf hadoop-2.7.7.tar.gz -C /home/root/apps
//将hadoop安装包解压到目录(apps)中
cd /home/root/apps
//进入apps目录
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-keygen -t rsa
//生成公私钥
按三次回车键
执行完毕后,将在用户主目录下生成.ssh文件夹,其中包括公私钥文件。
把公钥发送到服务器端(发送前要保证虚拟机服务器已通过root用户登录)
ssh-copy-id -i ~/.ssh/id_rsa.pub hadp
//把公钥发送到hadp01
cd /home/root/apps/hadoop-2.7.7/etc/hadoop
//进入工作目录
vi core-site.xml
//修改core-site.xml文件
该图是一个未修改的core-site.xml文件(即默认core-site.xml文件)
fs.defaultFS
hdfs://hadp:9000
hadoop.tmp.dir
/home/root/apps/hadoop-2.7.7/tmp
vi hdfs-site.xml
//修改vi hdfs-site.xml文件
该图是一个未修改的hdfs-site.xml文件(即默认hdfs-site.xml文件)
dfs.replication
1
dfs.name.dir
/root/hdfs/name
dfs.data.dir
/root/hdfs/data
dfs.namenode.secondary.http-address
hadp:50090
dfs.namenode.secondary.https-address
hadp:50091
cp mapred-site.xml.template mapred-site.xml
//根据模板创建mapred-site.xml文件
vi mapred-site.xml
//修改mapred-site.xml文件
该图是一个未修改的mapred-site.xml文件(即默认mapred-site.xml文件)
mapreduce.framework.name
yarn
vi yarn-site.xml
//修改yarn-site.xml文件
该图是一个未修改的yarn-site.xml文件(即默认yarn-site.xml文件)
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadp
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
修改后的效果图:
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
别忘记删除这一行最前面的#
修改后的效果图:
cd /home/root/apps/hadoop-2.7.7/
//进入至hadoop目录下
bin/hadoop namenode -format
//格式化namenode
sbin/start-all.sh
//启动Hadoop
在Windows中启动浏览器查看运行情况(即使用外网查询,IP+端口号)
YARN的Web端口号是8088
http://192.168.137.153:8088/
HDFS的Web端口号是50070
http://192.168.137.153:50070/
常见错误:可以打开YARN或HDFS任意一端口,但另外一个无法打开,输入jps时,也可以看见相应的节点未开启
解决方法:重新格式化并重启
sbin/stop-all.sh
//停止Hadoop
完全分布式Hadoop的搭建,请见链接: link.
https://blog.csdn.net/qq_45720792/article/details/107299423