Hadoop集群实验

article/2025/8/28 12:36:40

目录

 

1.实验介绍

2.安装前准备

3.实验环境搭建

4.安装Hadoop

4.1下载Hadoop

4.2修改hadoop配置文件

5.启动Hadoop集群

6.Hadoop测试


1.实验介绍

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。

本实验使用四台虚拟主机搭建集群系统,网络拓扑如下

2.安装前准备

所需软件:

  • Vmware Workstation 15 Pro
  • Ubuntu 18.04.4镜像

参考教程:

  • https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
  • https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html
  • https://blog.csdn.net/yangrui1985123/article/details/103381645

注:Ubuntu18与低版本VMware不兼容,如果VMware版本过低,会安装失败,建议直接安装VMware最新版本。虚拟机安装只需不断点击下一步,直至完成。

3.实验环境搭建

  • 搭建网络环境

设置hadoop0网络模式为NAT模式,在此模式下虚拟机可以联网并和主机互通

依次单击【编辑虚拟机设置】→【网络适配器】,选择“NAT模式”

在【编辑】菜单打开【虚拟网络编辑器】,单击【NAT模式】

单击【NAT设置】,查看网关IP

单击【DHCP设置】,查看可用的IP地址范围

打开hadoop0【设置】菜单,修改网络配置:

IPv4 Method: Manual
Addresses:192.168.133.128 255.255.25.0 192.168.133.2
DNS: 192.168.133.2
Routes: 192.168.133.2 255.255.25.0 192.168.133.2

地址必须在DHCP指定的范围,域名、网关和NAT网关地址相同,配置完成后重启网卡

  • 修改hosts文件

在命令行输入:

sudo vim /etc/hosts

添加4台服务器的节点名信息

hadoop0:192.168.133.128
hadoop1:192.168.133.130
hadoop2:192.168.133.129
hadoop3:192.168.133.131

  • 安装所需软件
sudo apt-get install ssh
sudo apt-get install pdsh
  • 安装JDK1.8

下载地址https://www.oracle.com/java/technologies/javase-jdk8-downloads.html

在/usr/lib/目录创建java文件夹

sudo mkdir /usr/lib/java

将下载的jdk复制到刚才创建的java文件夹中,解压文件

tar -zxvf /usr/lib/java/jdk-8u241-linux-x64.tar.gz

配置环境变量, 编辑profile文件:

sudo vim /etc/profile

保存后,使刚才编辑的文件生效

source /etc/profile

测试是否安装成功:

java -version

如下表示jdk环境配置成功:

 

  • 复制虚拟机

基础环境配置完成后将此虚拟机复制三份,打开虚拟机后单击【编辑虚拟机设置】→【选项】,依次修改虚拟机名称为hadoop1,hadoop2,hadoop3

依次配置ip地址分别为

hadoop1:192.168.133.130
hadoop2:192.168.133.129
hadoop3:192.168.133.131
  • 设置ssh免密

在hadoop0上配置主节点到所有机器(包括自己)ssh免密

ssh-keygen
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

4.安装Hadoop

4.1下载Hadoop

下载Hadoop3.2.1二进制包https://hadoop.apache.org/releases.html

将下载的Hadoop压缩包复制到/usr/local文件夹并解压,修改文件夹名称为hadoop

tar -zxvf /local/Hadoop/ hadoop-3.2.1.tar.gz

将hadoop根目录添加到环境变量

sudo vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

保存后,使刚才编辑的文件生效

source /etc/profile

 

4.2修改hadoop配置文件

在hadoop0安装目录下打开etc/hadoop文件夹,可以看到Hadoop配置文件

cd /usr/local/Hadoop/etc/hadoop

  • 配置hadoop_env.sh文件
export JAVA_HOME=/usr/lib/java/jdk1.8.0_241
export HDFS_NAMENODE_USER=baikun
export HDFS_DATANODE_USER=baikun
export HDFS_SECONDARYNAMENODE_USER=baikun
export YARN_RESOURCEMANAGER_USER=baikun
export YARN_NODEMANAGER_USER=baikunexport HADOOP_PID_DIR=/usr/local/hadoop/pids
export HADOOP_LOG_DIR=/usr/local/hadoop/logs

  • 配置core-site.xml

根据自己的情况配置目录,fs.defaultFS为默认文件系统的名称,以主节点+端口命名,配置完成后新建/usr/local/hadoop/tmp文件夹

<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop0:8020</value></property><property><name>hadoop.tmp.fir</name><value>/usr/local/hadoop/tmp</value></property>
</configuration>

  • 配置hdfs_site.xml

dfs.replication表示副本数量,配置完成后新建/usr/local/hadoop/hdfs/name和/usr/local/hadoop/hdfs/data文件夹

<configuration><property><name>dfs.namenode.http-address</name><value>hadoop0:50070</value></property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop1:50090</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/hdfs/name</value></property><property><name>dfs.namenode.data.dir</name><value>file:/usr/local/hadoop/hdfs/data</value></property>
</configuration>

  • 配置workers文件,添加DataNode数据节点
