ITPub博客

首页 > 大数据 > 数据分析 > 好程序员大数据学习路线分享hdfs学习干货

好程序员大数据学习路线分享hdfs学习干货

原创 数据分析 作者:好程序员IT 时间:2019-08-20 16:06:27 0 删除 编辑

好程序员大数据学习路线分享hdfs学习干货,能处理大数据的技术:


Hadoop离线计算  spark实时计算  strom流式计算


一、hadoop背景


Apache Hadoop 是一个可靠的,可扩展的分布式计算开发软件


Apache Hadoop 可以理解为一个框架. 它允许使用简单的编程模型来计算分布式的大型数据集合(海量数据)


包括哪些模块:


Hadoop Common : Hadoop的一些模块工具


Hadoop分布式文件系统(HDFS):是一种分布式文件系统,可以提供应用程序数据的高吞吐量的访问


Hadoop YARN:作业调度和集群资源管理的框架


Hadoop MapReduce:一种用于处理大型数据集的基于YARN的系统(分布式计算框架)


ps:MapReduce论计算能力 很一般而且数据慢


上述的每个模块都有自己独立的功能,而模块和模块之间又有一定的联系


二、


Hadoop在大数据,云计算中位置和关系


云计算是分布式计算,并行技术,网络计算,多核计算,网络存储,虚拟化,负载均衡等传统的计算机技术和互联网技术融合的一个产物


现阶段云计算的底层两大技术支撑"虚拟化"和"大数据技术"


而Hadoop则是云计算平台即服的解决方案


ps:laaS(基础设施即服务) PaaS(平台即服务) S aaS(软件即服务)


三、Hadoop案例:


1. 大型网站web服务器的日志分析:一个大型网站的web服务器,每5分钟就收录的点击量就高达800GB,峰值点击可以达到每秒900万次每隔5分钟将数据装载到内存中,高速计算网站的热点url,并将这些信息反馈给前端缓存服务器,以提高缓存命中率

2. 运营商流量分析:每天的流量数据在2TB-5TB之间,拷贝到HDFS上,通过交互式分析引擎模板,能够进行几百个复杂的数据清洗和报表任务,总时间类似的硬件配置的小集群(DB2)要快2-3倍

3. 城市交通卡口视频监控信息实时分析:采用基于流式进行全省范围的交通卡口的视频监控的信息进行实时的分析,警告和统计,可以对全省范围内未年检和套牌车辆进行300毫秒左右就可以得到结论并实时进行警告


四、Hadoop生态圈


重要组件


1. HDFS:分布式文件系统

2. MapReduce:分布式计算框架

3. Hive:基于大数据技术的SQL数据仓库工具(文件系统+运算框架)

4. HBase:基于Hadoop的分布式海量数据数据库(NOSQL非关系型数据库,列式存储)

5. Zookeeper:分布式协调服务基础组件

6. Oozie:工作流调度框架

7. Sqoop:数据导入导出工具

8. Flume:日志数据采集框架

9. Mahout:基于Mapreduce/Spark/flink等分布式框架的机器学习算法库


分布式系统


一、分布式软件系统


分布式软件系统是由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点所组成的系统.  分布式系统的出现为了用廉价,普通的机器完成单个计算机完成的计算/存储等任务,其目的就是充分利用计算机来处理更多的任务


二、常用的分布式软件系统的案例:


Web服务器集群,单台服务器的性能和资源时优先,支持的连接并发数也是有上限,因此必须采用多态服务器集群的方式才能提供并发数据和计算机计算速度


每台web服务器会分配一个域名,肯定是同一个域名的进入的是同一个入口


百度有上千(甚至更多)台web服务器,此时我们使用www.baidu.com一个入口进行访问,至于哪台服务器提供我们服务,具体的就需要底层实现一个技术,负载均衡


离线数据的分析流程


web日志数据挖掘


案例分析:


网站点击流量日志数据挖掘系统


需求:


