![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hadoop
文章平均质量分 83
「已注销」
这个作者很懒,什么都没留下…
展开
-
理解Hadoop YARN架构
1. 介绍YARN(Yet Another Resource Negotiator)是一个通用的资源管理平台,可为各类计算框架提供资源的管理和调度。 其核心出发点是为了分离资源管理与作业调度/监控,实现分离的做法是拥有一个全局的资源管理器(ResourceManager,RM),以及每个应用程序对应一个的应用管理器(ApplicationMaster,AM),应用程序由一个作业(Job)或者Job原创 2016-07-11 18:53:55 · 16211 阅读 · 2 评论 -
MapReduce shuffle过程剖析及调优
MapReduce简介在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的。数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问题,并提供了很多配置项及扩展点。一个MapReduce的大致数据流如下图:更详细的MapReduce介绍参考Hadoop MapReduce原理与实例。Mapper的原创 2016-07-18 01:48:03 · 16151 阅读 · 1 评论 -
Hadoop HDFS高可用(HA)
版本记录:2016-07-19 凌晨 初稿在Hadoop 1.x 中,Namenode是集群的单点故障,一旦Namenode出现故障,整个集群将不可用,重启或者开启一个新的Namenode才能够从中恢复。值得一提的是,Secondary Namenode并没有提供故障转移的能力。集群的可用性受到影响表现在:当机器发生故障,如断电时,管理员必须重启Namenode才能恢复可用。在日常的维护升级原创 2016-07-19 09:18:05 · 5980 阅读 · 2 评论 -
Sqoop: 环境搭建、实例及概念
简介Sqoop是一个用于在外部结构化数据与Hadoop之间导入导出数据的工具。 Apache Sqoop is a tool designed for efficiently transferring bulk data between Apache Hadoop and structured datastores such as relational databases.Sqoop:是一个原创 2016-07-30 00:12:11 · 4858 阅读 · 0 评论 -
Hive:环境搭建及例子
Hive是由Facebook最初开发的基于Hadoop的数据仓库工具,提供了类SQL的查询语言Hive SQL(HQL)。在内部,Hive将用户的SQL语句转化为一系列的MapReduce作业,并提交到集群中运行。在Hive中,数据通过表来组织,提供了一种将表结构附加(attaching)到HDFS中的数据的一种方式。诸如表的Schema等元数据存放在一个称为metastore的数据库中。默认情况下原创 2016-07-30 02:26:44 · 4044 阅读 · 0 评论 -
Hive自定义函数-UDF
当Hive内置的函数无法满足需要时,可以自定义函数。Hive允许我们在查询中轻易地使用自定义的函数。UDF必须使用Java语言,如果想要其他语言来实现,可以考虑SELECT TRANSFORM查询,它允许Hive与自定义的脚本通过Steam进行交互,类似MapReduce Streaming和Pig Stream。Hive中有3中类型的自定义函数:通常的UDF、UDAF(user-defined a原创 2016-07-30 20:55:40 · 4123 阅读 · 0 评论 -
Hive数据类型
1. Hive数据类型Hive支持原始数据类型和复杂类型,原始类型包括数值型,Boolean,字符串,时间戳。复杂类型包括数组,map,struct。下面是Hive数据类型的一个总结: 分类 类型 描述 字面量示例 原始类型 BOOLEAN true/false TRUE TINYINT 1字节的有符号整数 -128~127 1Y SMALL原创 2016-07-30 21:06:57 · 53047 阅读 · 3 评论 -
Hive与传统的数据库
1. Hive vs. 传统的数据库Hive与传统的关系型数据库有很多类似的地方,例如对SQL的支持。但是其基于HDFS与MapReduce的事实使得它与传统的数据库在很多方面有很大的不同,在一些特性的支持下也受到底层架构的限制,但是这些限制随着版本迭代正在不断被消除,使得Hive看起来越来越像传统的数据库。1.1 Schema on Read vs. Schema on Write在传统的数据库中原创 2016-07-30 21:13:07 · 2358 阅读 · 0 评论 -
Hive之数据查询
Hive为大规模的数据分析提供了一种类SQL的查询语言,在数据仓库中是一种很常见的工具。1. 排序和聚合排序使用常规的ORDER BY来完成,Hive在处理ORDER BY请求时,并行排序,最终产生一个全局排序结果。如果全局有序不是必须的,那么可以使用Hive的非标准扩展SORT BY,它返回的是一个局部有序的结果,每个Reducer内部有序,每个Reducer产生一个有序的文件。有时候我们想控制数原创 2016-07-31 02:11:29 · 5366 阅读 · 2 评论 -
理解Hive表(Hive Table)
Hive表逻辑上有表的数据和相关的元数据组成。元数据描述表的结构,索引等信息。数据通常存放在HDFS中,虽然任意的Hadoop文件系统都能支持,例如Amazon的S3或者而本地文件系统。元数据则存在关系型数据库中,嵌入式的默认使用Derby,MySQL是一种很常用的方案。许多关系型数据库都提供了命名空间的概念,用于划分不同的数据库或者Schema。例如MySQL支持的Database概念,Postg原创 2016-07-31 00:22:19 · 21364 阅读 · 4 评论 -
Hue 3.9 Tarball安装及界面一览
Hue是Cloudera开源的一个Hadoop UI,由Cloudera Desktop演化而来。面向用户提供方便的UI用于平时的Hadoop操作中。Apache Ambari面向的是管理员,用于安装、维护集群,而不是使用集群。两者针对的是不同需求。Hue安装:本文环境配置如下:OS: CentOS 6.6 FinalHadoop: 2.6.0Hue 3.9官网教程:http://gethu原创 2016-08-03 06:16:04 · 2020 阅读 · 0 评论 -
Hadoop中的几种文件格式
Hadoop中的文件格式大致上分为面向行和面向列两类:面向行:同一行的数据存储在一起,即连续存储。SequenceFile,MapFile,Avro Datafile。采用这种方式,如果只需要访问行的一小部分数据,亦需要将整行读入内存,推迟序列化一定程度上可以缓解这个问题,但是从磁盘读取整行数据的开销却无法避免。面向行的存储适合于整行数据需要同时处理的情况。面向列:整个文件被切割为若干列数据,每原创 2016-08-01 19:50:28 · 21426 阅读 · 0 评论 -
HBase分布式集群搭建
本文详细介绍搭建分布式HBase集群的步骤,并给出一个简单的例子。假设在集群上已经安装好JDK以及HDFS,如果还未安装,请参考这篇详细的Hadoop集群搭建步骤。HBase集群组成HBase采用主从模式,由Master和RegionServer组成,使用ZooKeeper作为协调服务。集群个角色如下:下面我们搭建的集群由3个节点组成,一台作为Master,另外两台作为RegionServer。Zo原创 2016-08-02 21:53:08 · 1341 阅读 · 0 评论 -
使用Spark和Pig统计每秒钟微博数量
手头有一个新浪微博的数据集,大概在1亿条左右。用Pig和Spark写了几行代码,基于400w条微博,统计了每秒钟发了多少条微博。 Life is too short , show me the code.将数据从本地拷到HDFS上:hadoop fs -copyFromLocal /home/data/weibo/201605/weibo_freshdata.2016-05-01 /input原创 2016-07-28 00:02:36 · 2531 阅读 · 0 评论 -
Apache Pig:干货长文带你完全入门
本文内容来自Hadoop权威指南,个人阅读的时候顺带整理翻译而来,并加入了自己的理解以及实际运行的配置。涵盖了Pig的核心内容,非常值得细度。版本记录:2016-07 初稿1. 环境配置:wget http://mirror.bit.edu.cn/apache/pig/pig-0.15.0/pig-0.15.0.tar.gztar zxvf pig-0.15.0.tar.gzmv ./pig-原创 2016-07-27 21:33:40 · 8082 阅读 · 1 评论 -
Hadoop MapReduce原理及实例
MapReduce是用于数据处理的一种编程模型,简单但足够强大,专门为并行处理大数据而设计。1. 通俗理解MapReduceMapReduce的处理过程分为两个步骤:map和reduce。每个阶段的输入输出都是key-value的形式,key和value的类型可以自行指定。map阶段对切分好的数据进行并行处理,处理结果传输给reduce,由reduce函数完成最后的汇总。例如从大量历史数据中找出往年原创 2016-07-16 22:14:53 · 40222 阅读 · 9 评论 -
Hadoop单机安装详细步骤
环境准备安装Java过程简单,这里省略具体安装步骤。安装后确认相应版本的Java已安装,这里选择1.7。java -version创建Hadoop账号为Hadoop创建一个专门的账号是很好的实践:sudo adduser hadoopsudo passwd hadoop授予 Hadoop root权限 为了测试,图方便,这里给Hadoop root权限,生产环境不建议这样做。 使用root权限原创 2016-07-11 00:03:12 · 8527 阅读 · 1 评论 -
8个SQL-on-Hadoop框架
数据的操作语言是SQL,因此很多工具的开发目标自然就是能够在Hadoop上使用SQL。这些工具有些只是在MapReduce之上做了简单的包装,有些则是在HDFS之上实现了完整的数据仓库,而有些则介于这两者之间。这样的工具有很多,来自于Shoutlet的软件开发工程师Matthew Rathbone最近发表了一篇文章,他列举了一些常转载 2016-07-22 13:30:48 · 1079 阅读 · 0 评论 -
理解YARN Scheduler
在YARN中,资源调度器(Scheduler)是ResourceManager中的重要组件,主要负责对整个集群(CPU,内存)的资源进行分配和调度,分配以资源Container的形式分发到各个应用程序中(如MapReduce作业),应用程序与资源所在节点的NodeManager协作利用Container完成具体的任务(如Reduce Task)。Scheduler以可插拔的形式来配置,框架默认提原创 2016-07-23 02:02:46 · 3105 阅读 · 2 评论 -
Hadoop集群搭建详细步骤(2.6.0)
本文记录在3台物理机上搭建Hadoop 2.6.0的详细步骤及碰到的问题解决。默认使用root账号操作,实际中建议使用专用的hadoop用户账号。1. 环境机器: 物理机3台,ip分别为192.168.1.130、192.168.1.132、192.168.1.134 操作系统: CentOS 6.6 Java: 1.7 Hadoop: 2.6.0请确保JDK已安装,使用java -versi原创 2016-07-12 22:38:05 · 23066 阅读 · 1 评论 -
Avro:RPC例子
Apache Avro除了提供一种数据序列化机制以外,还提供了一套RPC机制。本文基于Avro协议,实现一个Java语言编写的RPC Server,以及一个Python语言编写的客户端。定义一个RPC协议Acro的RPC协议也是使用JSON来定义,通常以.avpr结尾。这个例子中我们实现一个简单的邮件发送服务,该服务定义如下:{ "namespace": "me.lin.avro.rpc",原创 2016-07-24 00:33:43 · 2077 阅读 · 1 评论 -
Avro:入门例子
Avro是由Hadoop创始人Doug Cutting创建的一种语言无关的数据序列化和RPC框架,用于解决Hadoop中Writable序列化机制的缺点:缺少跨语言特性,与Java绑的太紧,数据格式很难被JVM外的语言进行处理。本文使用Specific API和Generic API来展示Avro的序列化和反序列化。创建Maven项目pom文件如下:<project xmlns="http://ma原创 2016-07-23 22:35:54 · 6189 阅读 · 0 评论 -
Avro:MapReduce应用
Apache Avro框架提供:丰富的数据类型(原始类型和复杂类型)紧凑、快速的二进制文件格式(.avro)一种容器文件,用于存储avro数据RPC容易与动态语言集成,无需生成代码。代码生成作为一种优化,只有在静态语言中使用才有价值。下面是一个Avro MapReduce的实例,MapReduce作业统计Avro文件中的数据。Avro文件中的对象Schema如下:{"namespace"原创 2016-07-24 13:04:49 · 1915 阅读 · 0 评论 -
Avro:使用Avro MapReduce进行排序
在MapReduce作业中,框架保证Reducer收到的key是有序的。利用这一点,我们可以对Avro文件进行排序。假设我们有如下的Schema:{"namespace": "me.lin.avro.mapreduce", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"},原创 2016-07-24 15:04:49 · 2144 阅读 · 0 评论 -
HDFS安全模式详解
什么是安全模式安全模式是HDFS所处的一种特殊状态,在这种状态下,文件系统只接受读数据请求,而不接受删除、修改等变更请求。在NameNode主节点启动时,HDFS首先进入安全模式,DataNode在启动的时候会向namenode汇报可用的block等状态,当整个系统达到安全标准时,HDFS自动离开安全模式。如果HDFS出于安全模式下,则文件block不能进行任何的副本复制操作,因此达到最小的副本数量原创 2016-07-13 21:07:41 · 17460 阅读 · 2 评论 -
Spark核心概念理解
本来主要内容来自己《Hadoop权威指南》英文版中的Spark章节,可以说是个人的翻译版本,涵盖了主要的Spark概念。安装Spark首先从spark官网下载稳定的二进制分发版本,注意与你安装的Hadoop版本相匹配:wget http://archive.apache.org/dist/spark/spark-1.6.0/spark-1.6.0-bin-hadoop2.6.tgz解压:tar xz原创 2016-07-26 00:30:37 · 6975 阅读 · 1 评论 -
Spark RDD
RDD最初是由伯克利大学的几个教授提出的,原始论文Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing可以在这里下载,非常值得认真研究。RDD(Resilient Distributed DataSet)是Spark最核心的抽象。它代表的是元素的集合,Spark的文档中原创 2016-07-26 19:49:22 · 2057 阅读 · 0 评论 -
深入理解HDFS:Hadoop分布式文件系统
文本详细介绍了HDFS中的许多概念,对于理解Hadoop分布式文件系统很有帮助。1. 介绍在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。而一旦在系统中,引入网络,就不可避免地引入了所有网络编程的复杂性,例如挑战之一是如果保证在节点不可用的时候数据不丢失。传统的网络文件系统(NFS)虽然也称为分布式文件系统,但是其存在一些限制。由于原创 2016-07-15 22:33:44 · 56165 阅读 · 8 评论 -
[干货] Flume综述与实例
Flume是一个分布式的、可靠的数据收集、集合和移动的组件。基于流式数据模型,非常健壮、支持容错、故障转移等特性。本用实例辅助说明Flume的大部分核心概念。 安装FLumeFlume的安装非常简单,其核心就是agent。从官网下载稳定版本:wget http://apache.fayea.com/flume/1.6.0/apache-flume-1.6.0-b原创 2016-07-23 17:19:49 · 3631 阅读 · 0 评论