Hadoop的HDFS的集群安装部署

注意:主机名不要有/_等特殊的字符,不然后面会出问题。有问题可以看看第5点(问题)。

1、下载

1.1、去官网,点下载

下载地址:https://hadoop.apache.org/
在这里插入图片描述

1.2、选择下载的版本

1.2.1、最新版

在这里插入图片描述在这里插入图片描述

1.2.2、其他版本,我这里选择3.3.4

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1.3、上传,解压

HDFS是主从模式,所以在node1节点安装即可

1.3.1、上传安装包node1节点

在这里插入图片描述

1.3.2、解压到/export/server下

tar -zxvf hadoop-3.3.4.tar.gz -C /export/server

在这里插入图片描述

1.3.3、构建软链接

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

在这里插入图片描述

2、配置

配置HDFS集群,我们主要涉及到如下文件的修改:

  • workers: 配置从节点(DataNode)有哪些
  • hadoop-env.sh: 配置Hadoop的相关环境变量
  • core-site.xml: Hadoop核心配置文件
  • hdfs-site.xml: HDFS核心配置文件

这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。

进入etc下的Hadoop目录

cd ./etc/hadoop

在这里插入图片描述

2.1、配置workers文件

2.1.1、进入Hadoop目录

cd ./etc/hadoop

在这里插入图片描述

2.1.2、编辑workers文件

vim workers

配置主机名
填入的bigdata_node1,2,3是三台主机的名称
表明集群记录了三个从节点(DataNode)
在这里插入图片描述

2.2、配置hadoop-env.sh文件

vim hadoop-env.sh

在这里插入图片描述
在这里插入图片描述

# 填入如下内容
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/logs
  • JAVA_HOME,指明JDK环境的位置在哪
  • HADOOP_HOME,指明Hadoop安装位置
  • HADOOP_CONF_DIR,指明Hadoop配置文件目录位置
  • HADOOP_LOG_DIR,指明Hadoop运行日志目录位置

2.3、配置core-site.xml文件

vim core-site.xml
在文件内部填入如下内容
<configuration><property><name>fs.defaultFS</name><value>hdfs://bigdata_node1:8020</value></property><property><name>io.file.buffer.size</name><value>131072</value></property>
</configuration>
  • key:fs.defaultFS
    含义:HDFS文件系统的网络通讯路径

  • 值:hdfs://node1:8020
    协议为hdfs://
    namenode为bigdata_node1
    namenode通讯端口为8020

  • key:io.file.buffer.size
    含义:io操作文件缓冲区大小

  • 值:131072 bit

hdfs://bigdata_node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)。
表明DataNode将和node1的8020端口通讯,bigdata_node1是NameNode所在机器。
此配置固定了bigdata_node1必须启动NameNode进程。

在这里插入图片描述

2.4、配置hdfs-site.xml文件

vim hdfs-site.xml
# 在文件内部填入如下内容
<configuration><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>bigdata_node1,bigdata_node2,bigdata_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>
</configuration>
  • key:dfs.datanode.data.dir.perm
    含义:hdfs文件系统,默认创建的文件权限设置

  • 值:700,即:rwx------

  • key:dfs.namenode.name.dir
    含义:NameNode元数据的存储位置

  • 值:/data/nn,在bigdata_node1节点的/data/nn目录下

  • key:dfs.namenode.hosts
    含义:NameNode允许哪几个节点的DataNode连接(即允许加入集群)

  • 值:bigdata_node1,bigdata_node2,bigdata_node3这三台服务器被授权

  • key:dfs.blocksize
    含义:hdfs默认块大小

  • 值:268435456(256MB)

  • key:dfs.namenode.handler.count
    含义:namenode处理的并发线程数

  • 值:100,以100个并行度处理文件系统的管理任务

  • key:dfs.datanode.data.dir
    含义:从节点DataNode的数据存储目录

  • 值:/data/dn,即数据存放在bigdata_node1,bigdata_node2,bigdata_node3三台机器的/data/dn内
    在这里插入图片描述

