当前位置: 首页 > news >正文

「大数据-2.0」安装Hadoop和部署HDFS集群

目录

一、下载Hadoop安装包

二、安装Hadoop

 0. 安装Hadoop前的必要准备

1. 以root用户登录主节点虚拟机

2. 上传Hadoop安装包到主节点

3. 解压缩安装包到/export/server/目录中

4. 构建软链接

三、部署HDFS集群

0. 集群部署规划

1. 进入hadoop安装包内

2 进入etc目录下的hadoop目录

3. 配置workers文件

4. 配置hadoop-env.sh文件

5.配置core-site.xml文件

6.配置hdfs-site.xml文件

7. 准备数据目录

8. 分发Hadoop文件夹

三、配置环境变量 

四、为Hadoop用户授权

五、格式化HDFS文件系统

1. 格式化namenode

2. 一键启动hdfs集群

3. 使用jps检查运行中的进程

4. 查看HDFS WEBUI

六、拍摄快照保存配置好的虚拟机 

七、启动和关闭HDFS集群

1. 一键启动HDFS集群

2. 一键关闭HDFS集群 


一、下载Hadoop安装包

1. 官网下载


2. 百度网盘链接  提取码:2233

二、安装Hadoop

0. 安装Hadoop前的必要准备

        在开始部署前,请确认已经完成前置准备中的服务器创建、固定IP、防火墙关闭、Hadoop用户创建、SSH免密、JDK部署等操作。 如果不确定,请看博主文章:http://t.csdn.cn/YlUi5


1. 以root用户登录主节点虚拟机

        如博主的主节点为node1,所以在node1虚拟机中以root身份登录,进入/export/server/目录下。


2. 上传Hadoop安装包到主节点

        将下载好的压缩包拖拽到远程终端软件 或 在远程终端软件中使用rz命令。


3. 解压缩安装包到/export/server/目录中

1. 进入/export/server/目录:
cd /export/server/2. 解压到当前目录下:
tar -zxvf hadoop-3.3.4.tar.gz

4. 构建软链接

ln -s /export/server/hadoop-3.3.4 hadoop

三、部署HDFS集群

0. 集群部署规划


1. 进入hadoop安装包内

cd hadoop

Hadoop安装包的目录结构:

现在是集群部署的配置阶段,我们着重于etc目录。


2 进入etc目录下的hadoop目录

cd /etc/hadoop

接下来主要要对以下四个文件进行配置:


3. 配置workers文件

        workers文件的作用是记录大数据集群中的从节点服务器。

配置步骤:

1. 使用vim打开workers:
vim workers2. 按i进入插入模式3. 删除原来的lockhoot4. 写入:
node1
node2
node35. 按下Esc退出插入模式,按下Shift+:进入底行模式,按下wq!强制保存并退出。


4. 配置hadoop-env.sh文件

        hadoop-env.sh文件的作用是记录Hadoop在运行时会用到的一些环境变量。

配置步骤:

1. 使用vim打开hadoop-env.sh:
vim hadoop-env.sh2. 按i进入插入模式3. 找个空白的地方(最上面)写入:
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs4. 按下Esc退出插入模式,按下Shift+:进入底行模式,按下wq!强制保存并退出。说明:
JAVA_HOME,指明JDK环境的位置在哪
HADOOP_HOME,指明Hadoop安装位置
HADOOP_CONF_DIR,指明Hadoop配置文件目录位置
HADOOP_LOG_DIR,指明Hadoop运行日志目录位置
通过记录这些环境变量, 来指明上述运行时的重要信息


5.配置core-site.xml文件

        该文件的作用是配置一些自定义设置,我们要在这里配置NameNode(主节点)的启动和缓冲区大小。

配置步骤:

