大数据之Hadoop

泪湿孤枕 提交于 2020-01-29 22:04:58

经过前期的软件和应用程序的安装,我学习了一下Linux的基本命令,然后开始安装

hadoop,我看的是尚硅谷的大数据视频,我有源码,软件的压缩包,笔记等等很多

的资料,也是在B站群正常购买的,有想要的,请私聊我呀!!

然后就是开始真正的大数据学习,学习大数据,最显要了解Hadoop以及Hadoop的

生态圈,当然这里的东西特别多,没有经年累月的学习是学习不完的,经过和队友的

商议,和tzp学长的建议,他告诉我先学习一下Hadoop的hdfs,分布式文件管理系统,

和mapredece,计算框架就算是大数据入门了,所以我看了网上一些配置的教程感觉

这个配置超级麻烦,所以,我还是照着视频讲解的一步一步的配置吧,这里要为尚硅谷

的那个2018讲大数据的老师点赞,我也建议大家看尚硅谷大数据2018年的课程2019最

新版的我也看了,我认为里面的视频讲解的不太细致,因为那个老师直接拿已经安装好

的伪分布式的hdfs开始讲,初学者一定会很蒙,所以建议大家去b站上搜索2018的。按

照上面的视频一步一步的操作,再加上我自己手里的文档,几乎可以做到0失误。

下面我要说一下我对HDFS分布式文件系统的理解。

分布式文件管理系统会提供多个用户的服务器,而且一般是有备份和容错功能的,它是由

java语言实现的分布式,课横向扩展的文件系统。Namenode是中心服务器,它一般管理

文件系统的命名空间,和客户端对文件的访问。Datanode是指在Namenode的调度下,

责处理文件系统客户端对文件进行的操作,HDFS的优点是:廉价,容错率高(它有多个副

本,副本丢失后自动回复),可以实现存储海量数据,数据具有一致性,可以顺序访问,适

合批处理。缺点就是:不适合低延时数据访问,不适合小文件的存取,仅支持日志,不支持

修改文件。

 

HDFS集群分为两大角色:NameNode、DataNode (Secondary Namenode,NameNode负

责管理整个文件系统的元数据(整个hdfs文件系统的目录树和每个文件的block信息)DataNode

负责管理用户的文件数据块文件会按照固定的大小(blocksize)切成若干块后分布式存储在若

 

干台datanode上每一个文件块可以有多个副本,并存放在不同的datanode上Datanode会定期向

Namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本数量HDFS

的内部工作机制对客户端保持透明,客户端请求访问HDFS都是通过向namenode申请来进行。

如下图是具体工作原理图:(图片选自网络)

HDFS基础命令介绍:

-help
功能:输出这个命令参数手册

-ls
功能:显示目录信息
示例: hadoop fs -ls hdfs://hadoop-server01:9000/
备注:这些参数中,所有的hdfs路径都可以简写
–>hadoop fs -ls / 等同于上一条命令的效果

==-mkdir ==
功能:在hdfs上创建目录
示例:hadoop fs -mkdir -p /aaa/bbb/cc/dd

-moveFromLocal
功能:从本地剪切粘贴到hdfs
示例:hadoop fs - moveFromLocal /home/hadoop/a.txt /aaa/bbb/cc/dd

-moveToLocal
功能:从hdfs剪切粘贴到本地
示例:hadoop fs - moveToLocal /aaa/bbb/cc/dd /home/hadoop/a.txt

–appendToFile
功能:追加一个文件到已经存在的文件末尾
示例:hadoop fs -appendToFile ./hello.txt hdfs://hadoop-server01:9000/hello.txt
可以简写为:
Hadoop fs -appendToFile ./hello.txt /hello.txt

-cat
功能:显示文件内容
示例:hadoop fs -cat /hello.txt

-tail
功能:显示一个文件的末尾
示例:hadoop fs -tail /weblog/access_log.1

-text
功能:以字符形式打印一个文件的内容
示例:hadoop fs -text /weblog/access_log.1

-chgrp
-chmod
-chown
功能:这三个命令跟linux文件系统中的用法一样,对文件所属权限
示例:
hadoop fs -chmod 666 /hello.txt
hadoop fs -chown someuser:somegrp /hello.txt

-copyFromLocal
功能:从本地文件系统中拷贝文件到hdfs路径去
示例:hadoop fs -copyFromLocal ./jdk.tar.gz /aaa/

-copyToLocal
功能:从hdfs拷贝到本地
示例:hadoop fs -copyToLocal /aaa/jdk.tar.gz

-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 /aaa/jdk.tar.gz

-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
功能:统计文件夹的大小信息
示例:
hadoop fs -du -s -h /aaa/*

-count
功能:统计一个指定目录下的文件节点数量
示例:hadoop fs -count /aaa/

-setrep
功能:设置hdfs中文件的副本数量
示例:hadoop fs -setrep 3 /aaa/jdk.tar.gz

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!