web点击流日志,包含着网站运营的重要信息,通过日志的分析,我们可以知道网站的访问量,那个网页访问人数的最多,那个网页最有价值,广告转换率,访客的来源信息,访客的终端信息


数据来源:


获取方式,在页面预处理一段js程序,为了页面想要坚挺的标签绑定时间,只要用户点击或触发,就可以得到用户的信息,并产生日志文件


数据处理流程:


1. 数据采集:定制开发程序或使用Flume

2. 数据预处理:定制开发MapReduce程序运行在Hadoop计算

3. 数据仓库计算:基于Hadoop智商使用hive技术完成数仓 数仓中会完成数据清洗(ETL)

4. 数据导出:需要使用sqoop将数据导出

5. 数据可视化:就由web人员完成  ps:可以使用Oozie来辅助开发


HDFS分布式文件系统


HDFS的源于Google的一篇技术论文GFS,HDFS时GFS的一个克隆 HDFS全称 Hadoop Distributed /dɪ'strɪbjʊtɪd/(分布式) File System HDFS易于扩展的分布式文件系统,运行在大量普通廉价的机器上,提供内容错机制,为大量用户提供性能不错的文件 存取服务


HDFS的优点和缺点


优点:


1.高可靠性:Hadoop按位存储和处理数据的能力强


2.高扩展性:Hadoop是在可用的计算机集群中分配数据完成计算计算任务


3.高效性: Hadoop能够站在节点之间动态的移动数据,并保证每个节点的动态平衡


4.高容错性: Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配


缺点:


1.不适合低延迟访问


2.无法高效存储大量小文件


3.不支持多用户写入即任意修改文件


HDFS的重要特性


1.HDSF中文件在物理上是分块存储(block),块的大小可以通过参数(dfs.blocksize)来设置, 默认大小Hadoop2.x版本中默认大小128M , hadoop1.x版本即使64M


2.HDFS文件系统会给客户端提供一个统一的抽象目录树,通过客户端对相应路径下的文件进行访问


3.目录结构及文件的分块信息(元数据)都由NameNode节点承担 NameNode是HDFS集合中的主节点,负责维护整个HDFS文件系统的目录树,以及每一个路径所对应的Block块信息 (block是id以及所在DataNode服务器)


4.文件的各个block块存储的管理DataNode来节点进行管理 DataNode是HDFS集群的从节点,每一个Block都可以在多个DataNode上存储多个副本(副本数量是可以设置 dfs.replication)


HDSF在Hadoop中的存储模型


HDSF是面向文件, 文件会线性切割成块(Block) 每一个块都有一个偏移量offset(byte),偏移量是描述这个块是属于这个文件的那一个部分 一个大文切分成很多块,每 个块面临是这个文件的位置,也就是说每一个块的第一个字节对应着这个大文件某个位置的字 节,这个字节就是偏移量 Block分散存储到集群节点中 单一文件block的大小是一致的,也就是说一个大的文件,定义的每个块的大小是固定的,所有切出来的文件大小也是固定的.但若文件最后剩余大小和块的大小不一致,那么会按照块的大小占位,实际存储剩余文件的大小,也就是说在内存中开辟的空间是实际文件的大小Block可以设置的副本数,副本分散在不同的节点中,副本数不要超过节点的数量 副本相当于一个备份(拷贝),HDFS的默认副本数量是3,副本的额作用就是保证文件丢失的情况下,可以在其他节点中 得到同一个信息,所以绝对不能出现副本和块出现在同一个节点 文件上传的时候可以设置Block块的大小和副本的而数量,已经上传的block副本数可以调整,但是块的是不变,只支持 一写入 但是可以多次读取,若想追加数据只能在最后一个节点中添加


HDFS读写流程

hdfs读流程 :


1.client链接namenode,查看元数据,找到数据的存储位置。


2.client通过hdfs的api并发读取数据。


3.关闭连接。

hdfs写流程 :


1.client链接namenode存数据


2.namenode记录一条数据位置信息(元数据),告诉client存哪。


