Hadoop相关知识点

news2025/7/20 17:38:09

文章目录

  • 一、主要命令
  • 二、配置虚拟机
    • 2.1 设置静态ip
    • 2.2 修改主机名及映射
    • 2.3 修改映射
    • 2.4 单机模式
    • 2.5 伪分布式
    • 2.6 完全分布式
  • 三、初识Hadoop
  • 四、三种模式的区别
    • 4.1、单机模式与伪分布式模式的区别
    • 4.2、特点
    • 4.3、配置文件的差异
      • 4.3.1、单机模式
      • 4.3.2、伪分布式模式
      • 4.3.3、完全分布式模式
  • 五、问答题
  • 六、shell访问hdfs(通过HDFS*Shell命令)
      • 6.1、问答题
    • 6.2、注意


一、主要命令

  • 开启防火墙 sudo ufw enable
  • 关闭防火墙 sudo ufw disable
  • 查看防火墙状态 sudo ufw status
  • 修改主机名 sudo vi /etc/hostname
  • 修改映射 sudo vi /etc/hosts (考题)
  • 建立文件夹 mkdir 文件夹名字
  • 删除文件夹 rm -rf 递归删除文件夹向下穿透,其下所有文件、文件夹都会被删除 rm -f 强制删除文件 rm -r 递归删除文件
  • 解压文件夹 tar -zxvf 文件名 -C ~/解压到的文件路径
  • 文件重命名 mv 旧文件名 新文件名
  • 修改主机名的文件位置 /etc/hostname
  • 使配置环境变量生效 source ~/.bashrc
  • 修改环境变量的 vi ~/.bashrc
  • 查看具体的某个文件用cat
  • 查看目录用 ls
  • 重启ssh服务器 service sshd restart
  • 启动ssh sudo service ssh start
  • sudo是必须执行的命令
  • -i 表示覆盖的意思

二、配置虚拟机

2.1 设置静态ip

查看当前ip:ifconfig
进入到netplan文件夹 cd /etc/netplan
查看文件目录,找到需要修改的文件 ls
进行修改ip sudo vi 00-installer-config.yaml
将设置的网络应用 sudo netplan apply
再次查看ip ip已经更换

2.2 修改主机名及映射

修改主机名 sudo vi /etc/hostname 修改后记得重启
修改映射 sudo vi /etc/hosts (考题)

2.3 修改映射

sudo vi /etc/hosts 将ip地址和主机名的映射添加到文件中192.168.xx.xxx single
使用文本编辑器打开 C:\Windows\System32\drivers\etc\host 文件并在文件末尾添加以下配置并保存退出 192.168.xx.xxx single

2.4 单机模式

  • 没有HDFS
  • 只能测试MapReduce程序
  • MapReduce处理的是本地的Linux的文件数据
  • 只需要修改hadoop-env.sh配置文件

2.5 伪分布式

  • 格式化HDFS的命令: hdfs namenode -format

启动hadoop集群的命令

  • start-all.sh或
  • 启动dfs命令: start-dfs.sh
  • 启动yarn命令: start-yarn.sh
  • 启动yarn之后会有哪些服务?

ResourceManage(8088)、NodeManager(8042)

  • 启动hdfs之后会有哪些服务?

Namenode 、 DataNode、 SecondaryNamenode

  • 启动所有服务的命令: start-all.sh
  • 查看yarn、web页面的端口号

查看yarn的端口号:8088
查看hdfs端口号:50070(通过web看)

  • 查看集群启动进程
    jps
    yarn的中文名(Yet Another Resource Negotiator):资源调度与分配框架

  • 控制从节点运行的服务器:workers(3.0hadoop)slaves(2.0hadoop)

  • NameNode(名称结点)的职责

