大数据学习笔记(一):Hadoop笔记2

提示:有一些是参考了他人的总结,第二份笔记主要是对HDFS进行一个总结,后续将对mapreduce及其他环节进行详细的介绍和总结,整个大数据的路线将以python为主,有错误的地方欢迎批评指正。


大数据学习笔记(1):Hadoop笔记二

第二部分主要是对HDFS的学习


`

一、HDFS

HDFS(Hadoop distributed file system):分布式文件系统,主要用来存储海量的数据(通过目录树来定位文件)
此外:适合一次写入,多次读取,并且不支持文件的修改。只适合用来做数据分析,不适合做网盘应用

1.简介

需要一种系统来管理多台机器上的文件,这个就叫做分布式文件管理系统,HDFS是典型的一种。

2.优缺点

2.1优点

1.高容错性:

(1)数据多副本保存(一般为3)
(2)某个副本丢失后自动恢复

2.适合处理大数据:

(1)处理PB级大数据
(2)处理大规模文件

3.可构建在廉价机器上

2.2缺点

1.不适合低延迟数据访问:

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

(1)存储大量小文件会占用NM内存来进行存储文件目录及块信息。(NM内存总是有限的)
(2)小文件存储的寻址时间会超过读取时间

3.不支持并发写入,文件修改

(1)一个文件只能一个写,不允许多线程同时写
(2)仅支持数据append(追加),不支持文件随机修改

二、HDFS架构

1.HDFS架构

HDFS架构

1.NameNode(nn):master

(1)管理HDFS的命名空间
(2)配置副本
(3)处理客户端client的请求
(4)维护文件名→block映射关系
(5)维护block→dn映射关系

2.DataNode(dn):slave

(1)存储实际数据块
(2)执行数据块的读写操作

3.client:客户端

(1)文件切分。文件上传至HDFS时,client将文件切分成一个一个的block,之后上传
(2)与NM交互,获取文件位置信息
(3)与DN交互,读取或者写入数据
(4)提供一些命令来管理HDFS,例如将NM格式化
(5)通过命令来访问HDFS,进行增减删查

4.Secondary NameNode(SNN):不是NM备份

(1)辅助NM,分担工作量,eg:定期合并Fsimage和Edits,并推送给NM
(2)紧急情况下可辅助恢复NM
(3)与DN交互,读取或者写入数据
(4)提供一些命令来管理HDFS,例如将NM格式化
(5)通过命令来访问HDFS,进行增减删查

2.HDFS参数等

HDFS中文件在物理上是分块存储(Block),可由(dfs.blocksize)配置。默认大小在老版本是64M,在2.0中是128M.

1.block不可设太小或者太大:

(1)太小的话会增加寻址时间
(2)太大的话,从磁盘传输数据的时间会明显大于定位这个块开始位置的时间,导致程序处理数据时会很慢。

3.HDFS读写数据

1.写数据:

(1)client通过Distributed FileSystem向NM请求上传文件,同时NM会检查目标文件是否存在,父目录是否存在
(2)NM返回是否可以上传
(3)client向NM请求第一个block上传至哪些DN上
(4)NM返回3个DN节点,分别为DN1,DN2,DN3,表示这几个节点来存储数据
(5)客户端通过FSDataOutputStream模块请求建立block传输通道,请求DN1上传数据,DN1收到请求后继续调用DN2,之后调用DN3,这个通道管道建立完成
(6)DN1,DN2,DN3逐级进行应答客户端:DN3应答成功后,DN2应答成功,最后DN1应答成功
(7)client向DN1上传第一个block,以packet为单位,DN1收到一个packet就会传给DN2,DN2传给DN3,DN1每传一个packet就会放入一个应答队列等待应答。
(8)当一个block传输完成,client再次请求NM上传第二个block的节点

2.读数据:

(1)client通过Distributed FileSystem向NM请求下载文件
(2)NM返回目标文件元数据
(3)client向DN1请求读数据
(4)DN1向client传输数据
(5)client向DN2请求读数据
(6)DN12向client传输数据

3.机架感知:副本放置策略

(1)第一个副本:与client相同的节点(如果client是集群外的机器,就随机选择选)
(2)第二个副本:放在不同机架的节点
(3)第三个副本:与第二个副本相同的机架,但不同的节点

三、HDFS实操

需要先进行相关软件的安装配置具体包括。

软件版本
jdk1.8.0
Hadoop2.6.5

1.指令准备:

[root@master sbin]# cd $HADOOP_HOME
[root@master hadoop-2.6.5]# cd sbin/
[root@master sbin]# start-all.sh
[root@master sbin]# jps
#master节点
1689 SecondaryNameNode
1834 ResourceManager
2107 Jps
1484 NameNode
#slave节点
1440 Jps
1221 DataNode
1323 NodeManager

2.指令:
(1)help

[root@master sbin]# hadoop fs -help

(2)ls:目录显示

[root@master sbin]# hadoop fs -ls /

(3)mkdir:创建目录

[root@master sbin]# hadoop fs -mkdir /test_0
drwxr-xr-x   - root supergroup          0 2022-08-05 10:38 /test_0
[root@master sbin]# hadoop fs -mkdir -p /test_0/test_0_0
drwxr-xr-x   - root supergroup          0 2022-08-05 10:39 /test_0/test_0_0

(4)put:上传

[root@master test_0]# hadoop fs -put /root/test_0/text_0.txt /test_0/test_0_0
-rw-r--r--   3 root supergroup       1666 2022-08-05 10:45 /test_0/test_0_0/text_0.txt

(5)cat:查看

[root@master test_0]# hadoop fs -cat /test_0/test_0_0/text_1.txt
11111
22222

(6)rmr:递归删除

[root@master test_0]# hadoop fs -rmr /test_0/test_0_0/text_1.txt

(7)get:下载

[root@master test_0]# hadoop fs -get /test_0/test_0_0/text_1.txt /root/test_0/

(8)cp:复制

[root@master test_0]# hadoop fs -cp /test_0/test_0_0/text_0.txt /test_0/

(9)mv:移动

[root@master test_0]# hadoop fs -mv /test_0/test_0_0/text_0.txt /test_0/

(9)getmerge:合并下载

(py27) [root@master test_0]# hadoop fs -getmerge /test_0/test_0_0/* /root/test_0/te
xt_0.txt

(10)tail:尾部查看

[root@master test_0]# hadoop fs -tail /test_0/test_0_0/text_1.txt

(11)du:文件大小查看

[root@master test_0]# hadoop fs -du /test_0/test_0_0/text_0.txt
1666  /test_0/test_0_0/text_0.txt
[root@master test_0]# hadoop fs -du -h /test_0/test_0_0/text_0.txt
1.6 K  /test_0/test_0_0/text_0.txt

总结

第二节主要是对HDFS进行整理,后续会对mapreduce环节进行一个详细的总结整理。整条路线及后续的环节将主要以python作为编程语言进行实战。有不对的地方欢迎指正。

第一部分 Spark学习 6 第1章 Spark介绍 7 1.1 Spark简介与发展 7 1.2 Spark特点 7 1.3 Spark与Hadoop集成 7 1.4 Spark组件 8 第2章 Spark弹性分布数据集 9 2.1 弹性分布式数据集 9 2.2 MapReduce数据分享效率低 9 2.3 MapReduce进行迭代操作 9 2.4 MapReduce进行交互操作 10 2.5 Spark RDD数据分享 10 2.6 Spark RDD 迭代操作 10 2.7 Spark RDD交互操作 10 第3章 Spark安装 11 第4章 Spark CORE编程 13 4.1 Spark Shell 13 4.2 RDD Transformations 13 4.3 Actions 16 4.4 用RDD编程 17 4.5 UN-Persist存储 18 第5章 Spark调度与高级编程 20 5.1 Spark应用程序例子 20 5.2 Spark-submit语法 22 5.3 Spark变量 23 5.4 数字类型 RDD操作 23 第二部分 ZOOKEEPER学习 24 第6章 zookeeper介绍 25 6.1 zookeeper简介 25 6.2 分布式应用程序 25 6.3 Apache Zookeeper意味着什么? 26 第7章 zookeeper基本组成与工作流程 27 第8章 zookeeper的leader节点选择 31 第9章 zookeeper安装 33 第10章 zookeeper 命令行接口 35 第11章 zookeeper应用程序接口 39 第12章 zookeeper应用 40 第三部分 KAFKA学习 48 第12章 KAFKA介绍 49 12.1 KAFKA简介 49 12.2信息系统 49 12.3 KAFKA是什么? 50 第13章 KAFKA基本组成与集群架构 51 13.1 KAFKA的基本组成 51 13.2 KAFKA集群架构 52 第14章 KAFKA工作流程 53 14.1 PUB-SUB信息工作流 53 14.2 队列信息工作流/消费者组 53 14.3 Zookeeper在KAFKA中扮演的角色 54 第15章 KAFKA安装 55 第16章 KAFKA基本操作 56 16.1 启动zookeeper服务 56 16.2 单个单节点中间件配置 56 16.3 Topics列表 56 16.4 启动生产者发送信息 57 16.5 启动消费者接收信息 57 16.6 单个多节点中间件配置 57 16.7 创建一个topic 58 16.8 启动生产者发送信息 59 16.9 启动消费者接收信息 59 16.10 基本Topic操作 59 16.11 删除Topic 59 第17章 KAFKA 生产者与消费者群实例 60 17.1 生产者实例 60 17.2 简单消费者实例 63 17.3 消费者群例子 65 第18章 KAFKA与SPARK集成 67 18.1 Kafka与spark集成 67 18.2 SparkConf API 67 18.3 StreamingContext API 67 18.4 KafkaUtils API 67 18.5 建立脚本 69 18.6 编译/打包 69 18.7 提交到Spark 69 第四部分HIVE学习 70 第19章 HIVE介绍 71 19.1 HIVE是什么? 71 19.2 HIVE特点 71 19.3 HIVE架构 71 19.5 HIVE工作流 72 第20章 HIVE 安装 74 20.1 Hadoop安装 74 20.2 HIVE安装 77 20.3 Derby安装与设置 78 第21章 HIVE 数据类型 80 21.1列类型(Column Type) 80 21.2文本类型(Literals) 81 21.3 Null 值 81 21.4 复杂类型 81 第22章 数据库操作 82 22.1 创建数据库 82 22.2 删除数据库 82 第23章 数据表操作 83 23.1 创建数据表 83 23.2 load数据(插入数据) 85 23.3 修改数据表(Alter table) 86 23.4 删除表(Drop table) 90 第24章 分区 92 24.1 添加分区(Adding a Partition) 93 24.2 重命名分区(Renaming a Partition) 93 24.3 删除分区(Droping a Partition) 93 第25章 内置运算符 94 25.1 关系运算符 94 25.2 算术运算符 96 25.3 逻辑运算符 97 25.4 复杂运算符(Complex Operators) 97 第26章 内置函数 98 26.1 内置函数 98 26.2 聚合函数(Aggregate Functions) 99 第27章 视图与索引 100 27.1 创建视图(Creating a View) 100 27.2 删除视图(Dropping a View) 100 27.3 创建索引(Creating an Index) 101 27.4 删除索引(Dropping an Index) 101 第28章 HIVEQL 102 28.1 查询语句(SELECT ...WHERE) 102 28.1.1 查询语句实例 102 28.1.2 JDBC查询语句实例 102 28.2 查询语句(SELECT...ORDER BY) 103 28.2.1 ORDER BY查询语句实例 103 28.2.2 JDBC ORDER BY 查询语句实例 104 28.3 查询语句(GROUP BY) 104 28.3.1 GROUP BY查询语句实例 104 28.3.2 JDBC GROUP BY查询语句实例 105 28.4 查询语句(JOIN) 106 28.4.1 JOIN查询语句实例 106
目录 第一部分 Spark学习 ....................................................................................................................... 6 第1章 Spark介绍 ................................................................................................................... 7 1.1 Spark简介与发展 ...................................................................................................... 7 1.2 Spark特点 .................................................................................................................. 7 1.3 Spark与Hadoop集成 ................................................................................................ 7 1.4 Spark组件 .................................................................................................................. 8 第2章 Spark弹性分布数据集 ............................................................................................... 9 2.1 弹性分布式数据集 .................................................................................................... 9 2.2 MapReduce数据分享效率低..................................................................................... 9 2.3 MapReduce进行迭代操作 ........................................................................................ 9 2.4 MapReduce进行交互操作 ...................................................................................... 10 2.5 Spark RDD数据分享 ............................................................................................... 10 2.6 Spark RDD 迭代操作 .............................................................................................. 10 2.7 Spark RDD交互操作 ............................................................................................... 10 第3章 Spark安装 ................................................................................................................. 11 第4章 Spark CORE编程 ....................................................................................................... 13 4.1 Spark Shell ........................................................
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值