Hadoop详细讲解(一)

Hadoop 详细解析

    • 1.2 大数据面临的问题
    • 1.3 大数据的特点
      • 1)数据量大
      • 2)数据时效性
      • 3)数据多样性
        • (1)数据存储类型多样性
        • (2)数据分析类型多样性
      • 4)数据价值
    • 1.4 应用场景
      • 1)个人推荐
      • 2)风控
      • 3)成本预测
      • 4)气候预测
      • 5)人工智能
    • 1.6分布式
  • 二、Hadoop
    • 2.1 Hadoop生态系统
    • 2.2 大数据分析方案
  • 三、HDFS
    • 3.1 安装(伪集群)
      • 1)准备虚拟机
    • 2)安装JDK 8JDK8
    • 3)配置Java环境变量
    • 4)配置主机名与IP的映射关系
    • 5)关闭防火墙
      • 6)ssh免密登陆
    • 7)解压Hadoop
    • 8)配置Hadoop环境变量
    • 9)配置 etc/hadoop/core-site.xml
    • 11)格式化namenode
    • 12)启动hdfs
    • 进入web界面
    • 3.2 HDFS Shell 相关操作
    • 3.3 Java API 操作HDFS
    • (2)Windows 配置Hadoop环境
    • (3)权限不足解决方案
    • 1)配置 hdfs-site.xml
    • (3)相关操作
    • 3.4 HDFS Architecture
    • 1)什么是Block块
    • (1)为什么块的大小为128MB/li>
    • (2)Block块的大小能否随意设置/li>
    • (3)HDFS为什么不适合存储小文件
    • 2)Rack Awareness 机架感知
    • 3)NameNode 和 SecondaryNameNode 的 关系 (重点)
    • 4)检查点
    • 5)Safemode
    • 6)DataNode工作机制

一。概述
## 1.1 大数据概念

大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。

1.2 大数据面临的问题

:单机存储有限,需要使用集群(多台机器)存储数据;硬件上必须有足够的存储容量,软件上有对应的容灾机制。

:单机算力有限,也需要使用集群进行计算(需要在合理的时间内将数据变废为宝)

1.3 大数据的特点

4V Volume 数据量大 Velocity 时效性 Variety 多样性 Value 价值大

1)数据量大

B-KB-MB-GB-TB-PB-EB-ZB…

各种个人云存储解决方案:百度 盘、腾讯微云、115、lanzou、诚通、OneDriver、GoogleDriver 等

大数据产生于21世纪的互联 时代,日益进步的科技和日益增长的物质文化需求,导致了数据的大爆炸;

淘宝、支付宝、微信、QQ、抖音这些App是目前国内顶尖的流量,使用人数及其的庞大,每天可以产生极多的数据量。

2)数据时效性

双十一、618

大数据是在短时间内迅速产生(产生的时效性非常高),分析的时效性就必须因场景而异,需要在合理的时间内分析出有价值的数据。

3)数据多样性

(1)数据存储类型多样性

结构化的数据:表格、文本、SQL等

非结构化数据:视频、音频、图片

(2)数据分析类型多样性

地理位置:来自北京、中国、上海

设备信息:来自PC、手机、平板、手表、手环、眼镜

个人喜好:美女、面膜、ctrl、 数码、篮球、足球

交 络:A可能认识B 、C ,B就可能认识C

电话 码:110,11086

络身份证:设备MAC+电话+IP+地区

4)数据价值

警察叔叔:只关注的是否哪里违规

AI研究:犯罪预测、下棋、无人驾驶

所以在海量数据中有用的数据最为关键、这是分析数据的第一步,也就是对数据进行降噪处理(数据清洗|数据预处理)

1.4 应用场景

1)个人推荐

根据用户喜好,推荐相关资源

千人一面、千人千面、一人千面

2)风控

大数据实时流处理,根据用户行为模型进行支撑,判断该行为是否正常

3)成本预测

4)气候预测

5)人工智能

1.6分布式

为了解决大数据存储和计算的问题,需要使用一定数量的机器,硬件设施必须足够,那软件解决方案怎么办/p>

