若没有猛然的欢喜,自然也不会有悲痛的来袭
今天看了一下大数据的知识,打算之后的一段时间都会学一下大数据的知识
1 : HDFS的概念
HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色
适合的场景 : 一次写入;多次读出的操作;并不支持文件的修改.适合用来做数据分析.
2 : 组成
1)HDFS集群包括,NameNode和DataNode以及Secondary Namenode。
2)NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。
3)DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode上存储多个副本。
4)Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
3:HDFS 文件快的大小
HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M
HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。如果块设置得足够大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。因而,传输一个由多个块组成的文件的时间取决于磁盘传输速率。
如果寻址时间约为10ms,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们要将块大小设置约为100MB。默认的块大小实际为64MB,但是很多情况下HDFS使用128MB的块设置。
关键来了;关键来了
HDFS 命令的执行
hadoop fs 具体的命令
参数:
hadoop fs
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] <localsrc> ... <dst>]
[-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] <path> ...]
[-cp [-f] [-p] <src> ... <dst>]
[-createSnapshot <snapshotDir> [<snapshotName>]]
[-deleteSnapshot <snapshotDir> <snapshotName>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] <path> ...]
[-expunge]
[-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getfacl [-R] <path>]
[-getmerge [-nl] <src> <localdst>]
[-help [cmd ...]]
[-ls [-d] [-h] [-R] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal <localsrc> ... <dst>]
[-moveToLocal <src> <localdst>]
[-mv <src> ... <dst>]
[-put [-f] [-p] <localsrc> ... <dst>]
[-renameSnapshot <snapshotDir> <oldName> <newName>]
[-rm [-f] [-r|-R] [-skipTrash] <src> ...]
[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
[-setrep [-R] [-w] <rep> <path> ...]
[-stat [format] <path> ...]
[-tail [-f] <file>]
[-test -[defsz] <path>]
[-text [-ignoreCrc] <src> ...]
[-touchz <path> ...]
[-usage [cmd ...]]
然后一些常用的指令记录
1: 显示目录信息
hadoop fs ls /
2 : 在hdfs 上创建目录
hadoop fs mkdir -p /gavin
3:从本地剪切粘贴到hfds -moveFromLocal
hadoop fs -moveFromLocal a.txt /gavin
4: 从hdfs剪切粘贴到本地
hadoop fs -moveToLocal /gavin/a.txt /yang
5 : 追加一个文件到已经存在末尾了
hadoop fs -appendToFile ./a.txt /a.txt
6 : 显示全部内容
hadoop fs -cat hdfs上的文件地址
7: 显示末尾的文件
hadoop fs -tail /gavin/access_log.1
8 : 已字符形式打印一个文件的内容
hadoop fs -text /gavin/access_log.1
9 : -chgrp 、-chmod、-chown:linux文件系统中的用法一样,修改文件所属权限
hadoop fs -chmod 666 /gavin/a.txt
hadoop fs -chown user:user /gavin/a.txt
10 : 从本地文件系统中拷贝文件到hdfs路径去 copyFromLocal
hadoop fs -copyFromLocal ./yang.txt /gavin/
11 : 从hfds拷贝到本地 copyToLocal
hadoop fs -copyToLocal /gavin/yang.txt
12 : 从hdfs 的一个路径拷贝到hdfs的宁外一个路径 cp
hadoop fs cp /gavin/yang.txt /lwf/yang.txt
13 : 在hdfs目录中移动文件
hadoop fs -mv /gavin/yang.txt /
14 : 从hdfs下载文件到本地,等同于copyToLocal
hadoop fs get /gavin/yang.txt
15 : 合并并下载多个文件 -getmerge 比如 hdfs目录下有yang1.1,yang1.2....
hadoop fs -getmerge /gavin/yang1.* ./yang.sum
16 : 删除文件或者文件夹 -rm
hadoop fs -rm -f /gavin/
17 : 删除空目录
hadoop fs -rmdir /gavin/
18 : 统计文件系统的可用空间 -df
hadoop fs -df - /
19 : 统计文件夹的大小信息 -du
hadoop fs -du -s -h /gavin/*
20 : 统计一个目录下的文件节点数量
hadoop fs -count /gavin/
21 : 设置hdfs中文件的副本数量
hadoop fs -setrep 3 /gavin/yang.txt
这里设置的副本数只是记录在namenode的元数据中,是否真的会有这么多副本,还得看datanode的数量。因为目前只有3台设备,最多也就3个副本,只有节点数的增加到10台时,副本数才能达到10。
好啦;今天的基本指令操作就更新到这里.
然后附上一个单机安装hadoop的地址https://www.cnblogs.com/zhangyinhua/p/7647686.html