经过前期的软件和应用程序的安装,我学习了一下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
来源:https://www.cnblogs.com/ssxzwwsjz/p/12241432.html