1 Hadoop简介


1.1 什么是Hadoop

分布式计算平台

优点:

高可靠性

高扩展性

高效性 在各节点之间动态地移动数据,保证各个节点的动态平衡

高容错性 数据多副本;重新启动失败任务

 

Hadoop应用:

Yahoo 广告系统Web搜索研究

Facebook 数据分析 机器学习

百度 搜索日志分析 网页数据挖掘

淘宝 存储并处理电子商务交易的相关数据

中国移动研究院对数据进行分析并对外提供服务


1.2 Hadoop项目及其结构:

Pig    Chukwa    Hive    Hbase

MapReduce    HDFS    ZooKeeper

Common    Avro

 

Common

Hadoop其他子项目提供支持的常用工具

主要包括FileSystemRPC和串行化库

Avro

是用于数据序列化的系统

提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集、RPC、简单的动态语言集成功能

依赖于模式(scheme),数据的读写是在模式下完成的,这样可以减少写入数据的开销,提高序列化的速度并缩减其大小

RPC中,Avro系统的客户端和服务器端通过握手协议进行模式的交换

MapReduce

一种编程模型,用于大数据集(1TB)的并行运算

HDFS
分布式文件系统,具有高容错性(fault-tolerant

高吞吐率(high-throughput

设计目标:

检测和快速恢复硬件故障

流式数据访问   重点在于批量处理而不是用户交互式处理,数据吞吐量而不是数据访问的反应速度

简化一致模型:一次写入,多次读取

通信协议

ClientNameNode--Client Protocol    

NameNodeDataNode--DataNode Protocol

Chukwa

开源的数据收集系统,监控和分析大型分布式系统的数据

HDFSMapReduce框架之上搭建

显示、监视和分析数据结果,以便更好的利用所收集的结果

Hive

建立在Hadoop之上的数据仓库

MapReduce编程模型中也可通过Hive QL查询数据

Hbase

分布式的、面向列的开源数据库,该技术来源于Google——Bigtable

适合非结构化数据存储的数据库

基于列模式,一个数据行拥有一个可选择的键和任意数量的列

Pig

对大型数据集进行分析、评估的平台

突出优势:它的结构能经受住高并行化的检验

底层由一个编译器组成,运行时会产生一些MapReduce程序序列

ZooKeeper

为分布式应用设计的开源协调服务

提供同步、配置管理、分组、命名服务,减少分布式应用程序所承担的协调任务

目录树结构

J ava编写,支持Java C

 

Sqoop:

为高效传输批量数据而设计的一种工具,其用于Apache Hadoop和结构化数据库如关系型数据库之间的数据传输


Flume:

一种分布式的、可靠的、用于高效搜集、汇总、移动大量日志数据的服务。


Mahout:

一种基于Hadoop的机器学习和数据挖掘的分布式计算框架算法集,实现了多种MapReduce模式的数据挖掘算法。


Spark:

一个开源的数据分析集群计算框架,建立于HDFS之上,用于构建大规模、低延时的数据分析应用,采用Scala语言开发


Storm:

分布式的、容错的实时计算系统,属于流处理平台,多用于实时计算并更新数据库

也可被用于连续计算(continuous computation),对数据流做连续查询,在计算时将结果以流的形式输出给用户


Shark:

即Hive on Spark,为Spark打造的数据仓库系统,兼容HQL


Phoenix:

构建在HBase之上的SQL中间层,Java编写

Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排执行以生成标准的JDBC结果集。

直接使用HBase API、协同处理器与自定义过滤器

对简单查询来说是毫秒

对百万级别的行来说是秒


Tez:

基于YARN之上的DAG(Directed Acyclic Graph)就算框架

把MapReduce拆分成若干子过程,同时可以把多个MapReduce任务组合成一个较大的DAG任务,减少了MapReduce中间过程文件的存储

合理组合其子过程,减少任务的运行时间


Ambari:

一个供应、管理和监视Hadoop集群的开源框架

1.3 Hadoop体系结构:

两大核心:HDFS  MapReduce

通过HDFS实现分布式存储的底层支持

通过MapReduce实现分布式并行任务处理的程序支持

 

HDFS:

主从结构

NameNode:管理文件系统的命名空间和客户端对文件的访问操作

DataNode:管理存储的数据

 

MapReduce

JobTracker:调度一个作业的所有任务

TaskTracker:负责主节点指派的任务

JobTracker接收到提交作业和其配置信息后,将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

 

1.4 Hadoop与分布式开发

Hadoop上并行应用程序的开发是基于MapReduce编程模型的

MapReduce库的用户用两个函数来表达这个计算:MapReduce

Map函数接收一个输入的key/value对,然后产生一个中间key/value对的集合;

把具有相同key值得value集合在一起,然后传递给Reduce函数。

Reduce函数接收key和相关的value集合

每次调用Reduce函数只产生01个输出的value值。

MapReduce计算模型非常适合在大量计算机组成的大规模集群上并行运行。


原理:

数据分布存储

分布式并行计算:DataNode既是数据存储结点,也是计算结点

本地计算:移动计算比移动数据更经济

任务粒度:Block  MMap任务分布于N台计算机上并行运行,Reduce任务数由用户指定

数据合并:Combine,在分割之前,将中间结果有相同keyvalue合并

数据分割:Partition,把Map任务的中间结果按key划分为R份——reduce任务数

ReduceMap任务的中间结果在执行完CombinePartition之后,以文件形式存储于本地磁盘,中间结果的位置将通知JobTrackerJobTracker再通知Reduce任务到哪取中间结果。

任务管道:有RReduce任务就有R个最终结果,很多情况下它们无需合并,而是作为另一个计算任务的输入,这也就形成了任务管道。

 

1.5 Hadoop计算模型——MapReduce

将运行于大规模集群上的复杂的并行计算过程高度地抽象为两个函数:MapReduce

一个Job通常把输入的数据集切分为若干独立的数据块,由Map任务并行处理。

框架对Map的输出进行排序,然后把结果输入给Reduce任务。

计算结点和存储结点在一起。

 

1.6 Hadoop数据管理

分布式文件系统 HDFS

分布式数据库 HBase

数据仓库工具 Hive

 

HDFS的数据管理

整个集群的单一命名空间

数据一致性:一次写入,多次读取

文件分割成多个文件块,每个文件块被分配存储到数据结点上,根据配置由复制文件块保证数据安全

 

三个角色:NameNodeDataNodeClient

NameNode元数据信息:路径,副本数,分块,块所在的结点

 

文件写入:

1.ClientNameNode发起文件写入请求;

2.NameNode根据文件大小和文件块配置情况,返回给Client所管理的DataNode的信息;

3.Client将文件划分为多个Block,根据DataNode的地址信息按顺序将其写到每一个DataNode中。

 

文件读取:

1.ClientNameNode发起文件读取的请求;

2.NameNode返回文件存储的DataNode信息;

3.ClientDataNode读取文件。

 

文件块复制:

1.NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效;

2.通知DataNode相互复制Block

3.DataNode开始直接相互复制。

 

 

文件块的位置:三个副本,本机架2个,另一机架1

心跳检测:用心跳检测DataNode的健康状况

数据复制:场景为DataNode宕机、需平衡DataNode的存储利用率和平衡DataNode数据交互压力等情况,可使用HDFSbalancer命令配置threshold来平衡每一个DataNode的磁盘利用率。

数据校验:CRC32    写入校验信息,读入时,先校验后读入

管道性写入:写入文件到DataNode上时,首先读取一个Block,然后将其写到一个DataNode上,接着由第一个DataNode将其传递到备份的DataNode上,直到所有备份完成后,客户端才开始写下一个block

安全模式:启动时进入/命令进入。数据不允许修改和删除。主要是为了在系统启动时检查各个DataNode上数据块的有效性,同时根据策略进行必要的复制或删除部分数据块。

 

Hbase的数据管理

类似于BigTable的分布式数据库

一个稀疏的、长期存储的、多维度的排序映射表,这张表的索引是行关键字、列关键字和时间戳

表中的数据都是字符串

每一行都有一个可排序的主键和任意多的列

由于列是稀疏存储的,所以同一张表中的每一行数据都可以有截然不同的列

列名字的格式是<family><label>

每一张表有一个family集合,这个集合是固定不变的,相当于表结构

label值相对于每一行来说都是可以改变的

Hbase把同一family中的数据存储在同一目录下

Hbase的写操作是锁行的,每一行是一个原子元素,可以加锁

时间戳,每次生成一个新的版本都会跟一个时间戳,可以设置保留几个版本

客户端可以获得最近版本,也可获得全部版本

 

三大组成部分

HBaseMasterHBase主服务器

ZooKeeper

领导选举法(Leader Election Algorithm

主服务器承担初始化集群的任务。当主服务器第一次启动时,会试图从HDFS获取根或根域目录,如果获取失败则创建根或根域目录,以及第一个元域目录。

下次启动时,主服务器可获得集群和集群中所有域的信息。

负责域的分配、域服务器运行状态的监视、表格管理

HRegionServerHbase域服务器

服务于主服务器分配的域、处理客户端的读写请求、本地缓冲回写、本地数据压缩、分割域

每个域只能由一台域服务器来提供服务

当其开始服务于某个域时,它会从HDFS文件系统中读取该域的日志和所有存储文件

同时管理操作HDFS文件的持久性存储工作

客户端与主服务器通信获取域和域服务器列表信息后,就可以直接向域服务器发送域读写请求,来完成操作。

HBase Client

客户端与Hbase主机交换消息以查找根域的位置,这是二者的唯一交流

定位根域后,客户端获取元域信息,元域信息中包含所需用户域的域服务器地址

客户端再连接元域所在的域服务器,获得用户域所在的域服务器地址

定位用户域服务器后发出读写请求

用户域的地址将缓存在客户端中

 

Hive的数据管理

建立在Hadoop上的数据仓库基础架构,提供一系列工具进行数据的提取、转化、加载

是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制

Hive QL

1.元数据存储

Hive将元数据存储在RDBMS中,有三种模式可以连接到数据库

a.Single User Mode:此模式连接到一个In-Memory的数据库Derby,一般用于Unit Test

b.Multi User Mode:通过网络连接

c.Remote Server Mode:用于非Java客户端访问元数据库,在服务器端启动一个MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer来访问元数据库

 

2.数据存储

无专门存储格式,无索引

只需明确列分隔符、行分隔符

Hive中所有数据都存储在HDFS

4种数据模型:Table、  External Table、 Partition、  Bucket

 

3.数据交换

用户接口:客户端、Web界面、数据库接口

元数据存储:通常存储在关系数据库中,如MySQLDerby

解释器、编译器、优化器、执行器

HadoopHDFS进行存储、MapReduce进行计算

 

元数据包括表的名字、表的列、表的分区、表分区的属性、表的属性(外表?)、表的数据所在目录。

生成的查询计划存储在HDFS中,随后由MapReduce调用执行

*的查询不会生成MapReduce任务

 

1.7 Hadoop集群安全策略

用户权限管理

用户分组管理,为更高层的HDFS访问、服务访问、Job提交和配置Job等操作提供认证和控制基础。

Hadoop上的用户和用户组由用户自己指定,如果未指定,Hadoop会调用Linuxwhoami命令获取当前Linux系统的用户名和用户组,将其保存在Jobuser.namegroup.name两个属性中。

用户提交Job的后续认证和授权以及集群服务的访问都将基于此用户名和用户组的权限及认证信息进行。

 

HDFS安全策略

用户和HDFS服务之间的交互主要有两种情况:

用户机和NameNode之间的RPC交互获取待通信的DataNode位置;

客户机和DataNode交互传输数据块

 

MapReduce安全策略

主要涉及Job提交、TaskShuffle三个方面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google Xpath Helper

Google Xpath Helper 下载方法&#xff1a; 1. 访问http://chrome-extension-downloader.com/ 2. 把https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl拷贝到文本框里面&#xff0c;然后点击“Download Extention”按钮。 使用方法&am…

【Tensorflow】 Object_detection之训练PASCAL VOC数据集

参考&#xff1a;Running Locally 1、检查数据、config文件是否配置好 可参考之前博客&#xff1a; Tensorflow Object_detection之配置Training Pipeline Tensorflow Object_detection之准备数据生成TFRecord 2、训练模型 PIPELINE_CONFIG_PATH/data/zxx/models/research/date…

2 Hadoop的安装与配置

需要JDK、SSH 对于伪分布式&#xff0c;Hadoop会采取与集群相同的处理方式&#xff1a;按次序启动文件conf/slaves中记载的主机上的进程&#xff0c;只不过在伪分布式中Slave为localhost&#xff08;自身&#xff09;。 Hadoop从三个角度将主机划分为两种角色&#xff1a; 最…

局域网访问控制

访问局域网内其他机器可用如下方式&#xff1a; \\PC-name\d$\dir 或者 \\192.168.xxx.xxx\d$\dir d代表d盘 但前提是对方机器已经把本机用户设置为管理员账户转载于:https://www.cnblogs.com/jimmy-c/p/4116804.html

Unity3d 插值同步

文中大体的思路&#xff1a; A玩家 移动时&#xff0c;本机自行移动&#xff0c;并发送移动指令给服务端&#xff0c;假设移动是成功的&#xff0c;服务端同步其他客户端 B玩家&#xff0c;B玩家 中用一个队列 Queue 来装服务端来的移动指令&#xff0c;然后客户端在updata中做…

laravel数据库相关操作说明

输出原生sql: DB::table(users)->where([[name,,张三]])->toSql(); //输出sql为&#xff1a;select * from users where name?; DB::table(users)->where([[name,,张三]])->getQuery(); //输出sql为&#xff1a;select * from users where name张三; 运行原生sql查…

1 数据挖掘基础

1.1 什么是数据挖掘 从大量数据中挖掘出隐含的、未知的、对决策有潜在价值的关系、模式和趋势&#xff0c;并用这些知识和规则建立用于决策支持的模型&#xff0c;提供预测性决策支持的方法、工具和过程&#xff0c;这就是数据挖掘。 是统计学、数据库技术、人工智能技术的结…

R文件报错的原因

一般R文件报错&#xff0c;无非是资源文件错误&#xff0c;图片命名错误&#xff0c;但是编译都会报错&#xff0c;可以很快解决。但是前几天&#xff0c;引入一个第三方aar包后&#xff0c;项目编译正确&#xff0c;但是就是R文件报错&#xff0c;找不到R文件&#xff0c;整个…

1.0 算法本机调试方法

算法的本机调试方法&#xff1a; 从本地文件中读取测试数据&#xff0c;进行算法调试。 例&#xff1a;读取两个数&#xff0c;输出和。 1 2 11 22 111 222 输出&#xff1a; 3 33 333 #include <fstream> //读取本地文件需要此头文件。调试完成后&#xff0c;提…

[转]Excel数据转化为sql脚本

在实际项目开发中&#xff0c;有时会遇到客户让我们把大量Excel数据导入数据库的情况。这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库。 1 在数据前插入一列单元格&#xff0c;用来拼写sql语句。 具体写法&#xff1a;"insert into t_student (id,name,age…

void Update ( ) 更新 void FixedUpdate ( )

void Update ( ) 更新 void FixedUpdate ( ) 固定更新 相同点&#xff1a;当MonoBehaviour启用时&#xff0c;其在每一帧被调用&#xff0c;都是用来更新的。 异同点&#xff1a;第一点不同&#xff1a; Update()每一帧的时间不固定&#xff0c;即第一帧与第二帧的时间间隔t…

海量数据库的查询优化及分页算法方案(一)

随着“金盾工程”建设的逐步深入和公安信息化的高速发展&#xff0c;公安计算机应用系统被广泛应用在各警种、各部门。与此同时&#xff0c;应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀&#xff0c;一些大规模的系统&#xff0c;如人口系统的数据…

【点分治】luoguP2664 树上游戏

应该是一道中等难度的点分&#xff1f;麻烦在一些细节。 题目描述 lrb有一棵树&#xff0c;树的每个节点有个颜色。给一个长度为n的颜色序列&#xff0c;定义s(i,j) 为i 到j 的颜色数量。以及 现在他想让你求出所有的sum[i] 输入输出格式 输入格式&#xff1a; 第一行为一个整数…

EasyJoyStick使用以及两种操作杆 EasyJoyStick的使用方法,简单的不能再简单 Hedgehog Team-》Easy Touch -》Add Easy Touch For C#

EasyJoyStick使用以及两种操作杆EasyJoyStick的使用方法&#xff0c;简单的不能再简单Hedgehog Team-》Easy Touch -》Add Easy Touch For C#Hedgehog Team-》Easy Touch -》Extensions-》Adding A New Joystick配置如图&#xff1a;然后看一下配置&#xff0c;我喜欢掌控性强一…

2.1 vector

表结构的数组实现随机访问快速尾插动态调整所占内存空间#include<vector>从0开始计数创建vector对象的三种方法&#xff1a; 1. vector<int> v;2. vector<int> v(10); //默认值为03. vecotr<double> v(10,8.6); //为每个元素指定初始值尾插&#xff1a…

文件系统管理 之 文件和目录访问权限设置

一、文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限&#xff0c;这些访问权限决定了谁能访问和如何访问这些文件和目录。 通过设定权限可以从以下三种访问方式限制访问权限&#xff1a;只允许用户自己访问&#xff1b;允许一个预先指定的用户组中的用户访问&…

Web渗透实验:基于Weblogic的一系列漏洞

1. 攻击机windows10 192.168.2.104 2. 靶机ip: 192.168.2.109(linux Ubantu) 192.168.2.111(windows2008R264位) 第一步&#xff1a;启动靶机服务 分别为linux和windows windows环境搭建&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/16KyYb1v1rP9uJ6-5MBotVw   提取…

9 月 19 日,腾讯云安全中心监测到  Apache Tomcat 修复了2个严重级别的漏洞, 分别为: 信息泄露漏洞(CVE-2017-12616)、远程代码执行漏洞(CVE-2017-12615

9 月 19 日&#xff0c;腾讯云安全中心监测到 Apache Tomcat 修复了2个严重级别的漏洞&#xff0c; 分别为&#xff1a; 信息泄露漏洞&#xff08;CVE-2017-12616&#xff09;、远程代码执行漏洞&#xff08;CVE-2017-12615&#xff09;&#xff0c;在某些场景下&#xff0c;攻…

2.0 STL泛型编程

Standard Template Library 在命名空间std中定义了常用的数据结构和算法 三种类型的组件&#xff1a; 容器&#xff1a; ——vector、string ——set、multiset、map、multimap ——list ——bitset ——stack ——deque、queue、priority_queue 迭代器 算法&…

SQL联合更新

update CCTDB..Area_Infoset ParentStrb.ParentStrfrom CCTDB..Area_Info a inner join TempArea bon a.AreaId b.AreaId转载于:https://www.cnblogs.com/davidgu/archive/2012/08/10/2631289.html