如何使用软件去解决存储和分析的问题/p>

二、Hadoop

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EB9OwHCR-1573560679737)(assets/622762d0f703918f3c528de35c3d269759eec41c.jpg)]

Hadoop由 Apache Software Foundation 公司于 2005 年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发。

2006 年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中。

Hadoop 是最受欢迎的在 Internet 上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题。例如,如果您要 grep 一个 10TB 的巨型文件,会出现什么情况传统的系统上,这将需要很长的时间。但是 Hadoop 在设计时就考虑到这些问题,采用并行执行机制,因此能大大提高效率。

:Hadoop Distributed File System 作为Hadoop 生态体系中数据的存储的软件解决方案

:Hadoop中分布式计算框架(只需要实现少量的代码,就可以开发一个分布式的应用程序),对海量数据并行分析和计算

3.3 Java API 操作HDFS

(1) 依赖

(2)Windows 配置Hadoop环境

  • 解压hadoop到指定的目录
  • 拷贝hadoop.dll和winutils.exe到hadoop/bin 目录下
  • 配置Hadoop环境变量
  • 配置主机名和IP的映射关系

(3)权限不足解决方案

org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=WRITE, inode=”/baizhi”:root:supergroup:drwxr-xr-x

1)配置 hdfs-site.xml

3.4 HDFS Architecture

HDFS为主从架构,HDFS中有一个主的NameNode,管理系统命名空间和管理客户端对文件的访问,其中还有DataNode负责和NameNode进行协调工作,DataNode负责数据的存储,在存储数据(文件)的过程中一个文件会被分成一个块或者多个块,在NameNode中存储了一些数据(存储的数据是块到DataNode的映射关系),datanode还根据NameNode的指令创建删除复制块。

(1)为什么块的大小为128MB/h2>

在Hadoop1.x 块大小默认为64MB,在Hadoop2.x 默认为128MB

工业限制:一般来说机械硬盘的读取速度100MB左右

软件优化:通常认为最佳状态为寻址时间为传输时间的100分之一

(2)Block块的大小能否随意设置/h2>

不能,如果BlockSize过大,可能导致多余存储空间浪费,导致存取时间过长 如果BlockSize过小,会导致寻址时间过长,同样造成效率低下。

(3)HDFS为什么不适合存储小文件

3)NameNode 和 SecondaryNameNode 的 关系 (重点)

fsimage文件:元数据信息的备份,会被加载到内存中

edits文件:Edits文件帮助记录增加和更新操作,提高效率

namenode在启动时会加载fsimage和edits的文件,所以在第一次启动的时候需要格式化namenode

当用户上传文件的时候或者进行其他操作的时候,操作记录会写入edits文件中,这样edits和fsimage文件加起来的元数据永远是最新的。

如果此时用户一直进行操作的话,edits文件会越来越大,这就导致了在下次启动的时候启动速度过慢。

为了解决这个问题,出现了SecondaryNameNode ,将当前的NameNode的edits和fsimage文件拷贝到自己的节点上,进行合并操作,在合并完成后,将新的fsimage文件传输到原来的namenode中,此时namanode再去加载最新的fsimage。

新的问题:在SecondaryNameNode 进行拷贝操作的时候,如果有客户端读写请求过来,势必要追加相应的操作记录到edits文件中,但是此时正在进行拷贝操作,改变则代表会造成数据紊乱,怎么办办法是:会有一个新的叫做edits-inprogress的文件被创建,新的操作将写入此文件中,等待SecondaryNameNode合并完成,将edits-inprogress文件改名成为当前的edits文件。

Hadoop详细讲解(一)

4)检查点

namenode使用fsimage和edits文件保存元数据,2nn会定期的下载主的(Active)namenode的fsimage文件和edits 文件,并在本地进行合并。
合并的时机就称之为检查点
检查点有两种触发机制:
(1) 默认一个小时进行合并
(2) 操作数量达到100W次进行合并


                                                        

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月11日
下一篇 2019年10月11日

相关推荐