自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

摩西YF拉比

技术的一步步前进!

  • 博客(80)
  • 收藏
  • 关注

转载 Spark:一个高效的分布式计算系统

概述什么是SparkSpark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习

2015-12-31 22:45:59 259

转载 【数据结构】之队列的java实现(二)

在上一篇博文中通过java实现了队列的连续存储,下面来讨论队列的链式存储,即链队列。链队列的定义:队列的链式存储结构简称为链队列。它是限制仅在表头删除和表尾插入的单链表。链队列的数据存储形式: 链队列基本运算的实现:[java] view plaincopyprint?package study_02.datastructure.queue;

2015-12-31 22:37:09 251

转载 【数据结构】之队列的java实现(一)

队列的定义:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。(1)允许删除的一端称为队头(Front)。(2)允许插入的一端称为队尾(Rear)。(3)当队列中没有元素时称为空队列。(4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。   队列的修改是依先进先出的原则进行的。新来的成员总是加

2015-12-31 22:35:59 300

转载 【数据结构】之链栈的java实现

链栈栈的链式存储结构称为链栈。在算法中要用到多个栈时,最好用链表作为栈的存储结构,即用指针来实现栈。用这种方式实现的栈也称为链栈。由于栈的插人和删除操作只在表头进行,因此用指针实现栈时没有必要像单链表那样设置一个表头单元。一、链栈结构及数据类型栈的链式存贮结构,也称为链栈,它是一种限制运算的链表,即规定链表中的插入和删除运算只能在链表开头进行。链栈结构见图。 链

2015-12-31 22:34:43 329

转载 【数据结构】之二叉树的java实现

二叉树的定义:二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。    二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。    这个

2015-12-31 22:33:15 312

转载 Hadoop MapReduce进阶 使用DataJoin包实现Join

Hadoop有一个叫DataJoin的包为Data Join提供相应的框架。它的Jar包存在于contrib/datajoin/hadoop-*-datajoin。为区别于其他的data join技术,我们称其为reduce-side join。(因为我们在reducer上作大多数的工作)reduce-side join引入了一些术语及概念:            1.Da

2015-12-30 14:22:08 302

转载 Hadoop中Combiner的使用

在MapReduce中,当map生成的数据过大时,带宽就成了瓶颈,怎样精简压缩传给Reduce的数据,有不影响最终的结果呢。有一种方法就是使用Combiner,Combiner号称本地的Reduce,Reduce最终的输入,是Combiner的输出。下面以《Hadoop in action》中的专利数据为例。我们打算统计每个国家的专利数目。代码如下(使用Combiner的代码注释掉):

2015-12-30 14:19:17 418

转载 Hive 体系架构

1、Hive架构与基本组成    下面是Hive的架构图。图1.1 Hive体系结构    Hive的体系结构可以分为以下几部分:    (1)用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Client模式

2015-12-28 22:01:36 776

转载 Hadoop 中高级

Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API 私塾在线《深入浅出学   Hadoop-   初级   部分》    ——   系列精品教程 视频课程地址》》》  http://sishuok.com/product/481 整体课程概览 第一部分:开始云计算之旅 第二部分:初识Hadoop 第三部分:Hadoop 环境安装部署 第四部分:H

2015-12-28 21:52:23 230

转载 Hadoop 初级

Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API 私塾在线《深入浅出学   Hadoop-   初级   部分》    ——   系列精品教程 视频课程地址》》》  http://sishuok.com/product/481 整体课程概览 第一部分:开始云计算之旅 第二部分:初识Hadoop 第三部分:Hadoop 环境安装部署 第四部分:H

2015-12-28 21:49:57 231

转载 Hbase 笔记

hbase 压缩 Hbase有两种压缩策略:minor和major。Minor compactions通常选择几个临近的小的storefiles把他们重写成一个。Minors 不会丢掉已删除或者过期的cells,只有major compactions才会做这些。有时一次Minor compactions将会选择一个s……hbase code 

2015-12-28 21:46:55 219

转载 Zookeeper 笔记

2012-08-09 15:15:41Katta源码分析 交流分类:Java 看源码,老实说我没什么很好的方法。所以,只能静下心来看,一步一步的看。    我认为每个程序都有个门,要想进入,首先得把这个门找到,而我找到的katta的门是Katta.java    Katta.java中有个main方法,接收你输入的命令(String[] args)  1.startNode …

2015-12-28 21:44:15 238

转载 Hive使用小建议;编写hive UDF方法小示例

在Hive中,某些小技巧可以让我们的Job执行得更快,有时一点小小的改动就可以让性能得到大幅提升,这一点其实跟SQL差不多。首先,Hive != SQL,虽然二者的语法很像,但是Hive最终会被转化成MapReduce的代码去执行,所以数据库的优化原则基本上都不适用于 Hive。也正因如此,Hive实际上是用来做计算的,而不像数据库是用作存储的,当然数据库也有很多计算功能,但一般并不建议在

2015-12-28 21:42:26 606

转载 hive原生和复合类型的数据加载和使用

原生类型原生类型包括TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY (Hive 0.8.0以上才可用),TIMESTAMP (Hive 0.8.0以上才可用),这些数据加载很容易,只要设置好列分隔符,按照列分隔符输出到文件就可以了。假设有这么一张用户登陆表CREATE TABLE login

2015-12-28 21:33:48 266

转载 hive udaf开发入门和运行过程详解

介绍hive的用户自定义聚合函数(UDAF)是一个很好的功能,集成了先进的数据处理。hive有两种UDAF:简单和通用。顾名思义,简单的UDAF,写的相当简单的,但因为使用Java反射导致性能损失,而且有些特性不能使用,如可变长度参数列表。通用UDAF可以使用​​所有功能,但是UDAF就写的比较复杂,不直观。本文只介绍通用UDAF。UDAF是需要在hive的sql语句和gr

2015-12-28 21:30:32 289

转载 Hive UDF 编程

HIVE允许用户使用UDF(user defined function)对数据进行处理。用户可以使用‘show functions’ 查看function list,可以使用'describe function function-name'查看函数说明。[plain] view plaincopyhive> show functions;  

2015-12-28 21:27:27 286

转载 深入浅出Hive

2012-12-24 19:30:24Hive的原理—— 深入浅出学Hive 交流分类:Java 目录: 初始Hive Hive安装与配置 Hive 内建操作符与函数开发 Hive JDBC hive参数 Hive 高级编程 Hive QL Hive Shell 基本操作 hive 优化 Hive体系结构 Hive的原理   配套视频课程   第一部分:Hive原理 为什么

2015-12-28 21:25:45 1065

转载 hive中UDF和UDAF使用说明

Hive进行UDF开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以。一、背景:Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:a)文件格式:Text File,Sequence Fileb)内存中的数据格式: Java Integer/St