A. 维护HDFS集群的目录树结构:NameNode负责存储和管理文件系统的命名空间,包括目录、文件和其属性等信息。
B. 维护HDFS集群的所有数据块的分布、副本数和负载均衡:NameNode记录每个数据块的位置和副本信息,并负责管理数据块的复制和迁移,以实现数据的可靠性和负载均衡。
C. 响应客户端的所有读写数据请求:NameNode接收客户端的读写请求,并将请求转发到适当的DataNode进行数据读取或写入操作。
D.NameNode负责管理数据块和处理元数据。

  • Namenode无法访问时:
  • 默认数据块大小:64mb 128mb 128mb
  • 要存下700m需要6块数据块:一块为128
  • namenode保存的两个文件:edits文件(文件的更新操作,记录操作日志)fsimage文件(修改信息 时间 控制访问权限 hdfs的元信息)
  • DataNode(数据结点)职责

1.存储数据块block
2.根据namenode的指令对block进行创建、复制、删除等操作
3.datanode和namenode进行心跳通信,接受namenode指令
4.定期向namenode汇报自身存储的block列表及健康状态
5.负责为客户端发起的读写请求提供服务

  • block是hdfs文件系统中最小的存储单位
    SSH免密登录原理
    非对称加密算法(rsa)、公钥加密(给别人)、私钥解密(给自己)
    生成密钥对:ssh-keygen -t
    将公钥copy给serverB:ssh-copy-id -i
    在主机上登录子机:ssh 子机名

2.6 完全分布式

  • 分发命令:scp -r /home/hadoop/hadoop-2.7.4 node2:/home/hadoop

三、初识Hadoop

  • 大数据的特征:大量、真实、多样、低价值密度、高速
  • hadoop起源的三篇论文:NDFS、MapReduce(分而治之,并行计算)、HDFS(分布式文件系统)->源于谷歌的GFS论文
  • hadoop处理的是离线数据!
  • 元数据(MetaData):记录hdfs文件系统的相关信息,包括文件系统的目录结构 文件名 文件路径 文件大小等。
  • Hadoop的优缺点(简答题):

高扩展性: 增加集群的存储和计算能力
低成本: 利用多台廉价计算机,分布式系统处理
高效性: 离线并行动态计算,提高计算效率
高可靠性: 维护数据副本(3个),可有效防止数据丢失
高容错性:可转移到其他计算机上运行

缺点

不适合处理小文件:为了解决大型数据集的处理问题
无法实时计算:核心是执行离线计算的引擎
安全性较低存储和网络传输方面缺乏对数据的加密

场景:

适合:大数据分析、离线分析
不适合:少量数据、复杂数据、在线分析

  • HDFS是Hadoop生态圈的基石,主要负责hadoop集群数据的存储和读取
  • 大数据处理的意义:对未来事物发展规律做出预测,对之前的数据进行归纳和总结。
  • 第二名称节点的作用:辅助namenode合并fsimage文件和edits文件 将合并结果发送给namenode,帮助主节点namenode进行元数据备份和恢复

四、三种模式的区别

4.1、单机模式与伪分布式模式的区别

单机模式

运行在单个计算机中
所有Hadoop组件(如HDFS和YARN)都在本地运行,并且没有网络通信
在单机模式下,Hadoop使用本地文件系统来存储数据。

伪分布式模式

Hadoop在一台计算机上模拟了一个分布式环境。
Hadoop服务(如HDFS和YARN)运行在单个计算机上,但它们通过网络进行通信和协作。
文件系统被配置为HDFS,而不是本地文件系统,数据被存储在HDFS中

4.2、特点

在这里插入图片描述

4.3、配置文件的差异

4.3.1、单机模式

在这里插入图片描述

4.3.2、伪分布式模式

在这里插入图片描述

4.3.3、完全分布式模式

在这里插入图片描述

五、问答题

在这里插入图片描述

(1)ifconfig
(2)scp -r /home/hadoop/hadoop-2.7.4 node2:/home/hadoop
(3)hdfs namenode -format
(4)start-dfs.sh 和 start-yarn.sh

在这里插入图片描述

