Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤
集群搭建
整体思路:先在一个节点上安装、配置,然后再克隆出多个节点,修改 IP ,免密,主机名等
提前规划:
需要三个节点,主机名分别命名:node1、node2、node3
在下面对 node1 配置时,先假设 node2 和 node3 是存在的
**注意:**整个搭建过程,除了1和2 步,其他操作都使用普通用户权限
1. 修改时区 (可选)
# 编辑 配置文件 profile
vim /etc/profile
添加如下内容:
TZ='Asia/Shanghai'; export TZ
保存退出后,在执行 source ,让修改立即生效
source /etc/profile # 立即起效
2. 修改普通用户权限
sudo是一个在类 Unix 操作系统(如 Linux 和 macOS)中广泛使用的命令行程序,它提供了对系统权限的精细控制。sudo允许经过授权的普通用户以超级用户(root)或其他用户的安全上下文执行命令,而无需知道超级用户的密码。这样做的好处是可以限制用户仅能在需要更高权限时暂时提升权限,同时系统管理员可以在/etc/sudoers配置文件中精确地配置每个用户能够执行哪些命令以及何时需要进行密码验证。当用户在命令前加上
sudo并成功通过密码验证后,系统将以具有相应权限的用户身份执行该命令。这有助于提高系统的安全性,因为不是所有操作都要求用户直接拥有 root 密码,而是按需授权。此外,sudo 还支持日志记录功能,可以追踪谁在何时使用 sudo 执行了哪些操作,这对于审计和安全审查至关重要。
新建用户
#新建用户
useradd zhang
#修改密码
passwd zhang
操作如下:
#-------操作如下:
[root@node3 hadoop-3.2.4]# useradd zhang
[root@node3 hadoop-3.2.4]# passwd zhang
Changing password for user zhang.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@node3 hadoop-3.2.4]# su zhang
修改 /etc/sudoers 文件权限
# 切换到超级管理员
su root
# 修改文件权限,允许root 可以修改文件
chmod u+w,g+w /etc/sudoers
# 编辑配置文件
vim /etc/sudoers
在 /etc/sudoers 文件中,找到 root 所在的位置
在 sudoers 文件中添加如下内容:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL ## 找到这一行
zhang ALL=(ALL) NOPASSWD:ALL
添加完成后,在切换回普通用户
su zhang
下面的所有操作都是在普通用户 zhang 下完成的!!
注意:
没有上面的配置时,是不能使用 sudo 命令的,否则会报错如下:
[sudo] password for zhang: zhang is not in the sudoers file. This incident will be reported.上面问题说明 zhang 没有权限使用sudo ,需要在 /etc/sudoers 文件中配置zhang=(ALL) NOPASSWD:ALL
3. 修改静态IP
注意:
修改前,先使用名 ifconfig 查看默认主动分配的 IP
在修改时,需要用到默认 IP 相同的网段。
# 在普通用户下使用如下命令
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改添加内容如下:
IPADDR=192.168.184.11
DNS1=8.8.8.8
DNS2=114.114.114.114
NETMASK=255.255.255.0
GATEWAY=192.168.184.2
修改后的内容如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 这里修改为静态
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1249af60-5ecf-452b-b0fb-20f154a73147"
DEVICE="ens33"
ONBOOT="yes"
#============添加下面的配置,注意网段和默认网段相同============
IPADDR=192.168.184.13
DNS1=8.8.8.8
DNS2=114.114.114.114
NETMASK=255.255.255.0
GATEWAY=192.168.184.2
**注意:**后面在克隆时,其他节点的 ip 只修改 IPADDR 中的 .11 即可,其他网段保持一致不动
修改完成后重启:
sudo systemctl restart network.service
注意: 有时会遇到重启网卡无效的情况,这时在确认修改没问题的前提下,reboot 重启系统即可
再次查看IP
ifconfigping www.baidu.com ## 测试外网
修改完IP后,可以切换使用 xshell 客户端
4. 修改主机名
命令:set-hostname 主机名
sudo hostnamectl set-hostname node1
5. 配置 主机名和 IP 映射
配置主机名和 IP 的映射
/etc/hosts
sudo vim /etc/hosts
编辑内容如下:
127.0.0.1 localhost localhost.localdomain::1 localhost localhost.localdomain192.168.184.11 node1
192.168.184.12 node2
192.168.184.13 node3
6. 新建/opt/apps
本教程相关的安装软件及安装目录都会放置在 /opt 和 /opt/apps 目录下
# 切换到 /opt 目录下
cd /opt
# 在 /opt 目录下新建 apps 文件夹
sudo mkdir apps
7. 上传 jdk 和hadoop
使用 xftp 上传
上传 JDK 和 hadoop 到 /opt 目录下
对于单个文件上传,也可以直接拖拽文件到 XShell 窗口上传