1. 使用vim打开core-site.xml:
vim core-site.xml2. 找到标签<configuration></configuration>3. 按i进入插入模式,在标签中间写入:<property><name>fs.defaultFS</name><value>hdfs://node1:8020</value></property><property><name>io.file.buffer.size</name><value>131072</value></property>4. 按下Esc退出插入模式,按下Shift+:进入底行模式,按下wq!强制保存并退出。说明:
1.key:fs.defaultFS
含义:HDFS文件系统的网络通讯路径
值:hdfs://node1:8020
协议为hdfs://
namenode(主节点)为node1
namenode(主节点)通讯端口为8020
2.key:io.file.buffer.size
含义:io操作文件缓冲区大小
值:131072 bit
3.hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)
表明DataNode(从节点)将和node1的8020端口通讯,node1是NameNode(主节点)所在机器
此配置固定了node1必须启动NameNode(主节点)进程


6.配置hdfs-site.xml文件

        该文件的作用也是配置一些自定义设置,我们要在这里配置:默认创建的文件权限、主节点数据的存储位置、NameNode(主节点)允许哪几个节点的DataNode(从节点)连接(即允许加入集群)、hdfs默认块大小、Namenode(主节点)处理的并发线程数、从DataNode(从节点)的数据存储目录。

配置步骤:

1. 使用vim打开hdfs-site.xml:
vim hdfs-site.xml2. 找到标签<configuration></configuration>3. 按i进入插入模式,在标签中间写入:<property><name>dfs.datanode.data.dir.perm</name><value>700</value></property><property><name>dfs.namenode.name.dir</name><value>/data/nn</value></property><property><name>dfs.namenode.hosts</name><value>node1,node2,node3</value></property><property><name>dfs.blocksize</name><value>268435456</value></property><property><name>dfs.namenode.handler.count</name><value>100</value></property><property><name>dfs.datanode.data.dir</name><value>/data/dn</value></property>4. 按下Esc退出插入模式,按下Shift+:进入底行模式,按下wq!强制保存并退出。说明:
1.key:dfs.datanode.data.dir.perm
含义:hdfs文件系统,默认创建的文件权限设置
值:700,即:rwx------
2.key:dfs.namenode.name.dir
含义:NameNode(主节点)元数据的存储位置
值:/data/nn,在node1节点的/data/nn目录下
3.key:dfs.namenode.hosts
含义:NameNode(主节点)允许哪几个DataNode(从节点)连接(即允许加入集群)
值:node1、node2、node3,这三台服务器被授权
4.key:dfs.blocksize
含义:hdfs默认块大小
值:268435456(256MB)
5.key:dfs.namenode.handler.count
含义:Namenode(主节点)处理的并发线程数
值:100,以100个并行度处理文件系统的管理任务
6.key:dfs.datanode.data.dir
含义:DataNode(从节点)的数据存储目录
值:/data/dn,即数据存放在node1、node2、node3,三台机器的/data/dn内


7. 准备数据目录

        在之前的配置中,只是指定了主节点和从节点的数据放在哪个文件,但我们还没有真正的创建这些文件,现在我们就是要创建这些文件。

        在上一步中的配置中,我们把 namenode数据存放在node1虚拟机的/data/nn目录下;datanode数据存放在node1、node2、node3虚拟机的/data/dn目录下。

        所以我们要在node1虚拟机创建/data/nn目录和/data/dn目录;在node2、node3虚拟机创建/data/dn目录(不要少了data前面的/)。

步骤:

1.在node1虚拟机:
mkdir -p /data/nn
mkdir -p /data/dn2.在node2和node3虚拟机:
mkdir -p /data/dn

8. 分发Hadoop文件夹

        目前,已经基本完成Hadoop的配置操作,可以从node1将hadoop安装文件夹远程复制到node2、node3(通过scp命令)。

步骤:

1. 在node1虚拟机执行如下命令
cd /export/server
scp -r hadoop-3.3.4 node2:`pwd`/
scp -r hadoop-3.3.4 node3:`pwd`/2. 在node2执行如下命令,为hadoop配置软链接
ln -s /export/server/hadoop-3.3.4 /export/server/hadoop3. 在node3执行如下命令,为hadoop配置软链接
ln -s /export/server/hadoop-3.3.4 /export/server/hadoop