(1)hdfs dfs -mkdir /hd123
(2)hdfs dfs -touch data.txt
(3)hdfs dfs -ls /hd123
(4)hdfs dfs -appendToFile test.txt /hd123/data.txt
(5)hdfs dfs -cat /hd2112054139/data.txt
(6)hdfs dfs -get /hd2112054139/data.txt

根据HDFS的块大小为128MB,存储300MB的文件需要多少个数据块。

计算方法如下:
文件大小 / 块大小 = 数据块数量
300MB / 128MB ≈ 2.34
根据向上取整规则,需要3个数据块来存储300MB的文件。
所以,需要3个数据块来存储300MB的文件。

六、shell访问hdfs(通过HDFS*Shell命令)

  • 格式化HDFS
    hdfs namenode -format
  • 创建目录
    hdfs -dfs -mkdir /hd2112054139
  • 级联的创建目录
    hdfs dfs -mkdir -p /hd2112054139/a/b/c 使用-p时,如果父目录不存在,会自动创建
  • 查看目录
    hdfs dfs -ls /hd211205139
  • 级联的查看目录
    hdfs dfs -ls -R /hd2112054139
  • 将本地文件上传到HDFS中:hdfs dfs -put 文件名 文件目录 或 hdfs dfs -copyFromLocal b.txt /usr/opt/data
  • 将本地文件下载(复制):hdfs dfs -get 文件目录 本地文件目录
  • 追加数据

-appendToFile命令:将所有给定本地文件的内容追加到hdfs文件,hdf文件不存在,则创建该文件
hdfs dfs -appendToFile d.txt /usr/opt/data/a.txt

  • 在hdfs中文件复制到同一个目录下:hdfs dfs -cp /data1.txt /data2.txt
  • 查看文件夹大小:hdfs dfs -du -s 文件夹名
  • 查看文件大小:hdfs dfs -du 文件名
  • hdfs中删除文件:hdfs dfs -rm -r 文件路径名
  • hdfs中统计文件:hdfs dfs -count 文件路径名(显示:目录个数、文件个数、文件总计大小、输入路径)
  • 合并目录下的文件并下载到本地:hdfs dfs -getmerge /hd123 ~/input/merge.txt,
    并在本地查看内容:cd 本地文件名 cat merge.txt
  • 查看文件内容:
#-cat命令:将文件内容显示出来(适合小文件)
hdfs dfs -cat /usr/opt/data/a.txt
#-haed命令:查看文件前1KB的内容
hdfs dfs -head /usr/opt/data/a.txt
#-tail命令:查看文件最后1KB的内容
hdfs dfs -tail /usr/opt/data/a.txt
#-tail -f命令:可以动态显示文件中追加的内容
#在Linux系统中
tail -f 1.txt 
#hdfs
hdfs dfs -tail -f /usr/opt/data/a.txt
  • HDFS中block默认保存3份
  • 一个datanode上只有一个数据块的备份

6.1、问答题

1.根据要求写出HDFS shell命令

  • 在HDFS上创建名为test的目录(此目录在主目录下)
    hdfs dfs -mkdir ~/test
  • 将本地的文件file上传至test目录下
    hdfs dfs -put /input/file.txt /test
  • 将本地的文件file内容追加至test目录下的file1.txt中
    hdfs dfs -appendToFile file.txt /test/file1.txt
  • 查看test的目录信息.
    hdfs dfs -ls /test

2.这三台操作系统为Ubutun 18.04机器(机器名分别是master(192.168.22.101)、slave(192.168.30.102)、slave2(192.168.22.103))部署Hadoop完全分布式环境,master上位Namenode节点,三台机器已经实现免密登录。实现下面功能需要输入什么Linux命令或者操作进行什么操作?

  • 在主机master生成密钥的命令是什么?
    ssh-keygen -t
  • 从master,通过ssh登录到slave2
    ssh slave2
  • 在master上,格式化HDFS
    hdfs namenode -format’
  • 启动YARN
    start-yarn.sh
  • 该Hadoop集群运行时,使用哪儿个命令查看集群启动进程
    jps