2015-12-28 21:23:38 305

转载 Hadoop Hive sql语法详解5--HiveQL与SQL区别?

1.hive内联支持什么格式?2.分号字符注意什么问题?3.hive中empty是否为null?4.hive是否支持插入现有表或则分区中?5.hive是否支持INSERT INTO 表 values()?1、Hive不支持等值连接 •SQL中对两表内联可以写成:•select * from dual a,dual b where a.key = b.key;

2015-12-28 21:19:59 442

转载 Hadoop Hive sql语法详解--DQL 操作:数据查询SQL(4)

1.基本的Select 操作如何实现?2.基于Partition的查询如何实现?3.如何实现join,是否支持左连接,右连接?4.hive数据如何去重?5.ORDER BY 是否全局排序,只有一个Reduce任务?6.SORT BY 是否全局排序?7.hive是否支持exists?8.Hive不支持所有非等值的连接,为什么?1 基本的Select 操作

2015-12-28 21:18:21 304

转载 Hadoop Hive sql语法详解3--DML 操作:元数据存储(3)

hive增删改查与传统数据的区别是什么?hive不支持用insert语句一条一条的进行插入操作,也不支持update操作。数据是以load的方式加载到建立好的表中。数据一旦导入就不可以修改。DML包括:INSERT插入、UPDATE更新、DELETE删除•向数据表内加载文件•将查询结果插入到Hive表中•0.8新特性 insert into向数据表内加载

