美文网首页
hadoop简介

hadoop简介

作者: 上山走18398 | 来源:发表于2019-07-09 07:20 被阅读0次

Hadoop目的

设计初衷:高扩展性,从单个服务器扩展到成千的机器;
每台本地机器都提供计算和存储。
不依赖硬件来提高高可用性(就是普通的机器性能不好的机器也可以加进集群,但机器但要求数量就得更多?)
应用层的角度来使用

Hadoop包含的模块

Hadoop Common :一些通用的库来支持其他的Hadoop模块
Hadoop Distributed File System(HDFS):分布式的文件系统,提供高吞吐量的应用数据读写
Hadoop YARN :job scheduling and cluster resource management
Hadoop MapReduce:并行的处理大数据

Hadoop的两个核心组成:

分布式 存储 计算 集群
1、HDFS:分布式文件系统,存储海量的数据。


2、MapReduce:并行处理框架,实现任务分解和调度。


搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务

高扩展
低成本:廉价的机器,软件上的容错
成熟的生态圈:HIVE HBASE ZOOKEEPER等


Hive: 使用SQL语句查询Hadoop数据
HBase: 存储结构化数据的分布式数据库(放弃了事务)
Zookeeper: 监控节点状态,维护节点配置,保持节点间的一致性

配置文件:
1 core-site.xml:
    Hadoop工作目录
    元数据目录
    文件系统namenode如何访问,端口 地址
2 mapred-site.xml
    任务监视器该如何访问
3 hdfs-site.xml
    文件系统的存放目录
4 hadoop-env.sh:


Jps查看Hadoop是否正常运行

HDFS概念

架构图
一 基本概念:
1. 块 :文件被分成块进行处理,基本逻辑单元 64MB?
2. NameNode
管理节点,存放文件元数据
    1. 文件与数据块的映射表
    2. 数据块与数据节点的映射表
机架感知
3. DataNode
工作节点,存放真正的数据块(可调节块的大小),有多个block

二 HDFS中数据管理与容错
1. 数据块(冗余多份?多个副本?-不丢失?)--数据块副本

2. 心跳检测:报告给namenode

三 Secondary NameNode
1. 二级NameNode定期同步元数据映像文件和修改日志Namenode发送故障时,备胎转正

四 HDFS文件读取流程

读: 要知道在哪
写 :文件拆分成块= DataNode -写入-复制-更新元数据

HDFS特点:
1. 数据冗余,硬件容错
2. 流式的数据存储。 一次写入,多次读取(块内容写入不能修改?要删除重写?)
3。 存储大文件,小文件的元数据也较多,namenode存储元数据信息就会不堪重负

- 适合数据批量读写,吞吐量高
- 不适合交互式应用,低延迟很难满足
- 适合一次写入多次读取,顺序读取
- 不支持多用户并发读取

HDFS使用,命令行:
Hadoop namenode -format
hadoop fs -ls /
hadoop fs -put xxx.sh input/
hadoop fs -rm input
hadoop fs -mkdir xxx
hadoop fs -get xxx
hadoop fs 

MapReduce

分布式 并行 高效 调度

Map(分成任意份split-并行进行同样的操作)--每个map分区输出一组键值对(根据需要过滤得到输出结果) 
shuffle(中间结果交换男人去男澡堂 女人去女澡堂)-进入到相应的 reduce(规约)分区进行归并处理 --最后写会HDFS


MapReduce四个阶段:

1. Split阶段(分成若干分,拆分数据。。) ---<key value>,
    key可能是文件名,value可能是文件内容,作为map的输入

为什么需要存放大文件,而不存放小文件;  (namenode考虑)

节点Map任务个数:
    一个节点分片多少,就启动多少个Map任务(10-100?)
    增加减少Map个数对方法:
    减少Map个数,但有很多小文件,可将小文件合并成大文件,再使用准则2 
    










2. Map阶段(需要编码)
    拆分,对输入对数据进行处理过滤得到一组<key,value>

Combine本质上是Mapper缓冲区溢出文件的合并
本地优化--Combine   

    数据经过Map端输出后会进行混洗,经过Shuffle后进入Reduce
    在大数据量的情况下可能会造成巨大的网络开销
    故可以在本地先按照key先行一轮排序和合并
    再进行网络混洗,这个过程就是Combine
    
    在大多数情况下,Combine和Reduce的逻辑一致的
    即都是按照Key合并数据,故可以任务Combine是对本地数据的Reduce操作,
    这里复用Reducer的逻辑,也可以实现自己的逻辑
    
    
    
--》map --》内存缓冲区(io.sort.mb默认100M)--》分区、排序、磁盘分割--》合并    
    
-------本地机器上--------------    

合并--》partition --》--》合并 --》合并小文件--》reduce
   
   
Partition是在Reduce输入之前发生,相同的key值一定会进入同一个Partioner,Reduce过程会按照key排序










 
3. Shuffle阶段

    Map输出到Reduce输入阶段,对数据进行交换处理,使之进入对应对Reduce中去