2.5、根据下述2个配置项:

在这里插入图片描述
在这里插入图片描述

  • namenode数据存放bigdata_node1的/data/nn
  • datanode数据存放bigdata_node1,bigdata_node2,bigdata_node3的/data/dn

所以应该

  • 在bigdata_node1节点:
    mkdir -p /data/nn
    mkdir -p /data/dn
    在这里插入图片描述

  • 在bigdata_node2和bigdata_node3节点:
    mkdir -p /data/dn
    在这里插入图片描述在这里插入图片描述

2.6、分发Hadoop文件夹

已经基本完成Hadoop的配置操作,可以从bigdata_node1将hadoop安装文件夹远程复制到bigdata_node2、bigdata_node3。

在bigdata_node1执行如下命令

cd /export/server
scp -r hadoop-3.3.4 bigdata_node2:`pwd`/
scp -r hadoop-3.3.4 bigdata_node3:`pwd`/

在这里插入图片描述
在这里插入图片描述

2.7、为hadoop配置软链接

2.7.1、在bigdata_node2执行

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

在这里插入图片描述

2.7.2、在bigdata_node3执行

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

在这里插入图片描述

2.8、配置环境变量

2.8.1、添加配置

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

在Hadoop文件夹中的bin、sbin两个文件夹内有许多的脚本和程序,现在来配置一下环境变量。

vim /etc/profile

在/etc/profile文件底部追加如下内容

export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在这里插入图片描述

2.8.2、配置生效

source /etc/profile

在这里插入图片描述

三台服务器都要配置。

3、授权为hadoop用户

hadoop部署的准备工作基本完成。

为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务
所以,现在需要对文件权限进行授权。

ps:请确保已经提前创建好了hadoop用户,并配置好了hadoop用户之间的免密登录。

以root身份,在bigdata_node1、bigdata_node2、bigdata_node3三台服务器上均执行如下命令

chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export

三台服务器都要。
在这里插入图片描述在这里插入图片描述

4、格式化,启动,访问

前期准备全部完成,现在对整个文件系统执行初始化。

4.1、格式化namenode

确保以hadoop用户执行

su hadoop

格式化namenode

hadoop namenode -format

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2、启动

一键启动hdfs集群

start-dfs.sh

在这里插入图片描述
一键关闭hdfs集群

stop-dfs.sh

如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行

/export/server/hadoop/sbin/start-dfs.sh
/export/server/hadoop/sbin/stop-dfs.sh

4.3、访问

  • 在本地系统配置host的文件,就可以直接使用域名访问。
    在这里插入图片描述

在这里插入图片描述

  • http://bigdatanode1:9870,即可查看到hdfs文件系统的管理网页。
    在这里插入图片描述
    在这里插入图片描述

5、问题

5.1、一键启动hdfs集群后,jps查看没有启动的服务

在这里插入图片描述

5.2、检查日志log

java.lang.IllegalArgumentException: Does not contain a valid host:port authority: bigdata_node1:8020at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:232)at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:189)at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:169)at org.apache.hadoop.hdfs.DFSUtilClient.getNNAddress(DFSUtilClient.java:766)at org.apache.hadoop.hdfs.DFSUtilClient.getNNAddress(DFSUtilClient.java:792)at org.apache.hadoop.hdfs.DFSUtilClient.getNNAddressCheckLogical(DFSUtilClient.java:810)at org.apache.hadoop.hdfs.DFSUtilClient.getNNAddress(DFSUtilClient.java:772)at org.apache.hadoop.hdfs.server.namenode.NameNode.getRpcServerAddress(NameNode.java:578)at org.apache.hadoop.hdfs.server.namenode.NameNode.loginAsNameNodeUser(NameNode.java:718)at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:738)at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1020)at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:995)at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1769)at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1834)
2023-09-11 00:28:53,873 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1: java.lang.IllegalArgumentException: Does not contain a valid host:port authority: bigdata_node1:8020