hadoop1
hadoop2
hadoop3

  • 配置yarn-site.xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHadnler</value></property><property><name>yarn.resourcemanager.address</name><value>hadoop0:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>hadoop0:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>hadoop0:8031</value></property><property><name>yarn.resourcemanager.admin.address</name><value>hadoop0:8033</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>hadoop0:8088</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property>
</configuration>

  • 配置mapred_site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>hadoop0:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop0:19888</value></property>
</configuration>

  • ssh依次登陆其它服务器,修改/usr/local文件夹的写权限
ssh hadoop1
sudo chmod 777 /usr/local
exit
ssh hadoop2
sudo chmod 777 /usr/local
exit
ssh hadoop3
sudo chmod 777 /usr/local
exit
  • 远程复制hadoop0的hadoop文件夹到其它服务器
sudo scp -r /usr/local/hadoop baikun@hadoop1:/usr/local/hadoop
sudo scp -r /usr/local/hadoop baikun@hadoop2:/usr/local/hadoop
sudo scp -r /usr/local/hadoop baikun@hadoop3:/usr/local/hadoop
  • 在hadoop0上打开hadoop文件夹写权限
sudo chmod -R 777 /usr/local/hadoop
  • 在hadoop0格式化NameNode,此步骤只需在hadoop初次安装后操作
sudo $HADOOP_HOME/bin/hdfs namenode -format

5.启动Hadoop集群

  • 启动hdfs
sudo $HADOOP_HOME/sbin/start-dfs.sh

  • 启动yarn
sudo $HADOOP_HOME/sbin/start-yarn.sh

  • 启动日志服务 JobHistoryServer
sudo $HADOOP_HOME/bin/mapred --daemon start historyserver

  • 查看hdfs web

在浏览器中输入地址:http://192.168.133.128:50070

  • 查看yarn web

在浏览器中输入地址:http://192.168.133.128:8088

6.Hadoop测试

  • 关闭安全模式

Hadoop启动后默认运行在安全模式,此模式不可以创建文件夹、上传文件、删除文件,所以需要关闭安全模式

$HADOOP_HOME/bin/hdfs dfsadmin -safemode leave
  • 创建测试文件

在Hadoop文件夹下创建测试文件并随机输入一些字符

sudo mkdir /usr/local/hadoop/txt
sudo vim /usr/local/hadoop/txt/test.txt

  • 将测试文件上传到Hadoop

在hadoop上创建/input文件夹

$HADOOP_HOME/bin/hadoop fs -mkdir /input

将测试文件上传到/input文件夹

$HADOOP_HOME/bin/hadoop fs -put /usr/local/hadoop/txt/test.txt /input

  • 查看结果

查看/input文件夹

$HADOOP_HOME/bin/hadoop fs -ls /input

打印文件名、块报告、每个block的位置、DataNode网络拓扑结构

$HADOOP_HOME/bin/hadoop fsck /input/test.txt -files -blocks -locations -racks


http://chatgpt.dhexx.cn/article/RItYaQJX.shtml

相关文章

Hadoop集群部署

Hadoop集群部署 一、环境准备二、在hadoop102中安装jdk三、在 hadoop102 安装 Hadoop安装hadoop查看 Hadoop 目录结构 四、编写集群分发脚本1. scp&#xff08;secure copy&#xff09;安全拷贝2.rsync远程同步工具3.xsync集群分发脚本 五、ssh免密登录1.配置ssh2.免密配置 六、…

Hadoop集群简介

Hadoop集群整体概述&#xff1a; Hadoop集群包括两个集群&#xff1a;HDFS集群、YARN集群 两个集群逻辑上分离(两个集群互相之间没有依赖、互不影响)、通常物理上在一起(某些角色进程往往部署在同一台物理服务器上) 两个集群都是标准的主从架构集群 MapReduce算是集群吗&…

hadoop集群

一、概念 Hadoop是由java语言编写的&#xff0c;在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架&#xff0c;其核心部件是HDFS与MapReduce。HDFS是一个分布式文件系统&#xff0c;类似mogilefs&#xff0c;但又不同于mogilefs&#xff0c;hdfs由存放文件元数…

Hadoop入门详解以及Hadoop集群搭建

一、Hadoop概念 hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。hadoop充分利用了集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统&#xff08;Distributed File System&#xff…

把Redis 设置成服务

设置Redis服务 上面虽然安装启动了Redis&#xff0c;但是一旦关闭cmd窗口&#xff0c;redis就关闭了,为了我们日后开发测试的便利&#xff0c;我们当然要把它设置成windows服务项。 打开cmd命令窗口&#xff0c;切换到Redis目录&#xff0c;输入如下命令&#xff1a; redis-…

配置redis,对外服务

前言 在服务器安装完redis之后&#xff0c;别的机器想要通过IP和端口连接Redis服务器是连接不上的&#xff0c;因此需要配置redis对外服务。 一、打开redis配置文件 vi /etc/redis/redis.conf二、修改bind绑定的地址 三、关闭保护模式 四、重启redis服务 service redis res…

Redis 服务监控