4. Reduce阶段(需要编码)
    
    <key,values>
partitionr reduce 和输出文件的数量总是相同
在一个Ruducer中,所有数据都会按照Key值升序排列,
故如果part输出文件中包含可以值,则这个文件一定是有序的

集群中为什么要把reduce设置为一个较大的值(27 ?)

大数据量的情况下,Reducer数量不宜过少,可通过配置文件或者代码配置

WordCount

Hadoop安装

对GNU/Linux 平台支持好,集群展示可以达到2000个nodes

required:
    java环境
    SSH SSHd
    
Hadoop cluster:
    单机模式(Local(Standalone) Mode):使用本地文件系统,而不是分布式文件系统 默认模式
    伪分布式模式(Pseudo-Distributed Mode):一台主机模拟多主机
    Fully-Distributed Mode(完全分布式模式)
    
    
    
Yarn: 统一资源管理对平台

插语:精准营销 用户画像 个性化推荐

Hadoop的分布式缓存

一 分布式缓存-DistributedCache

原理和实现方法
背景:在执行Map Reduce时,可能Mapper之间共享一些信息,如果信息量不大,可以将其从HDFS加载到内存中,这就是Hadoop 分布式缓存进制(全局缓存?)

加载到内存发生在Job执行之前,每个从节点各自都缓存一份相同的共享数据
如果共享数据太大,可以将共享数据分批缓存,重复执行作业

二 mapreduce实现矩阵相乘

矩阵在文件中的表示

Map输入 --分布式缓存

。。。。。

推荐算法

相似度
描述事物之间的相似度

  1. 余弦相似度
  1. 基于物品的推荐算法
基于物品的协同过滤推荐算法(Itemcf)

用户行为和权重

算法思想:给用户推荐那些和他们之前喜欢的物品相似的物品

eg。1
用户、商品、行为、权重
用户 A B C
商品 1 2 3 4 5 6
行为(权重): 点击(1)、搜索(3)、收藏(5)、 付款(10)

1. 根据用户行为列表计算用户、物品的评分矩阵
1.1 得到用户商品评分矩阵
1.2 得到相似度矩阵
1.3 相似度矩阵 * 评分矩阵 = 推荐列表
  1. 基于用户的推荐算法
基于用户的协同过滤算法(UserCF)
算法思想:给用户推荐和他相似的其他用户喜欢的物品

1. 根据用户行为列表计算物品、用户的评分矩阵

2. 根据评分矩阵计算用户与用户的相似矩阵

3. 相似度矩阵*评分矩阵 = 推荐列表
  1. 基于内容的推荐算法
算法思想:给用户推荐和他们之前喜欢的物品在内容上相似的其他物品

物品特征建模

Item Profile

算法步骤:
1. 构建 Item Profile 矩阵

2. 构建 Item User 评分矩阵

3 相乘得到 User Profile

4 Item Profile 和 User Profile求余弦相似度

相关文章

  • java大数据之hadoop

    一、Hadoop简介 1.1 Hadoop是什么 The Apache Hadoop project develo...

  • 大数据技术原理与应用:大数据处理架构Hadoop生态圈

    Hadoop生态圈 概述 Hadoop简介什么是Apache hadoop?Apache Hadoop项目是以可靠...

  • Hadoop简介

    什么是hadoop hadoop是apache下的一款开源分布式大数据处理框架,通过多台廉价机器搭建集群的方式 ,...

  • Hadoop简介

    Hadoop是一个Apache基金会所开发的分布式系统基础架构,具有高容错、高可靠性、高扩展性、高效、低成本等特点...

  • Hadoop简介

    从数据爆炸开始。。。 一、 第三次工业革命 第一次:18世纪60年代,手工工厂向机器大生产过渡,以蒸汽机的发明...

  • Hadoop简介

    Hadoop 介绍 Hadoop是Apache组织的一个分布式计算框架(java语言),其最核心的设计就是:HDF...

  • Hadoop简介

    Hadoop概述开源分布式计算平台,以HDFS、MapReduce为核心,为用户提供了系统底层细节透明的分布式基础...

  • hadoop简介

    Hadoop简介 *Hadoop 擅长处理一次写入,多次读出的数据 hadoop两大核心组件是 HDFS 和 ma...

  • Hadoop简介

    Hadoop产生的意义 随着信息社会的进步,信息数据的激增,海量数据的存储和分析成为难题,即使硬盘的存储容量不断提...

  • Hadoop简介

    1. Hadoop简介 由于几乎所有的书中都会提到Hadoop的发展史, 这里就不说Hadoop的历史时间线了. ...

网友评论

      本文标题:hadoop简介

      本文链接:https://www.haomeiwen.com/subject/fsctkctx.html