IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> HDFS(Hadoop Distributed File System )概述 -> 正文阅读

[大数据]HDFS(Hadoop Distributed File System )概述

目录

一、HDFS概述

二、HDFS特点

三、HDFS集群组成:主从架构---一个主节点,多个从节点

1. NameNode(名称节点 / 主节点)-----?HDFS集群的管理者

2. DataNode (数据节点 / 从节点)

3. SecondaryNameNode (第二名称节点)

四、HDFS传输文件方式

五、HDFS常用命令

六、如何实现启动HDFS和yarn的时候不输入密码


一、HDFS概述

Hadoop 分布式文件系统,用于存储文件,与Windows不同的是他是一个分布式的,由很多服务器联合起来实现其功能。

二、HDFS特点

  1. 一次写入,多次读取,写入后只允许删除或查看,不支持文件修改。
  2. HDFS文件读取或写入都比较慢,不适合实时性或者低延时的操作

Notes适合用来做数据分析,不适合做网盘应用。

三、HDFS集群组成:主从架构---一个主节点,多个从节点

1. NameNode(名称节点 / 主节点)-----?HDFS集群的管理者

  1. 管理文件存储的元数据
    • 元数据包括了文件的信息、大小。文件的上传时间、作者、文件在那个DataNode上存储
    • 元数据中还包含了 文件义工分成了几个板块,每个板块在那个DataNode上存储着
    • 但是 NameNode 只存储这些信息,文件中真正的内容 NameNode 不存储,主要由 DataNode 存储
  2. NameNode 也管理文件的上传和下载操作,作为客户端的请求响应

2. DataNode (数据节点 / 从节点)

????????HDFS 存储的文件 最终是有DataNode节点存储的

????????文件存储的时候,DataNode并不是把文件直接存储的,而是将文件按照文件大小划分为有一个的block块,文件都是以block块去在DataNode上存储的

????????Hadoop 1.x 默认是64M

????????Hadoop 2.x 默认是128M

????????block块大小默认是128M,但是可以更改,在hdfs-site.xml中配置一个配置项 dfs.blocksize 即可(注意单位是B字节)

????????Notes:HDFS默认有一个备份机制,存储一个文件的时候,划分成不同的 block 块,每一个 block 块都会备份,默认HDFS备份三份,可以通过修改 hdfs-site.xml 中配置一个配置项 dfs.replication 即可

3. SecondaryNameNode (第二名称节点)

????????是NameNode的小助手,帮助 NameNode 去合并日志文件和镜像文件。但是注意 SecondaryNameNode 虽然叫第二名称节点,但它永远是第二,永远代替不了 NameNode。而且在一般情况下,NameNode 和 SecondaryNameNode 在分布式环境下不在一台节点下NameNode 和 SecondaryNameNode、DataNode 都是需要内存运行的

四、HDFS传输文件方式

HDFS是一个分布式文件存储系统,那么必须可以上传文件和下载文件

不管是通过命令去操作,还是 Java API操作,都必须把 HDFS集群启动起来

通过 HDFS 命令的方式上传和下载

语法:

hdfs 操作符 文件相关信息

NotesHDFS是一个分布式文件存储系统,文件系统路径也是从 / 这个根路径开始,只不过 / 根路径默认是没有任何文件的

案例:

# 查看这个路径下有哪些文件和文件夹
hdfs dfs -ls / hdfs 上的文件夹路径???????????

#? 创建某个文件夹,如果这个文件夹有父目录,父目录不存在,则会报错
hdfs dfs -mkdir 文件名???????????????????????????????

# 若要在空目录下创建目录,需要加 -p 选项
hdfs dfs -mkdir -p 文件名?

# 将Linux本地的文件上传到HDFS指定目录下
hdfs dfs -put linux本地文件路径 /上传文件路径

# 将HDFS上的一个文件下载到Linux本地
hdfs dfs -get /HDFS上的要下载的路径 Linux本地的路径

?

五、HDFS常用命令

  • -help:输出这个命令参数? ?

bin/hdfs dfs -help rm

  • -ls: 显示目录信息

hadoop fs -ls /

  • -mkdir:在hdfs上创建目录

