「大数据-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-------------------------

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144232.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

深信服云桌面用户忘记密码后的处理

深信服云桌面用户忘记了密码&#xff0c;分两种情况&#xff0c;一个是忘记了登录深信服云桌面的密码&#xff0c;另外一个是忘记了进入操作系统的密码。 一、忘记了登录深信服云桌面的密码 登录虚拟桌面接入管理系统界面&#xff0c;在用户管理中选择用户后&#xff0c;点击后…

基于QGIS进行二次开发的正确姿势

前言 最近一直在琢磨QGIS的二次开发&#xff0c;也踩过不少坑&#xff0c;好在最后的结果是好的。这里介绍一下我最喜欢的二次开发姿势。 电脑环境 VS2017 Community、QGIS3.18.3、QT5.11.2、Windows SDK版本 10.0.17763.0、VS2017的QT插件版本 2.8.1 前提条件 已经下载安…

网络层五大核心知识点

引言 在前面几期文章中&#xff0c;无论是UDP还是TCP&#xff0c;其实我们都在介绍 TCP/IP 模型的“传输层”&#xff0c;我们知道&#xff0c;数据在传输层完成相应的封装后就会来到网络层进行下一步的数据转发&#xff0c;那么数据在网络层又接受了哪些神秘的力量&#xff1…

IDEA 2019 Springboot 3.1.3 运行异常

项目场景&#xff1a; 在IDEA 2019 中集成Springboot 3.1.3 框架&#xff0c;运行异常。 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSch…

代码随想录 Day6 哈希 LeetcodeT454 四数之和II T383赎金信 T15 三数之和 T18 四数之和

本文代码思路来源于: 代码随想录 前言 希望大家在刷这部分题的时候先熟悉熟悉哈希结构的基本常用api,比较方便理解. LeetCode T454 四数之和 题目链接:454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 题目思路 暴力解法仍然是遍历四个数组解决此题, 哈希的思路有…

基于SpringBoot+Bootstrap的旅游管理系统的设计与实现

目录 前言 一、技术栈 二、系统功能介绍 登录模块的实现 景点信息管理界面 订票信息管理界面 用户评价管理界面 用户管理界面 景点资讯界面 系统主界面 用户注册界面 景点信息详情界面 订票信息界面 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言…

【Go】rsrc不是内部或外部命令、无法将“rsrc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方法

前言 想尝试用go创建一个桌面应用程序&#xff0c;然后查了下决定用 walk。 我们要先下载walk&#xff0c;这里 官方链接 按照官方文档&#xff0c;我们先用go get命令下载。 go get github.com/lxn/walk然后分别创建好了 main.go、main.manifest 文件&#xff0c;代码如下…

vue event bus 事件总线

vue event bus 事件总线 创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day04\准备代码\08-事件总线-扩展 vue --version vue crea…

uniapp 微信小程序之隐私协议开发

uniapp 微信小程序之隐私协议开发 官网通知&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/PrivacyAuthorize.html 1、配置 __usePrivacyCheck__: true&#xff1b;位置 manifest.json : "mp-weixin":{"__usePrivacyCh…

Linux发行版X华为鲲鹏openEuler

前言 作为硬件和软件之间的桥梁&#xff0c;我接触的最多的就是Windows和Centos&#xff0c;还记得最初的鸟哥的Linux私房菜&#xff0c;而Centos即将停止维护更新&#xff08;Centos7维护到2024&#xff09;&#xff0c;对于个人学习来说没有任何影响&#xff0c;但是对于企业…

SEO方案尝试--Nuxtjs项目基础配置

Nuxtjs 最新版 Nuxt3 项目配置 安装nuxtjs 最新版 Nuxt3 参考官网安装安装插件安装ElementPlus页面怎么跳转&#xff0c;路由怎么实现404页面该怎么配置配置 网页的title 安装nuxtjs 最新版 Nuxt3 参考官网安装 安装插件 安装ElementPlus 安装 Element Plus 和图标库 # 首先&…

高效实时!麒麟信安操作系统(嵌入式版)V3来了,为工业领域数智化转型夯实安全底座

随着万物互联和工业领域数智化时代的到来&#xff0c;嵌入式应用日益广泛&#xff0c;嵌入式系统技术已成为促进智能制造快速发展的关键要素之一。麒麟信安作为国产操作系统领军企业&#xff0c;始终走在行业前列&#xff0c;本次发布的麒麟信安操作系统&#xff08;嵌入式版&a…

【小笔记】fasttext文本分类问题分析

【学而不思则罔&#xff0c;思维不学则怠】 2023.9.28 关于fasttext的原理及实战文章很多&#xff0c;我也尝试在自己的任务中进行使用&#xff0c;是一个典型的短文本分类任务&#xff0c;对知识图谱抽取的实体进行校验&#xff0c;判断实体类别是否正确&#xff0c;我构建了…

配置OSPFv3基本功能 华为笔记

1.1 实验介绍 1.1.1 关于本实验 OSPF协议是为IP协议提供路由功能的路由协议。OSPFv2&#xff08;OSPF版本2&#xff09;是支持IPv4的路由协议&#xff0c;为了让OSPF协议支持IPv6&#xff0c;技术人员开发了OSPFv3&#xff08;OSPF版本3&#xff09;。 无论是OSPFv2还是OSPFv…

AI项目十一:Swin Transformer训练

若该文为原创文章&#xff0c;转载请注明原文出处。 续上一篇&#xff0c;训练自己的数据集&#xff0c;并测试。 一、安装标注软件labelme # 安装labelme pip install labelme # 启动 labelme 这里数据集准本&#xff0c;标注图片数据过程自己探索。 最后文件结构如下&…

sentinel-dashboard-1.8.0.jar开机自启动脚本

启动阿里巴巴的流控组件控制面板需要运行一个jar包&#xff0c;通常需要运行如下命令&#xff1a; java -server -Xms4G -Xmx4G -Dserver.port8080 -Dcsp.sentinel.dashboard.server127.0.0.1:8080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.0.jar &…

HTML - input type=file 允许用户选择多个文件

效果 示例 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><!-- When the multiple Boolean attribute is specified, the file input allows the user to select more than o…

再生之术:遗忘 Root 密码的 CentOS8 Stream 解决方案

文章目录 大魔头 RootGRUB 引导界面BootLoaderGRUB主要功能选择启动的操作系统编辑内核启动参数 进入GRUB 引导界面编辑内核启动参数单用户模式 进入内核编辑界面rd.break进入单用户模式 大魔头 Root 哈哈&#xff0c;你好&#xff01;今天&#xff0c;让我们来聊聊 Linux 系统…

Linux 端口

查看端口占用 1、使用nmap命令查看端口的占用情况 安装nmap&#xff1a;yum -y install nmap 语法&#xff1a;nmap 被查看的IP地址 可以看到&#xff0c;本机&#xff08;127.0.0.1&#xff09;上有7个端口现在被程序占用了。 2、使用netstat命令查看指定端口的占用情况 语…

小程序如何设置余额充值

在小程序中设置余额充值是一种非常有效的方式&#xff0c;可以帮助商家吸引更多的会员并提高用户的消费频率。下面将介绍如何在小程序中设置余额充值并使用。 第一步&#xff1a;创建充值方案 在小程序管理员后台->营销管理->余额充值页面&#xff0c;添加充值方案。可…