三、配置环境变量 

        为了方便我们操作Hadoop,可以将Hadoop的一些脚本、程序配置到PATH中(通过配置profile文件),方便后续使用。

1. 修改/etc目录下的profile文件:

1. 使用vim打开/etc下的profile文件:
vim /etc/profile2. 按i进入插入模式,在末尾追加写入:
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin3. 按下Esc退出插入模式,按下Shift+:进入底行模式,按下wq!强制保存并退出。

2. 启动上面的配置

source /etc/profile

3. 在node2和node3虚拟机中重复上面的步骤。

四、为Hadoop用户授权

        到了这里,hadoop部署的准备工作基本完成,为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务。所以,现在需要对文件权限进行授权。


1. 以root身份,在node1、node2、node3三台虚拟机上均执行如下命令:

# 以root身份,在三台服务器上均执行
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export

2. 检查

五、格式化HDFS文件系统

        前期准备全部完成,现在对整个文件系统执行初始化,以下命令在主节点虚拟机node1中执行即可。


1. 格式化namenode

1. 在主节点虚拟机node1中切换到hadoop用户
su - hadoop
2. 格式化namenode
hadoop namenode -format

这样表示格式化成功了


2. 一键启动hdfs集群

1. 回到根目录
cd
2. 一键启动hdfs集群
start-dfs.sh

3. 使用jps检查运行中的进程

在终端中输入jps,如果显示内容像图片中的一样基本上表示整个配置都成功了:

如果jps中没有Datanode,证明clusterID有问题:

原因是多次格式化NameNode会重新生成新的clusterID(集群ID)

我们要做的是在主节点node1下找到正确的clusterID,然后更改所有从节点的clusterID。

步骤:

1. 进入node1虚拟机下的/data/nn/current/目录
cd /data/nn/current/2. 打开VERSION文件
vim VERSION3. 复制clusterID4. 退出,然后进入/data/dn/current/目录
cd /data/dn/current/5. 打开VERSION文件, 然后用刚才复制的内容替换这里的clusterID6. 进入node2虚拟机下的/data/dn/current/目录
cd /data/dn/current/7. 打开VERSION文件, 然后用刚才复制的内容替换这里的clusterID8. 进入node3虚拟机下的/data/dn/current/目录
cd /data/dn/current/9. 打开VERSION文件, 然后用刚才复制的内容替换这里的clusterID

4. 查看HDFS WEBUI

        启动Hadoop后,可以在浏览器打开: http://node1:9870,即可查看到hdfs文件系统的管理网页。

能够打开这个网址,且Live Nodes 为3,就表示我们的Hadoop部署完全成功了!

六、拍摄快照保存配置好的虚拟机 

0. 为什么需要拍摄快照?

        拍快照相当于给当前虚拟机的配置做一个备份,将来有问题,直接按照快照还原虚拟机即可,不需要删除再重新配置。


1. 在VMware将所有虚拟机关机


2. 拍摄快照


3. 如何使用快照恢复?

七、启动和关闭HDFS集群

Hadoop HDFS组件内置了HDFS集群的一键启停脚本。

1. 一键启动HDFS集群

$HADOOP_HOME/sbin/start-dfs.sh

2. 一键关闭HDFS集群 

$HADOOP_HOME/sbin/stop-dfs.sh

关闭虚拟机前一定要先关闭HDFS集群,然后用 init 0 断开Xshell等远程连接!


------------------------END-------------------------

才疏学浅,谬误难免,欢迎各位批评指正。

相关文章:

「大数据-2.0」安装Hadoop和部署HDFS集群

目录 一、下载Hadoop安装包 二、安装Hadoop 0. 安装Hadoop前的必要准备 1. 以root用户登录主节点虚拟机 2. 上传Hadoop安装包到主节点 3. 解压缩安装包到/export/server/目录中 4. 构建软链接 三、部署HDFS集群 0. 集群部署规划 1. 进入hadoop安装包内 2 进入etc目录下的hadoop…...