6.2、注意

hdfs dfs -put ~/input/file.txt /test 和 hdfs dfs -put /input/file.txt /test 的区别在于文件的来源路径。

hdfs dfs -put ~/input/file.txt /test 中的/input/file.txt表示当前用户的主目录下的input/file.txt文件。波浪号()在这里代表当前用户的主目录。
hdfs dfs -put /input/file.txt /test中的/input/file.txt表示根目录下的input/file.txt文件。
所以,两个命令的主要区别在于文件来源的路径。第一个命令将从当前用户的主目录下复制file.txt文件到HDFS中的/test目录,而第二个命令将从根目录下的/input目录中复制file.txt文件到HDFS中的/test目录。

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

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

相关文章

JVM虚拟机:堆结构的逻辑分区

堆内存的逻辑分区 堆内存的逻辑分区如下所示: 堆内存中分为新生代和老年代,二者空间大小1:3。在新生代里面分为两类区域(eden、survivor),三个区域(eden、survivor、survivor),三个区大小比例为8:1:1。 对象存放的位置 栈 当我们new一个对象的时候,首先会将对象…

Java之SpringCloud Alibaba【七】【Spring Cloud微服务网关Gateway组件】

一、网关简介 大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去用。 这样的架构,会存在着诸多…

我在Vscode学OpenCV 处理图像

既然我们是面向Python的OpenCV(OpenCV for Python)那我们就必须要熟悉Numpy这个库,尤其是其中的数组的库,Python是没有数组的,唯有借助他库才有所实现想要的目的。 # 老三样库--事先导入 import numpy as np import c…

高性能消息中间件 - Kafka3.x(二)

文章目录 高性能消息中间件 - Kafka3.x(二)Kafka生产者⭐生产者发生原理⭐RecordAccumulator源码简单分析⭐Java Api生产者的重要参数⭐环境准备创建一个名为java-api-test的topic主题⭐命令行开启一个consumer消费者监听名为java-api-test的topic⭐pom.…

5、QtCharts 曲线美化

文章目录 效果ui 设置dialog.hdialog.cpp 效果 ui 设置 dialog.h #ifndef DIALOG_H #define DIALOG_H#include <QDialog> #include <QtCharts> #include <QLineSeries> #include <QGraphicsScene> #include <QTimer> #include <QSplineSerie…

陕西某小型水库雨水情测报及大坝安全监测项目案例

项目背景 根据《陕西省小型病险水库除险加固项目管理办法》、《陕西省小型水库雨水情测报和大坝安全监测设施建设与运行管理办法》的要求&#xff0c;为保障水库安全运行&#xff0c;对全省小型病险水库除险加固&#xff0c;建设完善雨水情测报、监测预警、防汛道路、通讯设备、…

如何有效使用蜂邮EDM和vba批量发送邮件?

蜂邮EDM和vba批量发送邮件的方法&#xff1f;怎么使用蜂邮EDM和vba代码群发电子邮件&#xff1f; 批量发送邮件已经成为一种不可或缺的沟通方式。蜂邮EDM和VBA是两个功能强大的工具&#xff0c;可以帮助您在邮件营销和业务通信中实现高效的批量发送邮件操作。接下来将介绍如何…

关于Goby反制上线CS中的各种问题

前言 ​ Goby作为新一代网络安全技术&#xff0c;通过为目标建立完整的资产数据库&#xff0c;实现快速的安全应急&#xff0c;日常为广大师傅提供了便捷的渗透体验。最近有观察到有关于某些蜜罐出现了Goby反制的指纹&#xff0c;顿时就起了兴趣进行研究Goby的反制&#xff0c…

AIGC究竟是什么?为什么今年大家都在讨论?

目录 一、什么是AIGC 二、AIGC发展阶段 三、AIGC的技术应用 AIGC的应用场景 四、AIGC的伦理、风险与未来 五、说在最后 在23年初&#xff0c;大家的视野范围内突然出现了一种叫ChatGPT的产品&#xff0c;这是由OpenAI研发的一种基于深度学习和自然语言处理技术的文本生成…