Redis现在在很多公司中应用已经很广泛了&#xff0c;但是如何监控redis&#xff0c;实时的观察redis的性能&#xff0c;下面就关于Redis的常用监控介绍一下。 一、使用redis自带的info命令和monitor命令 现在常见的监控方案基本上都是使用redis自带的info命令和monitor命令获取…

Windows下将Redis设置为服务

如果下载的是免安装的 Redis &#xff0c;解压文件后运行 Redis-server.exe就可开启服务 但是&#xff0c;这个窗口不能关闭&#xff0c;否则服务也会随之关闭&#xff0c;过于麻烦&#xff0c;也不方便操作 所以&#xff0c;我们可以将 redis 设置为一种服务&#xff0c;可利…

【Windows】Redis集群部署

集群是如何进行工作的 Redis采用哈希槽来处理数据与节点之间的映射关系&#xff0c;一个集群共有16384 个哈希槽&#xff0c;每个key通过 CRC16算法计算出一个16bit的值&#xff0c;再对16384取模&#xff0c;得到对应的哈希槽&#xff0c;集群通过维护哈希槽与节点的关系来得…

redis设置服务

设置服务 可以看到如果我们启动redis服务的话&#xff0c;每次都要进入到安装目录&#xff0c;这样是不是很繁琐&#xff0c;所以我们将redis做成一个服务&#xff0c;我们直接启动。 首先将utils/redis_init_script文件复制到/etc/init.d下&#xff0c;同时易名为redis。执行命…

Redis 服务管理

对Redis服务器的管理可以使用redis提供的服务命令&#xff0c;也可以借助一些管理软件&#xff0c;如&#xff1a;phpRedisAdmin 一、Redis服务器命令主要是用于管理redis服务 1.bgrewriteaof 异步执行一个 aof&#xff08;appendonly file&#xff09; 文件重写操作 2.bgsav…

redis服务(2)

配置 gearman 实现数据同步 Gearman是一个支持分布式的任务分发框架。 Gearman Job Server&#xff1a;Gearman核心程序&#xff0c;以守护进程形式运行在后台。 Gearman Client&#xff1a;可以理解为任务的收件员&#xff0c;比如我要在后台执行一个发送邮件的任务&#xff0…

【MySQL集群+Redis配置】

Mysql集群配置 一、主从备份二、主主备份三、多主一从四、一主多从五、Mysql中间件——Amoeba&#xff08;读写分离&#xff09;1)&#xff09;先搭建一个主从关系的服务器2&#xff09; 从服务器上保存授权信息&#xff0c;并开启从服务线程3&#xff09;配置读写分离 六、安装…

Redis部署

Redis部署 Redis入门简介源码编译安装 Redis入门简介 Redis是一个开源的基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 Redis是一个key-value存储系统。 和Memcached缓存类似&#xff0c;Redis支持存储的value类型相对更多&#xff0c;包括…

redis数据库服务群集(四)

目录 前言 一、redis集群介绍 1、redis集群优势及实现方法 2、redis三种集群模式的作用 二、主从复制模式 1、Redis主从复制的概念 2、主从复制原理 3、Redis主从复制的作用 4、主从复制流程 5、Redis主从复制的搭建 6、验证主从效果 7、报错排查 三、Redis 哨兵模…

Windows启动redis服务

1、进入到redis的安装目录下&#xff0c;在地址栏输入cmd或者在命令行界面中进入到安装目录下 2、输入命令&#xff1a;redis-server.exe redis.windows.conf 3、出现如下界面表示启动成功

Redis数据库(常用命令及服务部署)

目录 一、关系数据库和非关系数据库 ⭐关系型数据库●一个结构化的数据库&#xff0c;创建在关系模型基础上 ●一般面向于记录 ●包括Oracle、MySQL、SQL Server、Microsoft Access、DB2等 ⭐非关系型数据库 ●除了主流的关系型数据库外的数据库&#xff0c;都认为是非关…

redis服务的部署

redis服务的部署 一. 什么是redis&#xff1f;二. redis的配置以及主从关系二. redis常用指令&#xff1a;三. redis 的高可用1. 什么是高可用&#xff1f;2.配置Sentinel3. 主观下线和客观下线 四. redis集群1.Redis集群2.搭建集群 七. 结合数据库 一. 什么是redis&#xff1f…

【服务端】linux搭建redis集群

分享一次从头到尾的搭建redis的集群过程。 3主3从 图中所有的ip地址都是你自己电脑的ip。 一、安装 1.安装依赖包 yum install gcc-c 由于我之前已经安装过了&#xff0c;所以不用再安装了&#xff0c;没安装过就等它自动完成 2.下载redis&#xff0c;需要注意的是版本需…

将redis 设置为服务

每次启动 redis 都要去到 Redis 安装目录下寻找 redis-server.exe 文件点击&#xff0c;很是麻烦&#xff0c;所以可以通过这个方法将redis设置为服务 进入redis文件夹&#xff0c;输入redis-server.exe --service-install redis.windows.conf --loglevel verbose 出现如下情况…