Hadoop最完整最全的学习笔记(HDFS)

本文详细介绍了Hadoop HDFS的学习笔记,包括HDFS块大小的设定依据,常用shell命令,客户端操作,API使用,数据流过程,NameNode与SecondaryNameNode的工作机制,以及NameNode故障处理和DataNode的角色。内容涵盖HDFS的基本概念、操作和维护,是学习Hadoop的宝贵资料。
摘要由CSDN通过智能技术生成

一:Hadoop上block的大小的规定

在说hadoop上block规定的时候要提前说一下,就是在hadoop中,文件在物理上是分块储存(也就是block),块的大小可以通过配置参数(dfs.blocksize)来贵定,默认大小在hadoop2.x中是128M,老版本中是64M

那么我们为什么要定义block的大小呢,在运算的过程中,寻址时间为传输时间的1%的时候为最佳状态,也就是说我们要使机器运行的更快可以通过定义block的大小来改善。

那么默认大小128M是怎么来的呢?
目前磁盘普遍的传输速率是100M/s,寻址时间约为10ms,传输时间约为1s,取整后为128M

块的设置不能设置太大,也不能设置太小
1、hdfs的块设置太小,会增加寻址时间,程序一直在找块开始的位置
2、如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需要的时间,导致程序在出来这块数据的时候会变得非常慢。

总结:HDFS块大小的设置主要取决于磁盘的传输速率

二:Hadoop常用的shell命令

这里使用的命令如果没有注释就是在解压后的hadoop包下进行操作
(0)启动hadoop集群:

sbin/start-dfs.sh
sbin/start-yarn.sh(在resourcemanager的机器上进行启动命令)

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

hadoop fs -help rm

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

hadoop fs -ls /

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

hadoop fs -mkdir -p(创建多级目录需要加) /tengxun/lianmeng

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

touch yasuo.txt
hadoop fs -moveFromLocal ./yasuo.txt /tengxun/lianmeng

(5)-appendToFile:追加一个文件到已存在的文件末尾(在hadoop中是没有修改这个操作的,只能进行追加)

touch ruiwen.txt
vim ruiwen.txt

写入
im your dad

hadoop -fs -appendToFile ruiwen.txt /tengxun/lianmeng/yasuo.txt

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

hadoop fs -cat /tengxun/lianmeng/yasuo.txt

(7)-chgrp(修改所有者的组)、-chomd(修改所有者的权限)、chown(修改所有者):Linux文件系统中的用法一样,修改文件所属权限

hadoop fs -chomd 666 /tengxun/lianmeng/yasuo.txt
hadoop fs -chown liniuxpawn:liniuxpawn /tengxun/lianmeng/yasuo.txt

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

hadoop fs -copyFromLocal README.txt

(9)-copyToLocal:从HDFS拷贝到本地

hadoop fs -copyToLocal /tengxun/lianmeng/yasuo.txt ./

(10)-cp:从HDFS的一个文件拷贝到HDFS的另一个路径下

hadoop fs -cp /tengxun/lianmeng/yasuo.txt /yanque.txt

(11)-mv:在HDFS目录中移动文件

hadoop fs -mv /yanque.txt /tengxun/lianmeng/

(12)-get:等同于copyToLocal,就是从HDFS下载到本地

hadoop fs -get /tengxun/lianmeng/yasuo.txt ./

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

hadoop fs -getmerge /tengxun/lianmeng/* ./yinxionglianmeng.txt

(14)-put:等同于copyFromLocal

hadoop fs -put ./yinxionglianmeng.txt /tengxun/lianmeng/

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

hadoop fs -tail /tengxun/lianmeng/yasuo.txt

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

hadoop fs -rm /tengxun/lianmeng/yasuo.txt
hadoop fs -rmr(递归删除) /tengxun/lianmeng/

(17)-rmdir:删除空目录

hadoop fs -rmdir /tengxun

(18)-du:统计文件夹的信息

hadoop fs -du /                (默认是显示目录下的文件以及文件夹以及文件夹下的所有文件,单位是B)
hadoop fs -du -h /            (在原有的基础上修改了单位,可以更直观的查看大文件的大小)
hadoop fs -du -h -s /         (直接查看路径下此文件的大小)

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

hadoop fs -setrep 3 /tengxun/lianmeng/yasuo.txt

三:HDFS客户端操作

(1)客户机环境准备

准备好在windows环境下编译好的hadoop源码

这里有文章具体讲述了如何在windows环境下编译hadoop源码
windows10下编译hadoop源码
windows7下编译hadoop源码

配置hadoop的环境变量

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

打开eclipse配置maven

1.创建一个maven简单的项目
在pom.xml文件里写入

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>RELEASE</version>
		</dependency&g
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值