- 博客(105)
- 资源 (1)
- 收藏
- 关注
转载 hive之UDF整理
Hive UDF整理(可以直接在mysql上测试,hive中没有伪表,需要手动创建,反应慢) 字符串函数字符串长度函数:length语法: length(string A)返回值: int说明:返回字符串A的长度举例:hive> select length(‘abcedfg’) from dual;7字符串反转函数:reverse
2014-05-08 13:34:42
1239
转载 数据仓库的深入理解
用我自己通俗的语言和你说的简单些其实它们都是具体的某种数据库(比如说oracle,informix它们的实例)--数据库用来存储业务数据--而数据仓库用来存储数据库的导出数据(通过ETL自动抽取、定时调度)它们的最终目的是:企业管理者的决策支持与分析。往高了谈,现在时兴的BI正包括数据库、数据仓库、ETL所有的知识,但它其实并不是一门新的知识。 以下是学术界对DW和BI的研究
2014-05-08 13:26:08
1672
转载 数据仓库和传统数据库的区别
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实
2014-05-08 13:24:07
2974
转载 HiveSQL的执行过程分析
首先,我们看一下hive的整个系统架构:我们可以发现,hive主要由以下几部分组成:客户端/ThriftServer/Driver/MetaStore四部分组成。其中可用的客户端包括:CLI(命令行界面)/JDBC或者ODBC客户端/WEB接口界面,我们可以通过上面三种客户端向hive提交我们的命令。ThriftServer:Jdbc或者Odbc通过
2014-05-08 11:18:25
3421
转载 [Hive]从一个经典案例看优化mapred.map.tasks的重要性
我所在公司所使用的生产Hive环境的几个参数配置如下:dfs.block.size=268435456hive.merge.mapredfiles=truehive.merge.mapfiles=truehive.merge.size.per.task=256000000mapred.map.tasks=2 因为合并小文件默认为true,而dfs.block.size与
2014-05-07 19:00:50
1104
转载 Hadoop计算中的Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce,Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里我尽
2014-05-07 11:03:41
598
转载 CPU位数、核数、个数
32 or 64linux下查看操作CPU的运行位数:getconf LONG_BIT如结果是32,表示当前CPU工作在32位模式下(即操作系统是32位的),但并不表示CPU一定是32位的(64位的也可以当32位的来用)。要查看cpu是否支持64bit,方法如下:# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc
2014-05-07 10:44:39
1006
转载 hadoop 调优1
Hadoop调优mapred.tasktracker.map.tasks.maximum 官方解释:The maximum number of map tasks that will be run simultaneously by a task tracker. 我的理解:一个tasktracker最多可以同时运行的map任务数量 默认值
2014-05-07 09:31:28
842
转载 史上最深入解析hadoop调优,没有之一!
hadoop作业调优参数整理及原理1 Map side tuning参数1.1 MapTask运行内部原理当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个m
2014-05-06 23:01:29
983
原创 hadoop中的TextInputFormat类源码分析
在“天龙八部”(map+reduce执行的八大步骤)第一步的时候,需要指定用哪个类对输入文件进行格式化,代码是:job.setInputFromatClass(TextInputFormat.class)—>(进入到源码),进入到TextInputFormat类中发现它继承了FileInputFormat抽象类,而FileInputFormat继承了InputFormat抽象类,在InputFor
2014-05-06 16:51:35
1416
转载 Hadoop源代码分析(完整版)
Hadoop源代码分析(一)关键字: 分布式云计算Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。 GoogleCluster:http://research.google.com/archive/googlecluster.html Chubby:http://labs.google.com/papers/chub
2014-05-06 15:56:24
1886
原创 mapreduce的一般运行步骤
map任务处理过程第一:读取HDFS中的文件内容,对输入的每一行解析成键值对,每一对键值对调用一次map函数第二:写自己的逻辑map函数,对输入的处理,装换成新的键值对输出第三:对输出的进行分区第四:对不同分区的数据,按照key进行排序和分组,分组时把相同的key的value放到一个集合中第五:(可选)分组后进行数据的归约处理 reduce任
2014-05-06 10:09:39
1306
原创 job提交的源码分析
job.waitForCompletion(ture),这个方法属于job类—>它里面有一个submit()方法—>submit方法里面又有一个connect()方法,它的作用是连接到jobtracker—>在connect()方法中,创建了一个jobClient类的对象时,调用jobClient构造方法时,读取配置文件中的mapred-sie.xml中name为“mapred.job.track
2014-05-06 10:06:19
820
转载 如何在hadoop中控制map的个数
hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数。但是通过这种方式设置map的个数,并不是每次都有效的。原因是mapred.map.tasks只是一个hadoop的参考数值,最终map的个数,还取决于其他的因素。 为了方便介绍,先来看几个名词:block_size : hdfs的文件块大小,默认为64M,可
2014-05-06 09:53:16
1656
原创 RTS和RTS
通信协议中的RTS/CTS协议:即请求发送/允许发送协议,相当于一种握手协议,主要用来解决"隐藏终端"问题。"隐藏终端"(Hidden Stations)是指,基站A向基站B发送信息,基站C未侦测到A也向B发送,故A和C同时将信号发送至B,引起信号冲突,最终导致发送至B的信号都丢失了。"隐藏终端"多发生在大型单元中(一般在室外环境),这将带来效率损失,并且需要错误恢复机制。当需要传送大容量文件时,
2014-05-06 08:45:37
1216
转载 windows下使用Eclipse运行MapReduce程序出错: Failed to set...
windows下使用Eclipse运行MapReduce程序出错: Failed to set...在windows下用Eclipse运行MapReduce程序会报错:12/04/24 15:32:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfo
2014-05-05 21:14:57
983
转载 hadoop SecondNamenode详解
SecondNamenode名字看起来很象是对第二个Namenode,要么与Namenode一样同时对外提供服务,要么相当于Namenode的HA。真正的了解了SecondNamenode以后,才发现事实并不是这样的。下面这段是Hadoop对SecondNamenode的准确定义:* The Secondary Namenode is a helper to the primary
2014-05-04 10:41:19
1428
转载 深度分析如何在Hadoop中控制Map的数量
很多文档中描述,Mapper的数量在默认情况下不可直接控制干预,因为Mapper的数量由输入的大小和个数决定。在默认情况下,最终input占据了多少block,就应该启动多少个Mapper。如果输入的文件数量巨大,但是每个文件的size都小于HDFS的blockSize,那么会造成启动的Mapper等于文件的数量(即每个文件都占据了一个block),那么很可能造成启动的Mapper数量超出限制而导
2014-05-03 19:51:02
1016
转载 Hadoop Reducer个数设置
在默认情况下,一个MapReduce Job如果不设置Reducer的个数,那么Reducer的个数为1。具体,可以通过JobConf.setNumReduceTasks(int numOfReduceTasks)方法来设置Reducer的个数。那么,如何确定Reducer的个数呢,hadoop documentation 推荐了两个计算公式: •0.95 * NUMBER_OF_NOD
2014-05-03 18:34:08
2296
转载 Hadoop 权限管理
如下图,hadoop访问控制分为两级,其中ServiceLevel Authorization为系统级,用于控制是否可以访问指定的服务,例如用户/组是否可以向集群提交Job,它是最基础的访问控制,优先于文件权限和mapred队列权限验证。Access Control on Job Queues在job调度策略层之上,控制mapred队列的权限。DFSPermmision用户控制文件权限。目前版本中
2014-05-03 16:57:05
929
转载 MapReduce: 提高MapReduce性能的七点建议[译]
Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式。 在医学领域,没
2014-05-03 16:54:17
544
转载 hadoop 1.X资源管理机制缺陷分析和解决方案
一、概述 用hadoop1.x版本已经有一年多了,在使用的过程中发现hadoop1.X的资源管理机制存在诸多缺陷,甚至在这种资源管理机制下会造成服务器资源的严重浪费,负载过高或者过低。本文主要介绍hdaoop1.X的资源管理机制,这种机制的缺点,总结一下自己在这方面遇到的实际问题,最后是自己对改进hadoop资源管理机制的一些想法。二、hadoop 1.x资源管理机制h
2014-05-03 16:42:18
1028
转载 MapReduce求年度最高气温值以及combiner的一点认识
MapReduce编程我是初学,下面这个例子是参考《Hadoop权威指南》第二章中的气象数据集中求取年份气温最高值的一个示例入门程序,so,如果您是老道级的高手就不用往下看了。其实这个例子的原理和统计词频是一样的,这里重点想说的还是关于combiner的一点认识,不过索性就将代码的实现写了吧。 MapReduce应用程序处理的数据是存放在HDFS(Hadoop distrib
2014-05-01 17:04:55
989
转载 使用ntpdate更新系统时间
ntpd、ntpdate的区别使用之前得弄清楚一个问题,ntpd与ntpdate在更新时间时有什么区别。ntpd不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,
2014-04-29 18:32:27
2038
转载 HBase启动不了的一个原因处理
几天没有启动hbase,今天重新启动,却发现 HRegionServer没有启动, 到 region server 查看 jps,里面只有HQuorumPeer,没有 HRegionServer。 于是就单独启动: Java代码 hbase-daemon.sh --config /usr/local/hbase/hbase-conf start regions
2014-04-28 23:59:17
5777
转载 Eclipse快捷键 10个最有用的快捷键
1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下
2014-04-26 10:36:13
771
转载 Win下Eclipse提交hadoop程序出错:org.apache.hadoop.security.AccessControlException: Permission denied: user=D
描述:在window下使用Eclipse进行hadoop的程序编写,然后Run on hadoop 后,出现如下错误:11/10/28 16:05:53 INFO mapred.JobClient: Running job: job_201110281103_000311/10/28 16:05:54 INFO mapred.JobClient: map 0% reduce 0%1
2014-04-25 17:38:04
840
转载 使用TreeSet构造排序的集合
使用TreeSet构造排序的集合TreeSet类型是J2SE中唯一可实现自动排序的类型,用法如下:MyComparator.java 1package test; 2 3import java.util.Comparator; 4 5public class MyComparatorT> implements ComparatorT> { 6 7
2014-04-18 17:30:45
837
转载 CentOS登录窗口 不能使用
启动后,一直在这个地方,点击后闪一下就又回到这个界面,无法使用界面登录。使用SSH可以连接登录,但是很多命令不能使用,好像什么东西没有加载完,或者加载不到。我什么都没有做,上周还在好好用着,这周就不行了。我也碰到了类似的问题。解决了。原因:你装了软件以后,修改了/etc/profile.忘了跟$PATH. 修复办法:ctrl+alt+F3进入命令行界
2014-04-18 14:17:41
1362
转载 Windows下Eclipse工程移到Linux下乱码问题解决
你是否曾经遇到过在Linux系统下用Eclipse查看Windows下写的程序代码,可出现的却是乱码的问题?不用着急,接下来的文章内容便会告诉你如何解决它。我们都知道Windows下的默认编码方式为gbk,而Linux下的编码方式为utf-8,eclipse在Linux下的编码方式也为utf-8,因此就出现了乱码。解决的方法是将eclipse中的编码方式改为gbk就行了。解决方法:
2014-04-18 11:22:18
1188
转载 svnserve.conf: Option expected的问题解决方法
经常有新手配置基于svnserve的subversion服务器后,在客户端访问subversion版本库时出现这个错误:svnserve.conf:12: Option expected为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,如### This file controls the configura
2014-04-17 16:45:37
880
转载 treeset
TreeSet是依靠TreeMap来实现的。TreeSet是一个有序集合,TreeSet中的元素将按照升序排列,缺省是按照自然排序进行排列,意味着TreeSet中的元素要实现Comparable接口。或者有一个自定义的比较器。我们可以在构造TreeSet对象时,传递实现Comparator接口的比较器对象。 import java.util.Iterator;i
2014-04-16 11:31:14
524
转载 理解java.lang.Class类
Java Class类理解:首先,Class是一个java类,跟Java API中定义的诸如Thread、Integer类、我们自己定义的类是一样,也继承了Object(Class是Object的直接子类)。总之,必须明确一点,它其实只是个类,只不过名字比较特殊。更进一步说,Class是一个java中的泛型类型。 对于我们自己定义的类,我们用类来抽象现实中的某些事物,比如我
2014-04-15 16:18:20
1116
1
转载 红黑树
介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和Robert Sedgewick改成一个比较摩登的名字:红黑树。红黑树和之前所讲的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,
2014-04-15 14:03:06
1329
转载 数据结构之链表
数组的两大缺点:1。若改变数组的大小就要创建一个新的数组,并需要从原数组复制所有的数据到新的数组2。数组元素在内存中依次顺序存储,这意味着向数组插入一项要移动数组中的其他元素因此,我们使用链式结构,链式结构是存储数据的结点以及指向其他节点的指针的集合。如此一来,节点可以位于内存的任意位置,而且从一个节点到另一个节点的传递可以通过在结构中存储节点间引用来实现。一。单向链表1。链表
2014-04-15 11:43:43
660
转载 ]Iterator源码探究及其与Collection类的关系
今天在试写mapreduce程序的时候,漏写一句话,造成死循环,接着造成mapreduce任务pending原因非常简单,在使用iterator的时候,漏掉了next()动作,int sum = 0; while (values.hasNext()) { sum = sum + 1;
2014-04-15 08:52:26
1374
转载 JAVA集合详解(Collection和Map接口)
在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系: java.util +Collection 这个接口extends自 --java.lang.Iterable接口 +List 接口 -ArrayList 类 -LinkedL
2014-04-14 22:46:06
1052
转载 java集合框架图
java集合框架图简化图:Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的接口组成。不同接口描述一组不同数据类型。 Java 2集合框架图 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。 实现类:8个实现类
2014-04-14 22:17:17
647
转载 String,StringBuffer与StringBuilder的区别??
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常
2014-04-14 15:47:54
485
转载 JAVASCRIPT兼容性问题
使用JavaScript检测浏览器的相关特性一、检测浏览器的名称问题: 不同的浏览器对JavaScript的标准支持也有不同,有时希望脚本能够在不同的浏览器上都能运行良好,这时需要对浏览器进行检测,确定其名称,以针对不同的浏览器编写相应的脚本。解决方案: 使用navigator对象的appName属性。 比如,要检测浏览器是否为IE,可以这么做:
2014-04-13 17:28:49
908
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