Java大数据开发:Hadoop-HDFS

news/2024/5/20 2:22:11 标签: 大数据, hadoop, hdfs, kafka

在刚开始的学习中,曾经介绍过,hadoop组成部分包含HDFS,MapReduce,下面我们就来看一下HDFS吧。

HDFS概念

1.1 概念

HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

HDFS的设计适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。

1.2 组成

(1)HDFS集群包括,NameNode和DataNode以及Secondary Namenode。

(2)NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。

(3)DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode上存储多个副本。

(4)Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

1.3 HDFS 文件块大小

HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M。

HDFS的块比磁盘的块大,其目的是为了最小化寻址开销。如果块设置得足够大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。因而,传输一个由多个块组成的文件的时间取决于磁盘传输速率。

如果寻址时间约为10ms,而传输速率为100MB/s,为了使寻址时间仅占传输时间的1%,我们要将块大小设置约为100MB。默认的块大小实际为64MB,但是很多情况下HDFS使用128MB的块设置。块的大小:10ms*100*100M/s = 100M

如果你对大数据开发感兴趣,想系统学习大数据的话,可以加入大数据技术学习交流扣扣君羊:522189307

 

HFDS命令行操作

启动集群:

  •  
  •  
[root@hadoop100 hadoop-2.7.2]$ sbin/start-dfs.sh[root@hadoop101 hadoop-2.7.2]$ sbin/start-yarn.sh

1、基本语法

bin/hadoop fs 具体命令  OR  bin/hdfs dfs 具体命令

2、参数大全

bin/hadoop fs

3、常用命令实操

(1)-help:输出这个命令参数

bin/hdfs dfs -help rm

(2)-ls: 显示目录信息

hadoop fs -ls /

(3)-mkdir:在hdfs上创建目录

hadoop fs  -mkdir  -p  /aaa/bbb/cc/dd

(4)-moveFromLocal从本地剪切粘贴到hdfs

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

(5)-moveToLocal:从hdfs剪切粘贴到本地

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

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

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

(7)-cat :显示文件内容

(8)-tail:显示一个文件的末尾

hadoop  fs  -tail  /weblog/access_log.1

(9)-text:以字符形式打印一个文件的内容

hadoop  fs  -text  /weblog/access_log.1

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

hadoop  fs  -chmod  666  /hello.txt

hadoop  fs  -chown  someuser:somegrp   /hello.txt

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

hadoop  fs  -copyFromLocal  ./jdk.tar.gz  /aaa/

(12)-copyToLocal:从hdfs拷贝到本地

hadoop fs -copyToLocal /aaa/jdk.tar.gz

(13)-cp :从hdfs的一个路径拷贝到hdfs的另一个路径

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

(14)-mv:在hdfs目录中移动文件

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

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

hadoop fs -get  /aaa/jdk.tar.gz

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

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

(17)-put:等同于copyFromLocal

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

(18)-rm:删除文件或文件夹

hadoop fs -rm -r /aaa/bbb/

(19)-rmdir:删除空目录

hadoop  fs  -rmdir   /aaa/bbb/ccc

(20)-df :统计文件系统的可用空间信

hadoop  fs  -df  -h  /

(21)-du统计文件夹的大小信息

hadoop  fs  -du  -s  -h /aaa/*

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

hadoop fs -count /aaa/

(23)-setrep:设置hdfs中文件的副本数量

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

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


http://www.niftyadmin.cn/n/1575021.html

相关文章

网络流量分析工具packetbeat

需求:由于我们需要分析***服务器上的一些流量行为。之前也没接触过这方面的知识。尝试去elasticsearch官网上找。还真找到一个插件支持介绍:packbeat是一个开源的实时网络抓包与分析框架,内置了很多常见的协议捕获及解析,如HTTP、…

Java大数据开发:Hadoop-集群时间同步

hadoop集群我们已经搭建好了,但是集群在执行任务的时候,必须要保持时间同步,所以,这一节,我们就要进行集群时间同步。 集群时间同步 注意:在root用户下执行 时间同步的方式:找一个机器&#xf…

Capistrano + Puma + Apache

系统中的80端口已经因为使用lampp被占用,故不能再次使用nginx来做解析: deploy/stagingserver "yan.com", user: "root", roles: %w{app db web}, my_property: :my_valueset :branch, masterset :rails_env, productionset :deploy…

学完大数据开发一般可以胜任哪些工作?

“ 这个时代是大数据时代,也是大数据人才稀缺的时代。由于中国人才缺口比较大,大数据也迅速成为行业和市场的热点,更多的企业无论是对人才的招聘还是在培训都成了刚需,这也促使大数据人才的薪资在同岗位中是最高的,掌…

php 事务处理,ActiveMQ的发送消息,与处理消息

可以通过链式发送->处理->发送。。。的方式处理类似事务型业务逻辑 比如 发送一个注册消息,消息队列处理完注册以后,紧接着发送一个新手优惠券赠送,赠送完再发一个其它后续逻辑处理的消息等待后续队列处理 php ActiveMQ的发送消息,与处…

解决 Spark 数据倾斜的 8 大实用方法

| 本文经授权转载自vivo互联网技术 什么是数据倾斜? 对 Spark/Hadoop 这样的分布式大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜。 对于分布式系统而言,理想情况下,随着系统规模(节点数量&#xf…

非科班转行大数据开发--最详细的学习路线

大数据开发学习之路分为三个阶段 主要是根据面试重点,分成阶段性学习。 第一阶段:Java部分 Java基础、JVM、并发、数据库、缓存、设计模式、计算机网络、操作系统、Linux第二阶段:大数据框架 MapReduce、YARN、HDFS、HBase、Hive、Zookeeper…

判断一个三位数的平方的后三位还是自己

贴吧有个求助帖问 625这个数字很特别,625的平方等于390625,刚好其末3位是625本身,除了625,还有其他的3位数又这个特征吗?用php书写 然后很简单的当然是循环判断了,我提出第一种方案 循环,求平方…