菜鸟的Hadoop快速入门
一、相关概念
1、大数据
大数据是一门概念,也是一门技术,是以Hadoop为代表的大数据平台框架上进行各种数据分析的技术。
大数据包括了以Hadoop和Spark为代表的基础大数据框架,还包括实时数据处理,离线数据处理,数据分析,数据挖掘和用机器算法进行预测分析等技术。
2、Hadoop
Hadoop是一个开源的大数据框架,是一个分布式计算的解决方案。
Hadoop的两个核心解决了数据存储问题(HDFS分布式文件系统)和分布式计算问题(MapRe-duce)。
举例1:用户想要获取某个路径的数据,数据存放在很多的机器上,作为用户不用考虑在哪台机器上,HD-FS自动搞定。
举例2:如果一个100p的文件,希望过滤出含有Hadoop字符串的行。这种场景下,HDFS分布式存储,突破了服务器硬盘大小的限制,解决了单台机器无法存储大文件的问题,同时MapReduce分布式计算可以将大数据量的作业先分片计算,最后汇总输出。
二、Hadoop特点
优点
1、支持超大文件。HDFS存储的文件可以支持TB和PB级别的数据。
2、检测和快速应对硬件故障。数据备份机制,NameNode通过心跳机制来检测DataNode是否还存在。
3、高扩展性。可建构在廉价机上,实现线性(横向)扩展,当集群增加新节点之后,NameNode也可以感知,将数据分发和备份到相应的节点上。
4、成熟的生态圈。借助开源的力量,围绕Hadoop衍生的一些小工具。
缺点
1、不能做到低延迟。高数据吞吐量做了优化,牺牲了获取数据的延迟。
2、不适合大量的小文件存储。
3、文件修改效率低。HDFS适合一次写入,多次读取的场景。
三、HDFS介绍
1、HDFS框架分析
HDFS是Master和Slave的主从结构。主要由Name-Node、Secondary NameNode、DataNode构成。
NameNode
管理HDFS的名称空间和数据块映射信存储元数据与文件到数据块映射的地方。
如果NameNode挂掉了,文件就会无法重组,怎么办?有哪些容错机制?
Hadoop可以配置成HA即高可用集群,集群中有两个NameNode节点,一台active主节点,另一台stan-dby备用节点,两者数据时刻保持一致。当主节点不可用时,备用节点马上自动切换,用户感知不到,避免了NameNode的单点问题。
Secondary NameNode
辅助NameNode,分担NameNode工作,紧急情况下可辅助恢复NameNode。
DataNode
Slave节点,实际存储数据、执行数据块的读写并汇报存储信息给NameNode。
2、HDFS文件读写
文件按照数据块的方式进行存储在DataNode上,数据块是抽象块,作为存储和传输单元,而并非整个文件。
文件为什么要按照块来存储呢?
首先屏蔽了文件的概念,简化存储系统的设计,比如100T的文件大于磁盘的存储,需要把文件分成多个数据块进而存储到多个磁盘;为了保证数据的安全,需要备份的,而数据块非常适用于数据的备份,进而提升数据的容错能力和可用性。
数据块大小设置如何考虑?
文件数据块大小如果太小,一般的文件也就会被分成多个数据块,那么在访问的时候也就要访问多个数据块地址,这样效率不高,同时也会对NameNode的内存消耗比较严重;数据块设置得太大的话,对并行的支持就不太好了,同时系统如果重启需要加载数据,数据块越大,系统恢复就会越长。
3.2.1 HDFS文件读流程
1、向NameNode通信查询元数据(block所在的DataNode节点),找到文件块所在的DataNode服务器。
2、挑选一台DataNode(就近原则,然后随机)服务器,请求建立socket流。
3、DataNode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)。
4、客户端已packet为单位接收,现在本地缓存,然后写入目标文件,后面的block块就相当于是append到前面的block块最后合成最终需要的文件。
3.2.2 HDFS文件写流程
1、向NameNode通信请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。
2、NameNode返回确认可以上传。
3、client会先对文件进行切分,比如一个block块128m,文件有300m就会被切分成3个块,一个128m、一个128m、一个44m。请求第一个block该传输到哪些DataNode服务器上。
4、NameNode返回DataNode的服务器。
5、client请求一台DataNode上传数据,第一个DataNode收到请求会继续调用第二个DataNode,然后第二个调用第三个DataNode,将整个通道建立完成,逐级返回客户端。
6、client开始往A上传第一个block,当然在写入的时候DataNode会进行数据校验,第一台DataNode收到后就会传给第二台,第二台传给第三台。
7、当一个block传输完成之后,client再次请求NameNode上传第二个block的服务器。
四、MapReduce介绍
1、概念
MapReduce是一种编程模型,是一种编程方法,是抽象的理论,采用了分而治之的思想。MapReduce框架的核心步骤主要分两部分,分别是Map和Reduce。每个文件分片由单独的机器去处理,这就是Map的方法,将各个机器计算的结果汇总并得到最终的结果,这就是Reduce的方法。
2、工作流程
向MapReduce框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map任务,然后分配到不同的节点上去执行,每一个Map任务处理输入数据中的一部分,当Map任务完成后,它会生成一些中间文件,这些中间文件将会作为Reduce任务的输入数据。Reduce任务的主要目标就是把前面若干个Map的输出汇总到一起并输出。
3、运行MapReduce示例
运行Hadoop自带的MapReduce经典示例Word-count,统计文本中出现的单词及其次数。首先将任务提交到Hadoop框架上。
查看MapReduce运行结束后的输出文件目录及结果内容。
可以看到统计单词出现的次数结果
五、Hadoop安装
墙裂推荐:史上最详细的Hadoop环境搭建(blog.csdn.net/hliq5399/ar…)
1、Hadoop部署模式
本地模式
伪分布式模式
完全分布式模式
以上部署模式区分的依据是NameNode、Data-Node、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器上。
2、安装步骤(以伪分布式模式为例)
学习Hadoop一般是在伪分布式模式下进行。这种模式是在一台机器上各个进程上运行Hadoop的各个模块,伪分布式的意思是虽然各个模块是在各个进程上分开运行的,但是只是运行在一个操作系统上的,并不是真正的分布式。
5.2.1 JDK包下载、解压安装及JAVA环境变量配置
exportJAVA_HOME=/home/admin/apps/jdk1.8.0_151
exportCLASSPATH=.:JAVA_HOME/lib/tools.jar
exportPATH=PATH
5.2.2 Hadoop包下载、解压安装及Hadoop环境变量配置
exportHADOOP_HOME="/zmq/modules/hadoop/hadoop-3.1.0"
exportPATH=HADOOP_HOME/sbin:$PATH
5.2.3 配置Hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的JAVA_HOME参数
exportJAVA_HOME="/home/admin/apps/jdk1.8.0_151"
5.2.4 配置core-site.xml,配置的是HDFS的地址和Hadoop临时目录
5.2.5 配置hdfs-site.xml,设置HDFS存储时的备份数量,这里是伪分布式部署,就填写1
5.2.6 格式化HDFS,启动NameNode、Data-Node、SecondaryNameNode,查看进程
5.2.7 搭建完成,操作HDFS(常用的新建目录、上传下载文件等),以及运行MapReduceJob
六、Hadoop更多
以上介绍的仅是对Hadoop的初步学习和使用,Ha-doop的HA完全分布式部署、Hadoop的资源调度YARN、Hadoop的高可用和容错机制、Hadoop生态圈的其他组件等等还没有去研究,感叹Hadoop水很深,哈哈。
作者简介:梦琴,两年+测试经验,当前主要负责内部平台产品的测试及部分外部交付项目测试。
菜鸟的Hadoop快速入门相关推荐
- PowerShell: 作为一个PowerShell菜鸟,如何快速入门?掌握这些就够了
PowerShell 一 初级篇 1. 我为什么要写PowerShell? 2. 开始我们的PowerShell之旅 a) 打开PowerShell >使用鼠标打开 >使用键盘打开 b) ...
- Hadoop快速入门——入门考试(伪分布式60+编码25+执行jar15)
Hadoop快速入门--入门考试(伪分布式60+编码25+执行jar15) 目录 一.伪分布式搭建(60分) 1.创建1台Linux虚拟机,并打开对应的网络连接(VMnet8)(5分) 2.通过xsh ...
- Hadoop快速入门——第三章、MapReduce案例(字符统计)
Hadoop快速入门--第三章.MapReduce案例 目录 环境要求: 1.项目创建: 2.修改Maven 3.编码 4.本地文件测试 5.修改[Action]文件(修改测试文件路径) 6.导出ja ...
- Hadoop快速入门——第四章、zookeeper安装
Hadoop快速入门--第四章.zookeeper安装 压缩包下载地址:[https://download.csdn.net/download/feng8403000/85227883] 目录 1.上 ...
- cad在哪里设置图幅大小_一看就懂!菜鸟也能快速入门CAD,关键掌握这4个诀窍...
最初接触AutoCAD,但凡有一点感兴趣就会想着能快速的学会.其实都知道入门难,特别对零基础新手,很残酷. 一.最好是人教 最快速入门AutoCAD的方法自然是有人教,现实是很少有人能手把手的教你,既 ...
- 大数据技术之Hadoop(快速入门)
目录 第一章 Hadoop概述 1.1 什么是Hadoop 1.2 Hadoop 产生背景 Hadoop之父:Doug cutting 1.3 Hadoop 三大发行版本 Hadoop 三大发行版 ...
- 【Hadoop快速入门】Hdfs、MapReduce、Yarn
1. Hahoop概述 1.1 Hodoop是什么 1) Hadoop是一个有Apache基金会所开发的分布式系统基础架构 2) 主要解决海量数据的存储和海量数据的分析计算问题 3) 广义上来说,Ha ...
- 4.2.Hadoop快速入门
python编程快速上手(持续更新中-) 推荐系统基础 文章目录 python编程快速上手(持续更新中-) 推荐系统基础 1 HADOOP概述 1.1 什么是Hadoop Hadoop名字的由来 Ha ...
- Go 菜鸟学习笔记-快速入门(上)
1.简介和hello world go特性 接受了函数式编程的一些想法,支持匿名函数与闭包 接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道 推荐使用消息而不是共享内存来 ...
- hadoop快速入门之DKH安装准备
2019独角兽企业重金招聘Python工程师标准>>> 前几天去参加了一个线下的聚会,参加聚会的基本都是从事互联网工作的.会上有人提到了区块链,从而引发了一场关于大数据方面的探讨.我 ...
最新文章
- 迁移学习之MobileNet(88层)和MobileNetV2(88层)
- imu oracle,问一个关于IMU REDO的问题~
- 雅虎网站页面性能优化的34条黄金守则 收藏
- 应该是最全的算法学习路线了吧法学习路线了吧
- C# ActionT和 FuncT委托
- 深度学习中图像预处理均值
- python之pymysql的使用
- 【SSM 整合项目】图书管理系统
- 界面排版-TableLayout的stretchColumns方法
- 用 Python3 + Selenium 实现模拟QQ空间登录及自动点赞功能
- MongoDB——聚合管道之$group操作
- 什么软件测试情侣头像,情侣头像另一半查找器
- 超详细280页Docker实战文档,97.6 MB高清可下载
- mysql innerdb 索引,MySQL系列-InnoDB索引优化AHI、Change buffer
- SAP This Open SQL statement uses additions that can only be used
- 通过ip获取所在地理位置、通过手机号获取归属地
- SQL语法之 CHECK 约束
- 2014第六届华为创新杯编程大赛初赛解题报告
- sqlmap (三)HTTP参数设置
- 《数据结构与算法》(十一)- 树、森林与二叉树的转换及哈夫曼树详解
热门文章
- SPI 读取不同长度 寄存器_MCGS触摸屏如何实现批量读取modbus数据的方法?
- 浅谈SQL语言的特点
- VMware ESXi6.0注入8060阵列卡驱动过程记录
- Oracle怎么查看离散任务,Oracle ERP操作手册
- Audio Jungle宣传专题片头音乐AE模板专用配乐合集-永久更新
- 最大功率点跟踪测试软件,最大功率点追踪
- 深度 linux ansys,deepin安装ansys
- 【数学建模】模糊数学模型详解
- php旧物交易开源代码_PHP学习笔记:php二手交易市场系统
- Apache SOLR and Carrot2集成