Hadoop集群搭建

本文详细指导了如何通过VMware克隆配置3台Linux虚拟机,包括设置IP、免密登录、安装并配置Java环境,以及Hadoop的下载、解压、配置文件修改,涉及核心步骤如HDFS、YARN和Hadoop配置。适合Hadoop初学者搭建单机环境和集群环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/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 root@192.168.137.155:/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 -version
java

指令有效则配置完成!

2.2yum安装jdk

3.安装hadoop

3.1上传文件

建议用xftp上传,上传至上面创建的目录,好管理

3.2解压文件

tar -zvxf hadoop文件

3.3改名

mv hadoop文件名 新名

3.4修改hadoop配置文件

hadoop和hive资源地址:https://download.youkuaiyun.com/download/qq1270821038/85116810
进入

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/jdk

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root 

修改core-site.xml

vim core-site.xml

参数根据自身情况修改

以下xml文件配置添加位置都在下图位置:

在这里插入图片描述
如果设置了虚拟机实例名 建议所有地址改为实例名

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.137.155:8020</value>
</property>

<!-- 设置Hadoop本地保存数据路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/wz/data/hadoop-3.3.0</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

<!-- 文件系统垃圾桶保存时间 -->
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

配置:hdfs-site.xml

vim hdfs-site.xml
<!-- 设置SNN进程运行机器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.137.156:9868</value>
</property>

mapred-site.xml

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序历史服务地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>192.168.137.155:10020</value>
</property>
 
<!-- MR程序历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>192.168.137.155:19888</value>
</property>

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

yarn-site.xml(如果设置了虚拟机实例名 建议所有地址改为实例名)

<!-- 设置YARN集群主角色运行机器位置 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>192.168.137.155</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 是否将对容器实施物理内存限制 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 开启日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>192.168.137.155:19888/jobhistory/logs</value>
</property>

<!-- 历史日志保存的时间 7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

workers(集群小弟地址)

192.168.137.155
192.168.137.156
192.168.137.157

给hadoop添加到环境变量中

vim /etc/profile
//放到java环境变量下
export HADOOP_HOME=/wz/softwares/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

更新配置:source /etc/profile

完成以上配置就搭建好了单机,如果要集群就把相同配置在另外两台机器上在完成一遍!!!

3.5给另外两台配置

1.建议用scp命令拷贝给另外两台

 scp -r 文件在本地的路径  用户@用户地址:/目标文件夹
例如: scp -r /wz/softwares root@192.168.137.156:/wz

2.不要忘记环境变量配置文件

 scp -r /etc/profile root@192.168.137.156:/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/0
Starting datanodes
Last login: Thu Nov  5 10:45:02 CST 2020 on pts/0
Starting secondary namenodes [node2]
Last login: Thu Nov  5 10:45:04 CST 2020 on pts/0

[root@node1 ~]# start-yarn.sh 
Starting resourcemanager
Last login: Thu Nov  5 10:45:08 CST 2020 on pts/0
Starting nodemanagers
Last 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.MRAppMaster
​Please check whether your etc/hadoop/mapred-site.xml contains the below configuration:




<property>  <name>yarn.app.mapreduce.am.env</name>  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value></property><property>  <name>mapreduce.map.env</name>  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value></property><property>  <name>mapreduce.reduce.env</name>  <value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value></property>

解决 mapred-site.xml,增加以下配置

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

4.3错误三

如果启动hadoop实例时报错,拒绝连接
在这里插入图片描述1.首先可能hadoop是版本问题

apache版和CDH版,两个版本的hdfs端口冲突,apache版的是9000,cdh版的是8020,修改cdh版的hdfs端口为9000即可!

这个根据自身情况修改

vi /etc/hadoop/conf/core-site.xml

如果是apache
修改core-site.xml文件端口设置为9000
adh设置为8020
<property>
    <name>fs.defaultFS</name>p
 <value>hdfs://192.168.137.155:9000</value>
</property>

在这里插入图片描述2.是因为yarn配置有问题

给你的服务器实例改名 ,把里面内容删除,起一个名字(这个名字下面会用到)

vim /etc/hostname

在这里插入图片描述

vim yarn-site.xml
如果你原来配置vaule是路径改为 节点名字
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>node1</value>
</property>

补充:

vim /etc/hosts

在这里插入图片描述
把你集群节点名字 地址也加上!

重启hudoop服务,重新允许测试实例

stop-all.sh
start-all.sh

如果还有问题(确保是NAT)模式搭的集群,进入物理机(windowsz主机)网络适配器,ipv4 选择共享–>设置–>添加hudoop需要的端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值