文档在线预览word、pdf、excel文件转html以实现文档在线预览

目录 一、前言 1、aspose2 、poi pdfbox3 spire二、将文件转换成html字符串 1、将word文件转成html字符串 1.1 使用aspose1.2 使用poi1.3 使用spire2、将pdf文件转成html字符串 2.1 使用aspose2.2 使用 poi pbfbox2.3 使用spire3、将excel文件转成html字符串 3.1 使用aspose…...

FFmpeg视音频分离器----向雷神学习

雷神博客地址&#xff1a;https://blog.csdn.net/leixiaohua1020/article/details/39767055 本程序可以将封装格式中的视频码流数据和音频码流数据分离出来。 在该例子中&#xff0c; 将FLV的文件分离得到H.264视频码流文件和MP3 音频码流文件。 注意&#xff1a; 这个是简化版…...

CentOS 8开启bbr

CentOS 8 默认内核版本为 4.18.x&#xff0c;内核版本高于4.9 就可以直接开启 BBR&#xff0c;所以CentOS 8 启用BBR非常简单不需要再去升级内核。 开启bbr echo "net.core.default_qdiscfq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_contro…...

Redis的安装与基本使用

文章目录 Linux 环境下安装Redis下载Redis 安装包解压安装包安装Redis进入redis安装包下编译并且安装到指定目录下 启动redis配置远程访问找到Redis.config文件 Windows 环境下安装Redis说明官方提供方式安装或启用WSL2在WSL&#xff08;Ubuntu&#xff09;上安装Redis启动Redi…...

2014 款金旅牌小型客车 发动机怠速抖动、加速无力

故障现象 一辆2014款金旅牌小型客车&#xff0c;搭载JM491Q-ME发动机&#xff0c;累计行驶里程约为20万km。车主反映&#xff0c;最近该车发动机怠速抖动、加速无力&#xff0c;且经常缺少冷却液。 故障诊断 根据车主描述的故障现象&#xff0c;初步判断该车气缸垫损坏&#…...

R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化...

全文链接:https://tecdat.cn/?p33760 众所周知&#xff0c;心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用&#xff0c;尤其在医疗行业中越来越受欢迎。机器学习可…...

网站被劫持了怎么办

网站被劫持了怎么办 建议新建一个index.html文件&#xff0c;文件中只写几个数字&#xff0c;上传到网站根目录&#xff0c;然后访问网站域名&#xff0c;看看是不是正常&#xff0c;从而可以确定是程序问题还是域名被劫持的问题。 如果是域名被劫持&#xff0c;你可以登录你的…...

【面试题精讲】Java包装类缓存机制

有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 面试题手册[2] 系列文章地址[3] 1. 什么是 Java 包装类缓存机制? Java 中的包装类&#xff08;Wrapper Class&#xff09;是为了将…...

网络相关知识

0 socket SOCK_DGRAM #无连接UDP SOCK_STREAM #面向连接TCP 1 UDP 1.1 检测UDP yum install -y nc 使用netcat测试连通性 服务器端启动 UDP 30003 端口 ​ nc -l -u 30003 客户端连接服务器的30003端口&#xff08;假设服务的IP地址是119.23.67.12&#xff09; ​nc -u 119…...

商品冷启动推荐综述

About Me: LuckBoyPhd/Resume (github.com) (1)一种基于三部图网络的协同过滤算法 推荐系统是电子商务领域最重要的技术之一,而协同过滤算法又是推荐系统用得最广泛的.提出了一种基于加权三部图网络的协同过滤算法,用户、产品及标签都被考虑到算法中,并且研究了标签结点的度对…...

GEO生信数据挖掘(二)下载基因芯片平台文件及注释

检索到目标数据集后&#xff0c;开始数据挖掘&#xff0c;本文以阿尔兹海默症数据集GSE1297为例 目录 下载平台文件 1.AnnotGPL参数改为TRUE,联网下载芯片平台的soft文件。&#xff08;国内网速奇慢经常中断&#xff09; 2.手工去GEO官网下载 转换芯片探针ID为gene name 拓…...