SpringBoot_mybatis-plus使用json字段

mybatis-plus使用json字段 1.前言2.方案分析2.1 为什么是json2.2 数据库的选择 3. 实战3.1 使用text字段(h2数据库)3.1.1 建表语句3.1.2 数据操作与查询 3.2 使用json字段(mysql数据库)3.2.1 建表语句3.2.2 数据操作与查询 4. 附录4.1 MySQL JSON索引用法 5. 参考文档 1.前言 …

无需服务器内网穿透Windows下快速搭建个人WEB项目

&#x1f4d1;前言 本文主要是windows下内网穿透文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&#xff1a;努力…

今日温馨早安问候语,祝大家平安健康早安吉祥

用清晨的阳光沐浴&#xff0c;给你舒展;用清新的空气洗漱&#xff0c;给你舒心;伴清莹的雨露散步&#xff0c;给你舒情;向美好的一天欢呼&#xff0c;给你舒怀&#xff0c;用快乐的词汇凝聚&#xff0c;给你祝福&#xff0c;祝你在绚丽的晨光中走好每一天。朋友&#xff0c;早安…

算法升级之路(六)

给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]] 解题思路&…

中国教育企业出海 新兴技术助力抢占先机

继游戏、电商、短视频等领域轮番出海之后&#xff0c;国内教育企业纷纷开启了出海之路。近日发布的《2023年教育应用出海市场洞察》报告显示&#xff0c;在中国教育企业出海市场中&#xff0c;语言学习是最主要的赛道&#xff0c;但赛道竞争更为激烈。 报告指出&#xff0c;全…

高性能消息中间件 - Kafka3.x(三)

文章目录 高性能消息中间件 - Kafka3.x&#xff08;三&#xff09;Kafka Broker ⭐Kafka Broker概念Zookeeper&#xff08;新版本可以不使用zk了&#xff09;⭐Zookeeper的作用 Kafka的选举1&#xff1a;Broker选举Leader⭐Broker核心参数⭐案例&#xff1a;服役新节点和退役旧…

多测师肖sir_高级金牌讲师_jmeter 反向代理录制脚本

jemeter自带的录制脚本功能&#xff0c;是利用代理服务器来进行录制的 1&#xff0c;新建一个线程组 2&#xff0c;新建一个代理服务器 右击工作台-添加-非测试元件-http代理服务器 3&#xff0c; 配置http代理服务器 端口&#xff1a; 默认为8888&#xff0c;可修改。但…

InfoHound:一款针对域名安全的强大OSINT工具

关于InfoHound InfoHound是一款针对域名安全的强大OSINT工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员只需要提供一个Web域名&#xff0c;InfoHound就可以返回大量跟目标域名相关的数据。 在网络侦查阶段&#xff0c;攻击者会搜索有关其目标的任何信息&#xff…

理解springboot那些过滤器与调用链、包装或封装、设计模式相关等命名规范,就可以读懂80%的springboot源代码,和其他Java框架代码

紧接上面《 理解springboot那些注册与回调、监控与统计等命名规范,就可以读懂70%的springboot源代码》、《 理解springboot那些约定俗成的框架类名、全局context等命名规范,就可以读懂一半springboot的源代码》2篇文章,此片将汇总springboot那些过滤器与调用链、包装或封装…

(三)上市企业实施IPD成功案例分享之——五菱

2022年对汽车产业而言是极为不平凡的一年。这一年&#xff0c;企业受到疫情反复、芯片短缺、原材料价格上涨等负面因素影响&#xff0c;汽车产业的变革持续加速。面对变革与挑战&#xff0c;五菱汽车仍逆势交出一份超出市场预期的成绩单。上半年&#xff0c;五菱发布2022年财报…

职场晋升力加分利器:巧用ChatGPT快速搞定数据分析

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 第一部分&#xff1a; C…