Hadoop集群搭建
hadoop集群搭建搭建
1.配置虚拟机
集群环境的搭建需要配置至少3太linux机器
1.1虚拟机搭建:
参考网址:https://www.cnblogs.com/wzHardStudy/p/16126243.html
1.2准备
搭建完一台虚拟机后可以利用VMware自带的克隆功能复制出两台虚拟机.
首先要把目标虚拟机关机!!!
选择虚拟机–>右键管理–>克隆
直接下一步下一步
选择完整克隆
等待克隆
1.3启动克隆虚拟机
克隆出的虚拟机直接就会现在出来,直接启动即可!
启动后进入系统界面,修改ip地址
centos7.9 文件名叫ens33 可以通过查ip确认自己的!
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改完毕重启服务
service network restart
尝试用ssh工具链接
链接不上查看防火墙
查看防火墙状态 systemctl status firewalld关闭防火墙 systemctl stop firewalld永久关闭 systemctl disable firewalld
还是有问题查看链接
https://www.cnblogs.com/wzHardStudy/p/16126243.html
2.配置免密登录
https://blog.csdn.net/u012404692/article/details/106158926
3.配置JAVA环境
hadoop是java写出的大数据框架,所以允许需要java环境
2.1压缩包安装jdk
1.创建一个文件夹专门存放文件
切换至根目录
cd /创建文件夹 mkdir -p /wz/softwores
2.上传jdk
上传jdk至创建的文件夹下
建议用 xftp直接上传
命令可以用
scp -r 本地文件路径 用户@ip:远程文件路径scp -p jdk-8u241-linux-x64.tar.gz [email protected]:/wz/softwares
3.上传完毕解压
查看上传文件 :ls文件名 : tar -zvxf 改名:mv 解压文件名 重命名删除文件 : rm 上传的压缩包
4.配置环境变量
进入配置文件: vi /etc/profile
在文件最下方添加(根据自己路径修改)文件名也要根据自己改的名字修改
export JAVA_HOME=/wz/softwares/jdk1.8.0_241 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
重新加载环境变量文件
source /etc/profile
5.测试:
java -versionjava
指令有效则配置完成!
2.2yum安装jdk
3.安装hadoop
3.1上传文件
建议用xftp上传,上传至上面创建的目录,好管理
3.2解压文件
tar -zvxf hadoop文件
3.3改名
mv hadoop文件名 新名
3.4修改hadoop配置文件
进入
cd /wz/softwares/hadoop-3.3.0/etc/hadoop
vim指令没有的话用yum安装
yum install vim -y
修改 hadoop-env.sh
hadoop-env.sh
#文件最后添加export JAVA_HOME=/wz/softwares/jdkexport HDFS_NAMENODE_USER=rootexport HDFS_DATANODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=root
修改core-site.xml
vim core-site.xml
参数根据自身情况修改
以下xml文件配置添加位置都在下图位置:
fs.defaultFS hdfs://192.168.137.155:8020 hadoop.tmp.dir /wz/data/hadoop-3.3.0 hadoop.http.staticuser.user root hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups * fs.trash.interval 1440
配置:hdfs-site.xml
vim hdfs-site.xml
dfs.namenode.secondary.http-address 192.168.137.156:9868
mapred-site.xml
mapreduce.framework.name yarn mapreduce.jobhistory.address 192.168.137.155:10020 mapreduce.jobhistory.webapp.address 192.168.137.155:19888 yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.map.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.reduce.env HADOOP_MAPRED_HOME=${HADOOP_HOME}
yarn-site.xml
yarn.resourcemanager.hostname192.168.137.155 yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false yarn.log-aggregation-enable true yarn.log.server.url 192.168.137.155:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800
workers(集群小弟地址)
192.168.137.155192.168.137.156192.168.137.157
给hadoop添加到环境变量中
vim /etc/profile//放到java环境变量下export HADOOP_HOME=/wz/softwares/hadoop-3.3.0export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin更新配置:source /etc/profile
完成以上配置就搭建好了单机,如果要集群就把相同配置在另外两台机器上在完成一遍!!!
3.5给另外两台配置
1.建议用scp命令拷贝给另外两台
scp -r 文件在本地的路径 用户@用户地址:/目标文件夹例如: scp -r /wz/softwares [email protected]:/wz
2.不要忘记环境变量配置文件
scp -r /etc/profile [email protected]:/etc/profile
3.最后都更新一下配置
source /etc/profile
4.测试
输入java -version测试一下
输入 hadoop 看是否正常
4.启动hadoop
4.1Hadoop集群启动
1.(首次启动)格式化namenode
该命令就首次启动执行,就执行一次!!!!!
hdfs namenode -format
2.脚本一键启动
[root@node1 ~]# start-dfs.sh Starting namenodes on [node1]Last login: Thu Nov 5 10:44:10 CST 2020 on pts/0Starting datanodesLast login: Thu Nov 5 10:45:02 CST 2020 on pts/0Starting secondary namenodes [node2]Last login: Thu Nov 5 10:45:04 CST 2020 on pts/0[root@node1 ~]# start-yarn.sh Starting resourcemanagerLast login: Thu Nov 5 10:45:08 CST 2020 on pts/0Starting nodemanagersLast login: Thu Nov 5 10:45:44 CST 2020 on pts/0
Web UI页面
HDFS集群:192.168.137.155:9870/
YARN集群:192.168.137.155:8088/
HDFS集群启动方式
启动HDFS:start-dfs.sh停止HDFS:stop-dnf.sh
YARN集群启动方式
启动HDFS:start-yarn.sh停止HDFS:stop-yarn.sh
Hadoop集群启动方式(把上面两个合在了一起)
启动Hadoop:start-all.sh停止Hadoop:stop-all.sh
4.2可能错误
错误1:运行hadoop3官方自带mr示例出错。
错误信息Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMasterPlease check whether your etc/hadoop/mapred-site.xml contains the below configuration: yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory} mapreduce.map.env HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory} mapreduce.reduce.env HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}
解决 mapred-site.xml,增加以下配置
yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.map.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.reduce.env HADOOP_MAPRED_HOME=${HADOOP_HOME}