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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go中方法的Receiver (值类型指针类型)

在Go语言中,方法的接收者(Receiver)定义了该方法是与哪种类型的变量关联。方法的接收者可以是值类型也可以是指针类型,这决定了调用方法时是如何传递接收者的。 值类型与指针类型接收者 值类型接收者 当方法的接收者是值类型时&a…

自然语言处理(NLP)基础:文本预处理与词嵌入

目录 1.引言 2.文本预处理步骤 3.文本预处理工具 4.词嵌入模型介绍与应用 4.1.Word2Vec 4.2.GloVe 4.3.应用示例 5.总结 1.引言 自然语言处理(Natural Language Processing, NLP)是计算机科学与人工智能领域的重要分支,旨在使计算机理…

ChatGPT 商业金矿(下)

原文:ChatGPT Business Goldmines 译者:飞龙 协议:CC BY-NC-SA 4.0 第十七章:ChatGPT 商业金矿#15:在线课程创建业务 随着人们寻求便捷灵活的学习新技能、推进职业或探索新爱好的方式,在线课程变得越来越受…

基于Redis实现延时任务

两种方案: Redis 过期事件监听Redisson 内置的延时队列 Redis 过期事件监听这种方案存在很多问题,建议使用 Redisson 内置的 DelayedQueue 方案。 Redis 过期事件监听实现延时任务原理 Redis 2.0 引入了发布订阅 (pub/sub) 功能。 在 pub/sub 模式下…

Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models

Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models 相关链接:arxiv 关键字:Vision Language Models、Multi-modality、High-Resolution Visual Tokens、High-Quality Data、VLM-guided Generation 摘要 在这项工作中&#x…

unity学习(76)--窗口化和后台运行

1.通过如下方式将编译的游戏设置为窗口模式。 成功: 2.现在只有鼠标点击的窗体游戏运动,其他窗体游戏都会卡住。 2.1build setting中 2.2unity内部Project Settings 也被同步修改了

火车头通过关键词采集文章的原理

随着互联网信息的爆炸式增长,网站管理员和内容创作者需要不断更新和发布新的文章,以吸引更多的用户和提升网站的排名。而火车头作为一款智能文章采集工具,在这一过程中发挥着重要作用。本文将探讨火车头如何通过关键词采集文章,以…

CDH集群hive初始化元数据库失败

oracle数据库操作: 报错如下:命令 (Validate Hive Metastore schema (237)) 已失败 截图如下: 后台日志部分摘录: WARNING: Use “yarn jar” to launch YARN applications. SLF4J: Class path contains multiple SLF4J binding…

Vite 为什么比 Webpack 快?

目录 1. Webpack 的构建原理 2. Script 的模块化(主流浏览器对 ES Modules 的支持) 3. Webpack vs Vite 开发模式的差异 对 ES Modules 的支持 底层语言的差异 热更新的处理 1. Webpack 的构建原理 前端之所以需要类似于 Webpack 这样的构建工具&…

主机安全-德迅卫士

什么是主机安全? 主机安全,其核心内容包括安全应用交付系统、应用监管系统、操作系统安全增强系统和运维安全管控系统。它的具体功能是指保证主机在数据存储和处理的保密性、完整性,可用性,它包括硬件、固件、系统软件的自身安全&…

CMakeLists生成动态库.so和静态库.a

一、下载NDK CMake - NDK : 26.2.11394342 或 23.1.7779620 - CMake : 3.22.1 二、新建android\app\CMakeLists.txt 文件CMakeLists.txt内容 cmake_minimum_required(VERSION 3.4.1) #mker为项目名称 project(mker)#设置生成的so动态库最后输出的路径 set(CMAKE_LIBRARY_OUTP…

如何安装OceanBase的OBD

选择一:借助 all-in-one 安装包安装 OBD(推荐) OceanBase 社区版的all-in-one安装包是一个集成了多种工具的一键式安装包。它包含了数据库软件本身,以及OBD、OBProxy、OBClient,自4.1版本起,还额外加入了O…

面试算法-122-翻转二叉树

题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {return dfs(…

第二证券今日投资参考:低空经济迎利好 自动驾驶商业化提速

昨日,两市股指盘中弱势震动,午后加快下探,沪指失守3000点大关,深成指、创业板指跌超2%;到收盘,沪指跌1.26%报2993.14点,深成指跌2.4%报9222.47点,创业板指跌2.81%报1789.82点&#x…

DC电源模块的设计与制造流程

BOSHIDA DC电源模块的设计与制造流程 DC电源模块是一种用于将交流电转换为直流电的设备。它广泛应用于各种电子设备中,如电子产品、工业仪器、电视等。下面是DC电源模块的设计与制造流程的简要描述: 1. 需求分析:在设计DC电源模块之前&#…

设计模式(一)简介

一、书籍推荐及博客 大话设计模式 设计模式的艺术 XXL开源社区 | 博客 二、通俗版概念 创建型模式、结构型模式、行为型模式 怎么建房子、建什么样的房子、建的房子有什么用 三、重点模式及简述 1、创建型模式 工厂方法(多态工厂的实现) 抽象工厂…

flutter 中 GetxController 和 GetxService 的区别和使用场景

区别: GetxController: GetxController 用于管理特定页面或 widget 的状态。每个页面或 widget 可以拥有一个或多个 GetxController,用于管理其自身的状态和逻辑。GetxController 是短暂存在的,通常与页面或 widget 的生命周期相关…

JetBrains pycharm pro 2023 for mac Python集成开发环境

JetBrains PyCharm Pro 2023 for Mac是一款功能强大的Python集成开发环境(IDE),专为Mac用户设计,旨在提供高效、智能的编程体验。 软件下载:JetBrains pycharm pro 2023 for mac中文最新版 PyCharm Pro 2023支持多种语…

上位机图像处理和嵌入式模块部署(qmacvisual图像修复)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 qmacvisual提供了一个图像修复的功能。所谓的图像修复,就是对图像中缺省的部分进行修补,它的操作,其实分成两个…

Leetcode 第 388 场周赛题解

Leetcode 第 388 场周赛题解 Leetcode 第 388 场周赛题解题目1:3074. 重新分装苹果思路代码复杂度分析 题目2:3075. 幸福值最大化的选择方案思路代码复杂度分析 题目3:3076. 数组中的最短非公共子字符串思路代码复杂度分析 题目4:…