3.client用hdfs的api将数据块(默认是64M)存储到datanode上。


4.datanode将数据水平备份。并且备份完将反馈client。


5.client通知namenode存储块完毕。


6.namenode将元数据同步到内存中。


7.另一块循环上面的过程。  


HDFS文件系统存在读写权限


r --> read w --> writer x --> execute


--- | --- | --- 可以看成是一个八进制 1代表有权限 0代表没有权限


 rxw | r-- | -w- --> 数字的形式 111 | 100 | 010 ---> 742


HDFS的Shell命令:


ps:无论看到是hdfs dfs 形式还是 hadoop fs这种形式 都可以 完成对HDFS的操作


1.向HDSF上传文件


 put: 从本地文件系统赋值单个或多个原路径目标文件到HDFS文件系统中


hdfs dfs -put 本地文件路径 HDFS文件系统路径


2.将HDFS文件系统中的文件下载回来


get:从HDFS文件系统中将文件复制到本地文件系统中


hdfs dfs -get HDFS文件系统路径 本地文件系统路径


ps:HDFS有一个和put和get类似的而方法 copyFromlocal 相当于put 和 copyTolocal 相当于 get


3.查看HDFS文件系统中的文件内容


cat:查看HDFS文件系统中的文件内容


hdfs dfs -cat HDFS文件系统中文件的路径


ps:不要查看非文件 在查看文件的同时追加文件到本地路径


4.HDFS文件系统中进行复制操作


cp:将HDFS文件系统中的文件进行复制,复制到HDFS系统中


hdfs dfs -cp 源HDFS文件系统中的文件路径 目标HDFS文件系统中的路径


5.HDFS文件系统中的文件进行移动操作


mv:将源文件移动目标路径,这个命令可允许有多个源路径,此时目标路径必须是一个文件夹(目录) 不允许不同的文件系统互相移动文件


hdfs dfs -mv 源HDFS文件系统中的文件路径 目标HDFS文件系统中的路径


相当于剪切


6.查看HDFS文件系统中文件的大小


hdfs dfs -du HDFS文件系统中路径中的一个文件


7.在HDSF系统中创建文件夹


mkdir 创建文件夹


hdfs dfs -mkdir HDFS文件系统中的路径


8.查看HDFS文件系统下的所有文件


hdfs dfs -ls HDFS文件系统路径


9.删除HDFS文件系统中的目录或文件


ps:只能是单个文件 或 空目录


hdfs dfs -rm HDFS文件系统路径


若参数文件夹中有多个文件 加 -r hdfs dfs -rm -r HDFS文件系统路径


10.更改文件的权限


r可读 w可写 x可执行


--- | ---| --- 1代表有权 0代表没有权限 所有每三位可以作为一个八进制处理


例如 rwx | rwx | rwx


111 | 111 | 111


 =========================


7 7 7


hdfs dfs -chmod 权限值 HDFS文件系统路径


若需要更改目录下权限都需要修改


hdfs dfs -chmod -R 权限值 HDFS文件系统路径下的文件夹


ps:并且文件夹下的所有子文件和文件夹都会被修改


11.回收站


Hadoop回收站trash,默认是关闭的,建议开启


[]:


ps:默认为是没有权限操作回收站的,所以操作之前开启权限


 hdfs dfs -chmod -R 777 HDFS文件系统中回收站的路径


例子:hdfs dfs -chmod -R 777 /user 删除文件后,发现误删了,恢复文件


hdfs dfs -mv HDFS文件系统中回收站的路径下的文件   HDFS文件系统路径


清空回收站


hdfs dfs -rm -r HDFS文件系统中回收站的路径


例如:hdfs dfs -rm -r /user/root/.Trash


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913892/viewspace-2654305/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
欢迎关注公众号:好程序员特训营 web前端教程分享 723729549 大数据教程分享 703503210

注册时间:2019-03-20

  • 博文量
    361
  • 访问量
    235933