# -p参数代表递归创建
hadoop fs? -mkdir? -p? /aaa/bbb/cc/dd

  • -moveFromLocal从本地剪切粘贴到hdfs

hadoop? fs? - moveFromLocal? /home/hadoop/a.txt? /aaa/bbb/cc/dd?

  • -moveToLocal:从hdfs剪切粘贴到本地(尚未实现)

[uek@node2 hadoop-2.8.5]$ hadoop fs -help moveToLocal
-moveToLocal <src> <localdst> :
Not implemented yet?

  • --appendToFile :追加一个文件到已经存在的文件末尾

hadoop? fs? -appendToFile? ./hello.txt? /hello.txt?

  • -cat :显示文件内容

hadoop fs -cat /aaa/bbb/cc/dd/test.txt?

  • -tail:显示一个文件的末尾

hadoop? fs? -tail? /weblog/access_log.1?

  • -chgrp 、-chmod、-chown:linux文件系统中的用法一样,修改文件所属权限

hadoop? fs? -chmod? 666? /hello.txt
hadoop? fs? -chown? someuser:somegrp?? /hello.txt

  • -copyFromLocal:从本地文件系统中拷贝文件到hdfs路径去:

```sh
hadoop? fs? -copyFromLocal? ./jdk.tar.gz? /aaa/

  • -copyToLocal:从hdfs拷贝到本地

hadoop fs -copyToLocal /user/hello.txt ./hello.txt

  • -cp :从hdfs的一个路径拷贝到hdfs的另一个路径

hadoop? fs? -cp? /aaa/jdk.tar.gz? /bbb/jdk.tar.gz.2

  • -mv:在hdfs目录中移动文件

hadoop? fs? -mv? /aaa/jdk.tar.gz? /

  • -get:等同于copyToLocal,就是从hdfs下载文件到本地

hadoop fs -get /user/hello.txt ./

  • -getmerge :合并下载多个文件,比如hdfs的目录 /aaa/下有多个文件:log.1, log.2,log.3,…

hadoop fs -getmerge /aaa/log.* ./log.sum

  • -put:等同于copyFromLocal

hadoop? fs? -put? /aaa/jdk.tar.gz? /bbb/jdk.tar.gz.2??????????????

  • -rm:删除文件或文件夹

??????????????hadoop fs -rm -r /aaa/bbb/

  • -rmdir:删除空目录

??????????????hadoop? fs? -rmdir?? /aaa/bbb/ccc

  • -df :统计文件系统的可用空间信息

??????????????hadoop? fs? -df? -h? /

  • -du:统计文件夹的大小信息

?????????????[uek@node2 hadoop-2.8.5]$ hadoop fs -du -s -h /user/uek/wcinput
188.5 M? /user/uek/wcinput
[uek@node2 hadoop-2.8.5]$ hadoop fs -du? -h /user/uek/wcinput
188.5 M? /user/uek/wcinput/hadoop-2.8.5.tar.gz
97?????? /user/uek/wcinput/wc.input

  • -count:统计一个指定目录下的文件节点数量

??????????????hadoop fs -count /aaa/
[uek@node2 hadoop-2.8.5]$ hadoop fs -count /user/uek/wcinput
???? 1? ? ? ?2????????? 197657784 /user/uek/wcinput
嵌套文件层级;? 包含文件的总数

  • -setrep:设置hdfs中文件的副本数量

hadoop fs -setrep 3 /aaa/jdk.tar.gz

# 这里设置的副本数只是记录在namenode的元数据中,是否真的会有这么多副本,还得看datanode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。?

?

六、如何实现启动HDFSyarn的时候不输入密码

? ? ? ?解决方式就是让电脑知道自己的登录密码或者是别的电脑的登录密码? 这样的花启动的时候就不需要输入密码;

? 配置ssh免密钥登录----配置不使用密码可以登录??

??核心思想:就是在当前用户的家目录的.ssh目录下生成一个公钥私钥

??然后讲公钥传给别人? 那么别人再去登录你的时候就可以不用输入密码了

?? 1、生成密钥

?????? 必须在~/.ssh这个目录下执行命令? ssh-keygen -t rsa

?? 2、怎么把密码给别人

??????? ssh-copy-id 你要给的主机ip

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 00:16:32  更:2021-07-28 00:16:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 22:22:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码