8. 安装JDK 和 配置
(1) 先解压
注意:
- 当前位置 /opt 下;
- 下面 -C 为大写
# jdk-8u281-linux-x64.tar.gz 为你自己的安装包名
sudo t相关文章:
Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤
集群搭建 整体思路:先在一个节点上安装、配置,然后再克隆出多个节点,修改 IP ,免密,主机名等 提前规划: 需要三个节点,主机名分别命名:node1、node2、node3 在下面对 node1 配置时,先假设 node2 和 node3 是存在的 **注意:**整个搭建过程,除了1和2 步,其他操作都使…...
【Python】python+requests+excel+pytest-实现接口自动化实例
目录 测试需求实现思路完整框架2.1 初始化数据 (test_data.xlsx)2.2 核心脚本 (api_client.py)2.3 测试用例 (test_interfaces.py)2.4 日志 (logging)2.5 pytest配置文件 (pytest.ini)2.6 测试报告 (pytest-html)2.7 入口函数 (run_tests.py)2.8 完整流程注意事项测试需求 简单…...
Django(四)-搭建第一个应用(3)
一、问题详情页 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>展示某个投票的问题和不带结果的选项列表</title> </head> <body><form action"{% url polls:vote questi…...
吴恩达2022机器学习专项课程(一) 4.2 梯度下降实践
问题预览/关键词 本节内容梯度下降更新w的公式梯度下降更新b的公式的含义α的含义为什么要控制梯度下降的幅度?导数项的含义为什么要控制梯度下降的方向?梯度下降何时结束?梯度下降算法收敛的含义正确更新梯度下降的顺序错误更新梯度下降的顺…...
SQL,group by分组后分别计算组内不同值的数量
SQL,group by分组后分别计算组内不同值的数量 如现有一张购物表shopping 先要求小明和小红分别买了多少笔和多少橡皮,形成以下格式 SELECT name,COUNT(*) FROM shopping GROUP BY name;SELECT name AS 姓名,SUM( CASE WHEN cargo 笔 THEN 1 ELSE 0 END)…...
关于python中常用命令(持续更新中)
目录 关于pip 卸载安装pip 更新pip 更换pip镜像源 清除缓存 更新指定包 指定清华镜像下载指定包 关于conda 更换清华镜像源 优先使用清华镜像 清除缓存 关于数据分析、数据挖掘常用 Matplotlib 3.6.0 文档(绘图实例) jupyter字体问题 jup…...
JAVA学习笔记21
1.IDEA的使用 1.ctrl B 快速定位到方法 2.ctrl Y 快速删除行 3.ctrl D 快速复制行 4.ctrl H 查看继承的层级关系 5.快速格式化代码 ctrl shift L 6.alt R 快速允许程序 7.ctrl / 快速添加注释 1.包(软件包) 1.1包的三大作用 1.区分相同名字的类 2.当类很多的…...
如何制作Word模板并用Java导出自定义的内容
1前言 在做项目时会按照指定模板导出word文档,本文讲解分析需求后,制作word模板、修改模板内容,最终通过Java代码实现按照模板自定义内容的导出。 2制作word模板 2.1 新建word文档 新建word文档,根据需求进行编写模板内容,调整行间距和段落格式后将指定替换位置留空。…...
ubuntu 安装配置samba服务器完整教程
ubuntu 安装配置samba服务器完整教程 问题描述解决方法郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Intel arm64 OS:ubuntu16.04 问题描述 在安卓驱动系统开发的过程中,会需要搭建服务器,又需要搭建samba服务器,下面就…...
【APP_TYC】数据采集案例天眼APP查_查壳脱壳反编译_③
是不是生活太艰难 还是活色生香 我们都遍体鳞伤 也慢慢坏了心肠 你得到你想要的吗 换来的是铁石心肠 可曾还有什么人 再让你幻想 🎵 朴树《清白之年》 查壳 工具介绍Frida-dexDump Frida-dexDump简介 Frida-dexDump是基于Frida的一个工具&…...
通过MobaXterm工具可视化服务器桌面
一、MobaXterm工具 MobaXterm是一款功能强大的远程连接工具,可以连接到各种类型的服务器,包括Linux、Windows和MacOS。支持多种协议,包括SSH、RDP、VNC和Telnet MobaXterm可以通过X11转发功能可视化服务器桌面。 二、MobaXterm工具可视化服务…...
ctf题目
目录 1.文件包含的一道题目,没什么难度, 2.一道sql注入的题目,伪静态 3.限制只能本地访问。 1.文件包含的一道题目,没什么难度, 但是一个点就是它这里去包含的那个文件名就是flag,而不是flag.php也不是f…...
git 更改仓库地址
背景: 项目本来在A仓库进行保管,研发已经开发一段时间了,现在切换到了新的仓库B,研发本地如何将仓库切换到B 解决: # 查看远端地址 git remote -v # 查看远端仓库名 git remote # 重新设置远程仓库 git remote s…...
GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。
demo案例 GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。下面我将逐个讲解其入参、出参、属性、方法以及API使用方式。 入参(Input Parameters): GLTFExporter的主要入参是要导出的场景对象和一些导出选项。具体来说: s…...
消息队列经典应用场景
笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。 这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。 1 异步&解耦 笔者曾经负责某电…...
阿里云Salesforce CRM功能差异列表 - Winter‘24
阉割版的阿里云Salesforce由于技术和监管等因素与国际版的Salesforce差距很大! 一、Winter‘ 24版差异概况: 1.1. 主要版本: 阿里云上的 Salesforce 提供两个版本,用于生产用途的 CN 版本(CN Edition)和用…...
WIN10系统下误删除了用户重启无法登录
WIN10系统下误删除了用户重启无法登录 不小心在控制面板的用户组里面删除了当前的用户,在电脑重启后无论怎么输入密码都提示不正确不能登录。 在选择登录的界面同时点击 shift 和重启按钮;在进入的界面选择“疑难问题”;选择进入安全模式&…...
国内ip怎么来回切换:操作指南与注意事项
在数字化时代,互联网已经成为我们日常生活、学习和工作中不可或缺的一部分。然而,随着网络应用的不断深化,用户对于网络环境的稳定性和安全性要求也越来越高。其中,IP地址作为网络中的关键标识,其切换与管理显得尤为重…...
day72Html
常用标签: 分类: 块级标签:独立成行 行级标签:不独立成行,同一行可放多个行级标 注意网页显示时,忽略空白字符,(回车符,空格,tab制表符) 一)块级标签…...
C语言内存函数(超详解)
乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
