hadoop集群环境配置
目录
VMware虚拟机安装
Xshell安装
网络问题
centos7下载
---------参考以下视频步骤进行生态搭建----------
搭建好hadoop01
克隆出hadoop02、hadoop03
启动三台虚拟机
打开终端 输入
记录下各个ip
打开Xshell,新建会话
修改主机名
配置静态IP
主机名称,主机映射
重启
网络连通测试
配置免密登录
生成密钥
创建目录
拷贝公钥到同一台虚拟机
1
2
3
下载rz插件
卸载与安装jdk
配置jdk环境变量
将jdk配置文件分发给其他两台虚拟机
hadoop安装
修改配置文件
分发
01上进行节点格式化
防火墙(三台)
一键脚本启动
三台执行jps
检测
VMware虚拟机安装
看我的资源
Xshell安装
官网:
家庭/学校免费 - NetSarang Website
下载:https://cdn.netsarang.net/274efd03/Xshell-8.0.0067p.exe
一直点下一步安装即可
网络问题
检测VMware 左上角 编辑-虚拟网络编辑器
centos7下载
https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
---------参考以下视频步骤进行生态搭建----------
可以跟着这个视频走,以下只列出主要步骤,以及视频中没有说到的问题
Hadoop集群搭建完整版(奶妈保姆级别教程,超级详细),一个半小时即可完成_哔哩哔哩_bilibili
搭建好hadoop01
(设定密码要大小写和符号)
账号、密码
克隆出hadoop02、hadoop03
启动三台虚拟机
打开终端 输入
ip addr
然后我们需要看ens33 ip地址,我这边没有显示
采取以下方法解决:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
进入 vim
编辑器后,按 i
键进入插入模式即可编辑文件内容;检查以下几个
TYPE=Ethernet BOOTPROTO=dhcp ONBOOT=yes
我的问题出在ONBOOT=no
查看完成后,按 Esc
键退出插入模式,输入 :wq
保存并退出。
在修改完文件内容后,可以重启网络服务使配置生效
sudo systemctl restart network
记录下各个ip
192.168.230.140 hadoop01
192.168.230.139 hadoop02
192.168.230.137 hadoop03
打开Xshell,新建会话
输入名称,主机号(ip)
同样
新建hadoop02、hadoop03
一般使用root,注意密码,不要输入成admin的
修改主机名
hostnamectl set-hostname hadoop01
后续会变
配置静态IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
static
IPADDR=192.168.230.139
NETMASK=255.255.255.0
GATEWAY=192.168.230.2
DNS1=8.8.8.8
这个230需要根据你的具体的进行修改
主机名称,主机映射
vi /etc/hosts
粘贴进去(需根据实际ip修改)
192.168.230.136 hadoop01 192.168.230.139 hadoop02 192.168.230.137 hadoop03
重启
reboot
关闭对话框
虚拟机已经在重启了
网络连通测试
ping
我按照上述进行配置后,会出现以下问题
下面进行检查
检查本身网络是否有问题
ping 192.168.230.1
检查DNS
cat /etc/resolv.conf
我查过了,我这部分没问题,似乎是防火墙问题
sudo systemctl stop firewalld
运行之后,可以ping了
网络联通,说明网卡配置有效
配置免密登录
安装ssh服务
yum install openssh-server
出错了,有问题
ceteros下载有问题,换成阿里的镜像源即可
以下是解决步骤
# 备份原有repo文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载阿里云镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
验证文件格式,一般没问题
cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
...
清理缓存并重建
yum clean all
yum makecache
重新执行命令
yum install openssh-server
ok
生成密钥
ssh-keygen -t rsa
输入命令,连按三下回车键
创建目录
mkdir -p /export/data
mkdir -p /export/servers
mkdir -p /export/software
拷贝公钥到同一台虚拟机
hadoop01
1
ssh-copy-id hadoop01
2
scp /root/.ssh/authorized_keys hadoop02:/root/.ssh
出问题了
而且很奇怪,我ping百度又不行
我尝试了一些方法,最终发现可能是DNS问题
vi /etc/resolv.conf
在文件里面加上
nameserver 8.8.4.4
保存然后运行
sudo systemctl restart NetworkManager
然后再ping百度就可以了
然后再运行上面的scp命令就可以了
3
scp /root/.ssh/authorized_keys hadoop03:/root/.ssh
然后我scphadoop03后又出问题
然后我尝试直接通过 IP 连接 hadoop03 发现成功了
说明问题出在 主机名解析 上
大家可以使用ip addr查一下hadoop01的ip,看看是不是会出现那种主次ip的情况(即ens33会出现两个ip),可以删除次的,再重新连接
sudo ip route add default via 192.168.230.xxx dev ens33
然后大多数时候有可能是防火墙的问题,以下命令可以关闭
sudo systemctl stop firewalld
下载rz插件
三个都运行
yum install lrzszcd -y
卸载与安装jdk
java -version
rpm -qa | grep jdk
输出
[root@hadoop01 ~]# rpm -qa | grep jdk
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
copy-jdk-configs-3.3-10.el7_5.noarch
java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps xxx
要卸载带open的
[root@hadoop01 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
[root@hadoop01 ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
[root@hadoop01 ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
[root@hadoop01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
cd /export/software
rz
官网下载:Java Downloads | Oracle
官网下载要先登录
然后传上去
解压安装
tar -zxvf jdk-8u441-linux-x64.tar.gz -C /export/servers/
配置jdk环境变量
切换路径、命名
cd /export/servers/
mv jdk1.8.0_441 jdk
配置环境变量
vi /etc/profile
到最下面 copy进去
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
重新加载环境变量
source /etc/profile
好了,有报错
我采取以下方法解决
# 进入软件包目录
cd /export/software# 删除空的 jdk 目录
rm -rf /export/servers/jdk# 重新解压到目标路径(确保使用正确的压缩包名称)
tar -zxvf jdk-8u441-linux-x64.tar.gz -C /export/servers/# 重命名解压后的目录为 jdk(假设解压后目录是 jdk1.8.0_441)
mv /export/servers/jdk1.8.0_441 /export/servers/jdk
ls -l /export/servers/jdk/bin/java
进入
vi /etc/profile
代替原本的
export JAVA_HOME=/export/servers/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
java -version
成功
将jdk配置文件分发给其他两台虚拟机
cd /export/servers
ll
然后你会发现又两个jdk,这是因为前面的操作不当,我们先检查
# 检查第一个 jdk 目录
ls -l /export/servers/jdk/bin/java# 检查第二个 jdk 目录(可能实际名为 jdk1.8.0_441)
ls -l /export/servers/jdk1.8.0_441/bin/java
删
sudo rm -rf /export/servers/jdk1.8.0_441
ls -l /export/servers/jdk/bin/java # 应显示 java 可执行文件
ls -l /export/servers/jdk/lib # 应包含 tools.jar、dt.jar 等
如果还是存在两个jdk,可以使用incode码删除
ls -li
# 通过 find 命令按 Inode 删除(替换 7654321 为实际 Inode 号)
sudo find . -inum 7654321 -exec rm -rf {} \;
然后继续
cd jdk
# 显示当前路径
pwd
cd /export/servers
scp -r /export/servers/jdk hadoop02:$PWD
scp -r /export/servers/jdk hadoop03:$PWD
分发后两台虚拟机重新执行
source /etc/profile
java -version
终于~~,我们要开始hadoop的安装与配置了
hadoop安装
当然要先下载hadoop
hadoop的官网下载和各版本下载方法_hadoop镜像下载地址-CSDN博客
cd /export/software
rz
上传
遇到这种乱码的上传完毕需要重新上传
解压安装
tar -zxvf hadoop-3.2.4.tar.gz -C /export/servers/
然后有时候明明ls查得到文件,但是出来的结果确实没办法open,那很有可能是代码输入或者敲错了
cd /export/servers/
mv hadoop-3.2.4 hadoop
配置环境变量
vi /etc/profile
export HADOOP_HOME=/export/servers/hadoop
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
hadoop version
修改配置文件
cd /export/servers/hadoop/etc/hadoop/
打开文件
vi hadoop-env.sh
export JAVA_HOME=/export/servers/jdk
ok,next
vi core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value># 固定主机名
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop/tmp</value>
</property>
ok,next
vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value># 虚拟机台数
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value># 这里是第二台虚拟机名字
</property>
:wq
ok,next
cp mapred-site.xml mapred-site.xml.template
vi mapred-site.xml
<!--指定mapreduce运行时的框架,这里指定再Yarn上,默认时local-->
<property>
<name>mapreduce.framework</name>
<value>yarn</value>
</property>
ok,next
vi yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>#这里写主机名,其他内容不变
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value >mapreduce_shuffle </value></property>
ok,next
vi slaves (如果没有slaves,就是workers)
删除再写入
分发
scp /etc/profile hadoop02:/etc/profile
scp -r /export/ hadoop02:/
改成03继续分发
然后重新加载环境配置变量,01\02\03都需要
source /etc/profile
01上进行节点格式化
hdfs namenode -format
注意:格式化文件系统这个操作只能在第一次启动hdfs集群操作,后面不能进行格式化
防火墙(三台)
systemctl stop firewalld
systemctl disable firewalld
一键脚本启动
start-dfs.sh
start-yarn.sh
start-all.sh
三台执行jps
检测
到这里就算是配置完成了
hadoop01:50070
如果失败,则访问
hadoop01:9870
因为
Hadoop 3.x 端口变更
- Hadoop 2.x 中,NameNode 的默认 Web UI 端口是
50070
。 - Hadoop 3.x 中,该端口变更为
9870
。
hadoop01:8088
成功,完结散花!!!