在这里插入图片描述

5.3、问题原因

说是我主机与端口不对

5.3.1、ping端口号

ping bigdata_node1

5.3.2、说是端口号没放开

telnet bigdata_node1 8020

5.3.3、自己的真实原因

主机使用的hostname不合法,修改为不包含着‘.’ ‘/’ '_'等非法字符的主机名。

5.3.4、修改主机名,并把之前的配置的主机名全部改了

hostnamectl set-hostname bigdatanode1
vim /etc/hosts
vim workers
vim core-site.xml
vim hdfs-site.xml

5.4、重启启动,成功

5.4.1、先格式化namenode

hadoop namenode -format

5.4.2、再启动

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结束!!!!!!!
hy:33


						为什么害怕独处?因为人在独处的时候,总是会听到心灵深处的声音。

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

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

相关文章

docker报错解决方法

ERROR: readlink /var/lib/docker/overlay2/l: invalid argument 注意&#xff1a;会清空已有安装 sudo service docker stop sudo rm -rf /var/lib/docker sudo service docker start

酷开系统游戏空间,开启大屏娱乐新玩法

在这个充满科技感和无限创意的时代&#xff0c;游戏已经成为我们生活的一部分。而随时着科技的不断发展&#xff0c;以及游戏爱好者的游戏需求在不断提高&#xff0c;促使游戏体验也向更加丰富多彩的方向发展。显然&#xff0c;酷开科技早已经认识到游戏发展的新蓝图&#xff0…

一百七十二、Flume——Flume采集Kafka数据写入HDFS中(亲测有效、附截图)

一、目的 作为日志采集工具Flume&#xff0c;它在项目中最常见的就是采集Kafka中的数据然后写入HDFS或者HBase中&#xff0c;这里就是用flume采集Kafka的数据导入HDFS中 二、各工具版本 &#xff08;一&#xff09;Kafka kafka_2.13-3.0.0.tgz &#xff08;二&#xff09;…

javaee springMVC model的使用

项目结构图 pom依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org…

腾讯云CVM标准型S4服务器性能测评_CPU_网络收发包PPS详解

腾讯云服务器CVM标准型S4性能测评&#xff0c;包括S4云服务器CPU型号、处理器主频、网络收发包PPS、队列数、出入内网带宽能力性能参数说明&#xff0c;标准型 S4 实例是次新一代的标准型实例&#xff0c;CPU采用2.4GHz主频的Intel Xeon Skylake 6148处理器&#xff0c;腾讯云百…

Visual studio解决‘scanf: This function or variable may be unsafe. 问题

使用C语言的scanf函数在Visual Studio软件上运行会报如下错误&#xff1a; scanf: This function or variable may be unsafe. Consider using scanf s instead. To disable deprecation, use. CRT SECURE NO WARNINGS. See online help for details. 这个函数或变量可能是不安…

LeetCode 92. Reverse Linked List II【链表,头插法】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

upload-labs1-21关文件上传通关手册

upload-labs文件上传漏洞靶场 目录 upload-labs文件上传漏洞靶场第一关pass-01&#xff1a;第二关Pass-02第三关pass-03&#xff1a;第四关pass-04&#xff1a;第五关pass-05&#xff1a;第六关pass-06&#xff1a;第七关Pass-07第八关Pass-08第九关Pass-09第十关Pass-10第十一…

苹果手机远程控制安卓手机,为什么不能发起控制?

这位用户想要用iOS设备远程控制安卓设备&#xff0c;在被控端安装好AirDroid之后&#xff0c;就在控制端的苹果手机上也安装了AirDroid&#xff0c;然而打开控制端的软件&#xff0c;却没有在手机界面上看到【远程控制】按钮&#xff0c;于是提出了以上疑问。 解答 想要让iOS设…

用postman 推送消息到GCP的pubsub

