Hadoop搭建集群

前言

Hadoop集群部署是为了实现分布式存储和计算,提高大数据处理的效率和性能。1.确定集群规模和硬件资源,选择合适的操作系统和Hadoop版本,进行网络配置,确保集群内各节点之间可以互相通信。2.设置各节点的环境变量,安装和配置Java环境以及其他必要的软件和工具。3.配置Hadoop的核心组件(如HDFS和YARN)和各节点角色(如NameNode、DataNode、ResourceManager、NodeManager等),完成集群的部署。

本篇博客基本完全按照尚硅谷的b站课程搭建的hadoop集群,中间出现的部分问题也都解决,如果觉得观看视频太慢可以看看如下内容,先熟悉搭建流程对后续学习也会更有帮助,若遇到其他问题欢迎留言讨论。

一、环境配置

把hadoop和jdk压缩包上传到/opt/software
在这里插入图片描述
将这两个文件解压到/opt/module

tar -zxvf jdk-8u333-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

在这里插入图片描述

1.配置JDK

在/etc/profile.d下新建my_env.sh文件,用来配置环境

vim /etc/profile.d/my_env.sh

在里面配置JAVA_HOME

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述

保存好后刷新一下环境的修改,便可以查看到JDK环境已经配置好了

source /etc/profile
java -version

在这里插入图片描述

2.配置Hadoop环境

配置hadoop环境和java的一样
还是编辑/etc/profile.d/my_env.sh

vim /etc/profile.d/my_env.sh

在里面加入hadoop环境,如下

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

在这里插入图片描述
保存好后source一下

source /etc/profile

输入hadoop回车,便可查看相关信息
在这里插入图片描述

二、Hadoop本地运行

进入到hadoop-3.1.3目录下

cd /opt/module/hadoop-3.1.3/

创建一个文件夹wcinput,并进入

mkdir wcinput

在wcinput下新建word.txt文件

vim wcinput/word.txt

在里面随便写几个单词,后面用hadoop可以统计各单词数

hello world
hello world
hello hi
hi world
hi world

保存好后就可以开始执行hadoop程序了

# 启动指令 启动java的jar包程序 分词统计 输入文件夹 输出文件夹
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ ./wcoutput

解释:运行Hadoop中的WordCount示例程序的命令。它使用hadoop-mapreduce-examples-3.1.3.jar作为程序的jar包,并且指定输入文件夹为wcinput/,输出文件夹为wcoutput。WordCount是一个常用的示例程序,它统计输入文件中每个单词出现的次数,并将结果输出到指定的输出文件夹中

在这里插入图片描述
运行结束后会发现目录下多出一个文件
在这里插入图片描述
wcoutput中有两个文件,其中part-r-00000中便是统计次数结果

ll wcoutput/
cat wcoutput/part-r-00000

在这里插入图片描述

三、Hadoop集群部署

1.准备三台服务器

主机名 IP地址 节点类型
hadoop101 192.168.10.101 master
hadoop102 192.168.10.102 master
hadoop103 192.168.10.103 master

2.节点规划

hadoop101 hadoop102 hadoop103
HDFS NameNode
DataNode
DataNode SecondaryNameNode
DataNode
YARN NodeManager ResourceManager
NodeManager
NodeManager

3.环境配置

前面单机部署已经在hadoop101配置了Java和Hadoop环境,接下来将其对应文件拷贝到hadoop102、hadoop103即可
先进入/opt/module/

cd /opt/module/

再用scp将hadoop101中的jdk、hadoop拷贝到hadoop102、hadoop103

scp -r
### 使用 Docker 搭建 Hadoop 集群 #### 准备工作 为了使用 Docker 构建 Hadoop 集群,需先安装并配置好 Docker 环境。确保本地已成功部署 Docker 并能够正常运行容器。 #### 创建自定义网络 构建 Hadoop 集群前,建议创建专用的 Docker 网络来管理节点间的通信。这有助于避免 IP 地址冲突,并简化集群内部的服务发现过程。具体操作如下: ```bash docker network create \ --driver bridge \ --subnet=172.18.1.0/24 \ --ip-range=172.18.1.0/24 \ hadoop_network ``` 上述命令会建立名为 `hadoop_network` 的桥接模式网络,指定子网为 `172.18.1.0/24` 和可用IP地址范围为 `172.18.1.0/24`[^2]。 #### 下载镜像 接下来拉取预先准备好的包含 Hadoop 安装包的基础镜像。这里推荐使用经过验证稳定版本的官方或第三方提供的镜像文件: ```bash docker pull kunghuang/hadoop-docker:v1 ``` 此命令将下载由 `kunghuang` 提供的带有特定标签 (`v1`) 的 Hadoop-Docker 映像。 #### 启动 Master 节点 启动主节点 (NameNode),命名为 `Master` 或其他易于识别的名字,并将其加入到之前创建的专属网络中: ```bash docker run -d --name Master --network=hadoop_network -p 50070:50070 kunghuang/hadoop-docker:v1 /etc/bootstrap.sh -bash ``` 这条指令会在后台以守护进程方式启动一个新容器作为 NameNode 实例,映射端口以便外部访问 Web UI 页面查看状态信息。 #### 添加 DataNodes 同样地,可以按照相同的方法增加多个数据节点(DataNode),只需更改名称即可区分不同角色成员。以下是添加两个 Slave 数据节点的例子: 对于第一个从属节点: ```bash docker run -d --name Slave1 --hostname=Slave1 --network=hadoop_network kunghuang/hadoop-docker:v1 /etc/bootstrap.sh -bash ``` 第二个从属节点则执行相似的操作,只是更换了主机名参数值: ```bash docker run -d --name Slave2 --hostname=Slave2 --network=hadoop_network kunghuang/hadoop-docker:v1 /etc/bootstrap.sh -bash ``` 通过这种方式可轻松扩展至更多数量的数据存储单元参与进来形成分布式计算环境[^3]。 #### 初始化与格式化 Namenode 一旦所有必要的组件都处于活动状态之后,则需要初始化命名空间以及格式化 namenode 文件系统结构。可以通过 SSH 登录 master 进入交互式的 bash shell 来完成这项任务: ```bash docker exec -format exit ``` 最后一步退出当前 session 返回宿主机终端界面。 #### 开始服务 现在所有的准备工作都已经就绪,只需要简单几步就可以正式启动整个 Hadoop 生态系统的各个组成部分了。再次连接回 master node 执行启动脚本: ```bash docker exec -it Master start-all.sh ``` 此时应该可以看到日志输出显示各模块依次被激活上线,标志着一个多机协作型的大数据分析平台已经搭建完毕等待进一步的应用开发测试等工作开展。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值