淘宝电商必备的大数据应用

在日常生活中&#xff0c;大家总能听到“大数据”“人工智能”的说法。现在的大数据技术应用&#xff0c;从大到巨大科学研究、社会信息审查、搜索引擎&#xff0c;小到社交联结、餐厅推荐等等&#xff0c;已经渗透到我们生活中的方方面面。到底大数据在电商行业可以怎么用&…...

Docker版部署RocketMQ开启ACL验证

一、拉取镜像 docker pull apache/rocketmq:latest 二、准备挂载目录 mkdir /usr/local/rocketmq/data mkdir /usr/local/rocketmq/conf 三、运行 docker run \ -d \ -p 9876:9876 \ -v /usr/local/rocketmq/data/logs:/home/rocketmq/logs \ -v /usr/local/rocketmq/data…...

【RabbitMQ实战】04 RabbitMQ的基本概念:Exchange,Queue,Channel等

一、简介 Message Queue的需求由来已久&#xff0c;80年代最早在金融交易中&#xff0c;高盛等公司采用Teknekron公司的产品&#xff0c;当时的Message queuing软件叫做&#xff1a;the information bus&#xff08;TIB&#xff09;。 TIB被电信和通讯公司采用&#xff0c;路透…...

APACHE NIFI学习之—RouteOnAttribute

RouteOnAttribute 描述: 使用属性表达式语言根据其属性路由数据流,每个表达式必须返回Boolean类型的值(true或false)。 标签: attributes, routing, Attribute Expression Language, regexp, regex, Regular Expression, Expression Language, 属性, 路由, 表达式, 正则…...

防火墙网络接口下面多个外网地址,只有第一地址可以访问通其他不通

环境&#xff1a; 主备防火墙 8.0.75 AF-2000-FH2130B-SC 问题描述&#xff1a; 两台防火墙双击热备&#xff0c;高可用防火墙虚拟网络接口Eth4下面有多个外网地址&#xff0c;只有第一地址可以访问通其他不通 解决方案&#xff1a; 1.检查防火墙路由设置&#xff08;未解决…...

【HTTP】URL结构、HTTP请求和响应的报文格式、HTTP请求的方法、常见的状态码、GET和POST有什么区别、Cookie、Session等重点知识汇总

目录 URL格式 HTTP请求和响应报文的字段&#xff1f; HTTP请求方法 常见的状态码 GET 和 POST 的区别 Cookie 和 Session URL格式 &#xff1f;&#xff1a;是用来分割URL的主体部分&#xff08;通常是路径&#xff09;和查询字符串&#xff08;query string&#xff09;…...

苹果mac电脑显示内存不足如何解决?

忍痛删应用、删文档、删照片视频等等一系列操作都是众多Mac用户清理内存空间的方法之一&#xff0c;悲催的是一顿“猛如虎的操作”下&#xff0c;释放出来的内存空间却少的可怜&#xff0c;原因很简单&#xff0c;这样释放内存空间是无效的。如何合理有效的清理内存空间&#x…...

如何在Windows 10上安装Go并搭建本地编程环境

引言 Go是在谷歌的挫折中诞生的编程语言。开发人员不得不不断地选择一种执行效率高但需要长时间编译的语言&#xff0c;或者选择一种易于编程但在生产环境中运行效率低的语言。Go被设计为同时提供这三种功能:快速编译、易于编程和在生产中高效执行。 虽然Go是一种通用的编程语…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案

一、延迟敏感行业面临的DDoS攻击新挑战 2025年&#xff0c;金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征&#xff1a; AI驱动的自适应攻击&#xff1a;攻击流量模拟真实用户行为&#xff0c;差异率低至0.5%&#xff0c;传统规则引…...

如何做好一份技术文档?从规划到实践的完整指南

如何做好一份技术文档&#xff1f;从规划到实践的完整指南 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 总有一行代码&#xff0c;能点亮万千星辰。 &#x1f50d; 在技术的宇宙中&#xff0c;我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...