创建1个Topic 和 2个 subscription 我们可以用terraform 去创建1个topic 和 2个subscriptions # topic resource "google_pubsub_topic" "topic_a" {name "TopicA"project var.project_id }# subscriptions resource "google_pubsub_s…

【AIGC专题】Stable Diffusion 从入门到企业级实战0402

一、概述 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第02节&#xff0c; 利用Stable Diffusion ControlNet Openpose模型精准控制图像生成。上一节&#xff0c;我们介绍了《Stable Diffusion C…

postgresql-通用表达式

postgresql-通用表达式 入门案例简单CTE递归 CTE案例1案例2 入门案例 -- 通用表达式 with t(n) as (select 2) select * from t;简单CTE WITH cte_name (col1, col2, ...) AS (cte_query_definition ) sql_statement;WITH 表示定义 CTE&#xff0c;因此 CTE 也称为 WITH 查询…

【Unity】rotation和Quaternion学习笔记

1.rotation 赋值 Quaternion可以为transform.rotation 赋值 2. 从正轴面向原点&#xff0c;顺时针旋转&#xff0c;角度正增加 正x轴面向原点&#xff0c;顺时针旋转&#xff0c;z正轴往下&#xff0c;rotation的x正增加。 3.rotation和Quaternion的关系 1.查询 2.实践 旋转…

LVS DR模式负载均衡群集部署

目录 1 LVS-DR 模式的特点 1.1 数据包流向分析 1.2 DR 模式的特点 2 DR模式 LVS负载均衡群集部署 2.1 配置负载调度器 2.1.1 配置虚拟 IP 地址 2.1.2 调整 proc 响应参数 2.1.3 配置负载分配策略 2.2 部署共享存储 2.3 配置节点服务器 2.3.1 配置虚拟 IP 地址 2.3.2…

树形控件加自定义图标样式及指引线

记录一下留用&#xff0c;有错误请指正。 效果图如下&#xff1a; 自定义图标及指引线 代码&#xff1a; <div class"head-container" style"margin-left: -15px;"><el-tree icon-class"none"style"height:100%; overflow-y: h…

滚动菜单 flutter

想实现这个功能&#xff1a; 下面的代码可以实现&#xff1a; import package:flutter/material.dart;void main() > runApp(MyApp());class MyApp extends StatelessWidget {static const String _title Flutter Code Sample;overrideWidget build(BuildContext context)…

vcruntime140_1.dll修复的方法大全,缺失vcruntime140_1.dll解决方法分享

vcruntime140_1.dll这个文件在电脑里属于挺重要的一个文件&#xff0c;一但它缺失了&#xff0c;那么很多程序都是运行不了的&#xff0c;今天我们就来讲解一下这个vcruntime140_1.dll修复以及它的一些作用和属性。 一.vcruntime140_1.dll的作用 vcruntime140_1.dll是Microso…

在MAC电脑上将NTFS格式移动硬盘转换为ExFAT格式

注意&#xff1a;转化之前先将移动硬盘中的内容进行备份 1、点击桌面上的【前往】&#xff0c;选择【实用工具】 2、在列表中选择【磁盘工具】 3、在左侧选中你的磁盘&#xff0c;点击右侧上方的【抹掉】,注意&#xff1a;将永久抹掉储存在上面的所有数据&#xff0c;因此需要…

Alibaba(商品详情)API接口

为了进行电商平台 的API开发&#xff0c;首先我们需要做下面几件事情。 1&#xff09;开发者注册一个账号 2&#xff09;然后为每个alibaba应用注册一个应用程序键&#xff08;App Key) 。 3&#xff09;下载alibaba API的SDK并掌握基本的API基础知识和调用 4&#xff09;利…

计算机专业毕业设计项目推荐03-Wiki系统设计与实现(JavaSpring+Vue+Mysql)

Wiki系统设计与实现&#xff08;JavaSpringVueMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设…