2015-12-28 21:16:38 259

转载 Hadoop Hive sql语法详解-修改表结构(2)

hive同样也面对传统数据库的一些操作,那么hive1.如何增加分区、删除分区?2.如何重命名表?3.如何修改列的名字、类型、位置、注释?4.如何增加/更新列?5.如何增加表的元数据信息?表添加一列 :hive> ALTER TABLE pokes ADD COLUMNS (new_col INT);复制代码添加一列并增加列字

2015-12-28 21:15:27 550

转载 Hadoop Hive sql语法详解1-认识hive及DDL操作(1)

hive或许我们有一个整体的认识,可以转换为mapreduce,那么具体是如何做的那?1.编写的mapreduce能否成为hive插件那?2.hive如何创建?3.hive是如何查询数据的?1.认识hive: Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据

2015-12-28 21:14:03 325

转载 Hive Sql 常用语句

Hive提供了很多的函数,可以在命令行下show functions罗列所有的函数,你会发现这些函数名与mysql的很相近,绝大多数相同的,可通过describe function functionName 查看函数使用方法。hive支持的数据类型很简单就INT(4 byte integer),BIGINT(8 byte integer),FLOAT(single precision)

2015-12-28 21:10:37 537

转载 Hive Sql 语法

Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQ

2015-12-28 18:52:44 318

转载 BFPRT 算法java实现

通常,我们需要在一大堆数中求前K大的数,或者求前K小的。比如在搜索引擎中求当天用户点击次数排名前10000的热词;在文本特征选择中求IF-IDF值按从大到小排名前K个的等等问题,都涉及到一个核心问题,即TOP-K问题。 通常来说,TOP-K问题可以先对所有数进行快速排序,然后取前K大的即可。但是这样做有两个问题。 (1)快速排序的平均复杂度为,但最坏

2015-12-27 14:24:29 2446 2

转载 二分查找java语言实现

二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。通过一次比较,将查找区间缩小一半。 折半查找是一种高效的查找方法。它可以明显减少比较次数,提高查找效率。但是,折半查找的先决条件是查找表中的数据元

2015-12-27 14:13:45 445

转载 归并排序 Java实现

归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合

2015-12-27 14:04:45 222

转载 堆排序java代码实现

堆排序是一种利用完全二叉树来解决问题的高效算法,合法的最大堆树要满足一个条件就是每一个结点值都要大于或等于它的孩子结点值。在一个数组中那专业法表示为:arrays[i]>=arrays[2*i+1] && arrays[i]>=arrays[2*i+2]; 最小堆类似,只要改为冒最小值即可。堆排序树的构造过程找最大值过程由下图,数组arrays[0....n]为:17,8,45,8

2015-12-27 13:57:43 314

转载 Java实现冒泡排序算法

一、基本思路:冒泡排序是一种简单的交换类排序。其基本思路是,从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。一般地,对n个元素进行冒泡排序,总共需要进行n-1趟。第1趟需要比较n-1次,第2趟需要比较n-2次,.....

2015-12-27 13:53:59 288

转载 快速排序算法java实现

所谓的快速排序的思想就是,首先把数组的第一个数拿出来做为一个key,在前后分别设置一个i,j做为标识,然后拿这个key对这个数组从后面往前遍历,及j--,直到找到第一个小于这个key的那个数,然后交换这两个值,交换完成后,我们拿着这个key要从i往后遍历了,及i++;一直循环到i=j结束,当这里结束后,我们会发现大于这个key的值都会跑到这个key的后面,不是的话就可能你写错了,小于这个key的就

2015-12-27 13:52:06 321

转载 各种排序算法的分析及java实现

排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。  排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。  内排序有可以

2015-12-27 13:46:50 240

转载 程序员必知必会的10道算法

算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(Divide and conquer)策

2015-12-27 13:28:40 373

转载 MapReduce 全排列算法实现

主要思想就是在要排序的所有数据中随机取出一定量的数据,这些数据取自三个部分,1. 选取总得数据 ( 键值对 ) 数目2. 选取的 split 数目3. 每个 split 选取的键值对数目(只要达到总得键值对数目马上停止采集) 接下来对整个选取得键值对进行全局排序,然后根据工作配置的 reducer task 数目 R 来选取关键 key ,将采集后而且排序的 key 分成 R 

2015-12-27 12:21:25 345

转载 MapReduce自定义排序

有人说mapreduce中不是有一个自动排序和分组(按key排序和分组)的嘛,我们为什么还需要自己写排序算法呢?因为很多时候这种自动排序无法满足我们的需求,所以我们需要自定义排序算法!需求1:#首先按照第一列升序排列,当第一列相同时,第二列升序排列3 33 23 12 22 11 1----结果---------------1 12 1

2015-12-27 12:18:07 498

转载 源代码阅读引导

为了帮助读者更好地阅读源代码,笔者特意安排了本节。下面我们分两部分对读者进行指导。1. Hadoop RPCHadoop RPC内部实现位于源代码目录中hadoop-common-project/hadoop-common/src/main/java下的org.apache.hadoop.ipc包中,而YARN对RPC的Protocol Buffers封装则位于hadoop-yar

2015-12-27 09:59:16 346

转载 事件驱动带来的变化

在MRv1中,对象之间的作用关系是基于函数调用实现的,当一个对象向另外一个对象传递信息时,会直接采用函数调用的方式,且整个过程是串行的。比如,当TaskTracker需要执行一个Task时,将首先下载Task依赖的文件(JAR包、二进制文件等、字典文件等)、然后执行Task。同时在整个过程中会记录一些关键日志,该过程可用图3-16描述。在整个过程中,下载依赖文件是阻塞式的,也就是说,前一个任务未完

2015-12-27 09:45:52 597

转载 YARN服务库和事件库的使用方法(1)

为了说明YARN服务库和事件库的使用方法,本小节介绍一个简单的实例,该实例可看做MapReduce ApplicationMaster(MRAppMaster)的简化版。该例子涉及任务和作业两种对象的事件以及一个中央异步调度器。步骤如下。1)定义Task事件。 public class TaskEvent extends AbstractEventTaskEventType> {

2015-12-27 09:43:45 273

转载 YARN事件库

YARN采用了基于事件驱动的并发模型,该模型能够大大增强并发性,从而提高系统整体性能。为了构建该模型,YARN将各种处理逻辑抽象成事件和对应事件调度器,并将每类事件的处理过程分割成多个步骤,用有限状态机表示。YARN中的事件处理模型可概括为图3-14所示。整个处理过程大致为:处理请求会作为事件进入系统,由中央异步调度器(Async-Dispatcher)负责传递给相

2015-12-27 09:42:22 456

转载 服务库与事件库

本节介绍服务库和事件库。3.4.1 服务库对于生命周期较长的对象,YARN采用了基于服务的对象管理模型对其进行管理,该模型主要有以下几个特点。将每个被服务化的对象分为4个状态:NOTINITED(被创建)、INITED(已初始化)、STARTED(已启动)、STOPPED(已停止)。任何服务状态变化都可以触发另外一些动作。可通过组合的方式对任意服务进行组合,

2015-12-27 09:41:33 348

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除