hadoop
easonworld
这个作者很懒,什么都没留下…
展开
-
优化HIVE
1、提前过滤数据,减少中间数据依赖:尽量尽早的过滤数据,减少每个阶段的数据量,对于分区表要加分区,同时只选择需要使用到的数据。如下,改写后的写法将会大大减少join的数据量select ... from Ajoin Bon A.key = B.keywhere A.userid>转载 2016-01-20 18:02:02 · 552 阅读 · 0 评论 -
Pig、Hive、MapReduce 解决分组 Top K 问题
问题:有如下数据文件 city.txt (id, city, value)cat city.txt 1 wh 5002 bj 6003 wh 1004 sh 4005 wh 2006 bj 1007 sh 2008 bj 3009 sh 900需要按 city 分组聚合,然后从每组数据中取出前两条value最大的记录。1、这是实际业务转载 2014-06-03 10:31:22 · 639 阅读 · 1 评论 -
调整Hbase中cell大小
跑mapreduce任务时,在reduce时遇到下列错误:KeyValue size too large hadoop解决办法:修改hbase-site.xml增加hbase.client.keyvalue.maxsize500mhbase.client.keyvalue.maxsize 缺省10MB,包括row key,qualifie转载 2014-07-04 11:46:23 · 6317 阅读 · 0 评论 -
MR二次排序
关于二次排序主要涉及到这么几个东西:在0.20.0 以前使用的是setPartitionerClass setOutputkeyComparatorClasssetOutputValueGroupingComparator 在0.20.0以后使用是job.setPartitionerClass(Partitioner p);job.se转载 2014-07-01 18:48:00 · 1413 阅读 · 0 评论 -
hive udf \udaf\udtf
先自定义一个UDAF,由于udaf是多输入一条输出的聚合,所以结果拼成字符串输出,代码如下:public class Top4GroupBy extends UDAF { //定义一个对象用于存储数据 public static class State { private Map counts; private int limit转载 2014-05-27 13:53:39 · 433 阅读 · 0 评论 -
java\streaming 传外部参数
本文主要讲解三个问题: 1 使用Java编写MapReduce程序时,如何向map、reduce函数传递参数。 2 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何向map、reduce脚本传递参数。 3 使用Streaming编写MapReduce程序(C/C++, Shell, Python)时,如何转载 2014-06-27 18:04:07 · 1861 阅读 · 0 评论 -
Hadoop Streaming 实战: 传递环境变量
环境变量可以理解程序运行的系统环境,用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。 用JAVA实现的Map-Reduce程序可以通过Hadoop提供的编程接口访问作业的配置信息,而streaming程序不能使用JAVA编程接口,因此,streaming框架通过设置环境变量的方式给mapper、reducer程序传递配置信息。常用的环境变量如下:转载 2014-06-06 16:07:47 · 471 阅读 · 0 评论 -
hive udf udaf 一例
udf/** * 分组后取前n个值 */package test;import org.apache.hadoop.hive.ql.exec.UDF; public final class Rank extends UDF{private int counter;private String last_key;public int evaluat转载 2014-06-03 10:38:06 · 673 阅读 · 0 评论 -
hive优化 map+reduce+split
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过setdfs.block.size;命令查看到,该参数不能自定义修改);2. 举例: a) 假设input目录下有1个文件a转载 2014-04-25 15:05:40 · 552 阅读 · 0 评论 -
udf打jar包
1. 编译javac -cp /opt/hadoop/hadoop-core-1.1.1.jar:/opt/hadoop/hive/lib/hive-exec-0.10.0.jar ToWeek.java用前两个jar包来编译Toweek.java结果:在当前目录下生成ToWeek.class2.打jar包把hiveUDF下所有的东西(ToWeek.class原创 2013-12-09 16:18:41 · 2712 阅读 · 0 评论 -
csv导入mysql
提前打开infile开关 --local-infilemysql -h$host -u$user -p$pass -D$db --local-infile=1 -e"load data local infile \""$conv_map"\" into table "$table";"原创 2014-03-03 18:29:45 · 527 阅读 · 0 评论 -
内部、外部分区表
内部分区表:create table partable(id string,age string)partitioned by (city string,dt string)row format delimitedfields terminated by ','stored as textfile;alter table partable add partiti原创 2014-02-19 17:49:52 · 523 阅读 · 0 评论 -
group by 后用 udaf 求 top n
作者:liuzhoulong 发表于2012-7-26 14:52:57 原文链接先自定义一个UDAF,由于udaf是多输入一条输出的聚合,所以结果拼成字符串输出,代码如下:public class Top4GroupBy extends UDAF { //定义一个对象用于存储数据 public static class State { priva转载 2014-01-27 18:01:02 · 666 阅读 · 0 评论 -
MAPJOIN来解决实际的问题
最近开发中遇到几种应用,刚好使用MAPJOIN来解决实际的问题。应用共同点如下:1: 有一个极小的表2: 需要做不等值join操作(a.x 这种操作如果直接使用join的话语法不支持不等于操作,hive语法解析会直接抛出错误如果把不等于写到where里会造成笛卡尔积,数据异常增大,速度会很慢。甚至会任务无法跑成功~根据mapjoin的计算原理,MAP转载 2014-01-27 17:45:53 · 553 阅读 · 0 评论 -
hive中使用保留关键字作为表中的列名
hive中使用保留关键字作为表中的列名会报错,譬如会提示报错,sort是一个关键字如何解决这个问题?将关键字用反引号括起来即可,譬如转载 2014-01-22 13:51:34 · 8656 阅读 · 2 评论 -
MR 中获取输入文件路径
在mapper中获取当前正在处理的HDFS文件名/HDFS目录名有时候,Hadoop是按行来对数据进行处理的,由于对每一行数据,map()函数会被调用一次,我们有时可以根据文件名/目录名来获取一些信息,从而把它们输出,例如,目录名中包含了日期,则我们可以取出来并输出到Reducer。在map()函数中,我们可以这样取文件名:12转载 2014-07-08 14:58:46 · 1650 阅读 · 0 评论 -
RHadoop实践系列之二:RHadoop安装与使用
2013/03/24软件应用hadoop、MapReduce、R、rhadoop、海量数据张 丹Author:张丹(Conan)Date: 2013-03-07Weibo: @Conan_ZEmail: bsspirit@gmail.comBlog: http://www.fens.me/blogAPPs:@晒粉丝 http://www.fens.me转载 2014-06-18 18:25:15 · 742 阅读 · 0 评论 -
hive struct\map\array
hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取Arrays:array中的转载 2014-08-05 19:21:41 · 565 阅读 · 0 评论 -
mR 随机抽样
1. 问题由来Google曾经有一道非常经典的面试题:给你一个长度为N的链表。N很大,但你不知道N有多大。你的任务是从这N个元素中随机取出k个元素。你只能遍历这个链表一次。你的算法必须保证取出的元素恰好有k个,且它们是完全随机的(出现概率均等)?这道题的解法非常多,网上讨论也非常热烈。本文要讨论的是,这个问题是从何而来,有什么实用价值?自从有了Hadoop之后,该问题便转载 2015-12-05 14:29:59 · 975 阅读 · 0 评论 -
初识storm
分类: Hadoop1.hadoop有master与slave,Storm与之对应的节点是什么?2.Storm控制节点上面运行一个后台程序被称之为什么?3.Supervisor的作用是什么?4.Topology与Worker之间的关系是什么?5.Nimbus和Supervisor之间的所有协调工作有master来完成,还是Zookeeper集群完成?6.转载 2016-01-22 15:56:56 · 408 阅读 · 0 评论 -
map-combine过程解
●read阶段:通过RecordReader从InputSplit分片中将数据解析成一个个key/value。 ●map阶段:将由RecordReader解析出的key/value交给map()方法处理,并生成一个个新的key/value。 ●collect阶段:将map()中新生成key/value由OutpCollector.collect()写入内转载 2015-09-09 14:42:02 · 1401 阅读 · 1 评论 -
spark 点滴:多路输出,自定义分区
多路输出:import org.apache.spark.{HashPartitioner, SparkContext, SparkConf}import org.apache.spark.streaming.{Seconds, StreamingContext}import org.apache.hadoop.mapred.lib.MultipleTextOutputFor转载 2015-11-06 14:57:03 · 2342 阅读 · 0 评论 -
Hadoop 推测式任务 Hadoop Speculative Task
转:http://blog.csdn.net/yfkiss/article/details/10589137在分布式计算环境中,一个job会被拆解为多个task,由于各种软硬件异常,某些task运行速度较慢,拖慢了整个job完成时间对于这些运行速度较慢的task,Hadoop不会尝试诊断或者修复,而是分析出哪些task运行较慢,针对这些运行较慢的task,启动一些backup的task转载 2015-06-29 22:29:12 · 694 阅读 · 0 评论 -
hive 控制 输出分割符
hive> insert overwrite local directory '/home/yangping.wu/local' > row format delimited > fields terminated by '\t' > select * from wyp;[wyp@master ~/local]$ vim 000000_05 wyp1转载 2015-03-23 09:18:07 · 544 阅读 · 0 评论 -
Mahout – Clustering (聚类篇)
转:http://www.coder4.com/archives/41815 Replies什么是Mahout?” Apache Mahout™ project’s goal is to build a scalable machine learning library ”我来拓展一下:(1) Mahout 是Apache旗下的开源项目,集成了大量的机器学习转载 2015-03-20 11:50:40 · 784 阅读 · 0 评论 -
读写lzo
一、读lzo在 《Hadoop 2.2.0安装和配置lzo》 文章中介绍了如何基于 Hadoop 2.2.0安装lzo。里面简单介绍了如果在Hive里面使用lzo数据。今天主要来说说如何在Hadoop 2.2.0中使用lzo压缩文件当作的数据。 lzo压缩默认的是不支持切分的,也就是说,如果直接把lzo文件当作Mapreduce任务的输入,那么Mapreduce只会用一个Map来转载 2015-01-22 21:17:05 · 1547 阅读 · 0 评论 -
streaming 使用
又是期末又是实训TA的事耽搁了好久……先把写好的放上博客吧相关随笔:Hadoop-1.0.4集群搭建笔记用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控使用额外的文件假如你跑的job除了输入以外还需转载 2014-10-31 17:57:13 · 764 阅读 · 0 评论 -
Storm on yarn安装
参考:[1] http://hi.baidu.com/clockfly/item/f977cad1239bd94fddf9beea[2] http://blog.csdn.net/jiushuai/article/details/187293671. 已有的环境 Java代码 a. 安装有HDFS文件系统转载 2014-09-02 17:47:11 · 664 阅读 · 0 评论 -
mr 过程setSortComparatorClass和setGroupingComparatorClass
job.setPartitionerClass(PartitionClass.class);job.setSortComparatorClass(SortComparator.class);job.setGroupingComparatorClass(Grouptail.class);原创 2014-08-15 18:00:07 · 4467 阅读 · 1 评论 -
cdh安装注意及客户端安装
1:sudo passwd root给root账户加密码2: sudo apt原创 2014-09-02 10:40:00 · 2939 阅读 · 0 评论 -
hive_hbase
版本匹配hive-hbase配置:把hbase对应jar包替换掉hive/lib下的包,cp protobuf-java-2.4.0a.jar /opt/hadoop/hive/lib启动hivehive --auxpath /opt/hadoop/hive/lib/hbase-0.94.10-security.jar,/opt/hadoop/hive/lib/hive-h原创 2014-08-21 17:49:01 · 899 阅读 · 0 评论 -
mahout 推荐 参数
org.apache.mahout.cf.taste.Hadoop.item.RecommenderJob。其输入数据放在默认输入目录下,使用mapred.input.dir参数指定的输入数据,是userID,itemID[,preferencevalue]值对形成的文本文件。可以有多个文件存放在该目录下。运行时相关参数如下:numRecommendations:为每个用户产生的推转载 2014-08-19 21:10:07 · 967 阅读 · 1 评论 -
hadoop对于压缩文件的支持及算法优缺点
【IT168 技术】hadoop对于压缩格式的是透明识别,我们的MapReduce任务的执行是透明的,hadoop能够自动为我们 将压缩的文件解压,而不用我们去关心。 如果我们压缩的文件有相应压缩格式的扩展名(比如lzo,gz,bzip2等),hadoop就会根据扩展名去选择解码器解压。压缩格式工具算法文件扩展名多文件可分割性DEFLATE转载 2013-12-30 15:56:42 · 427 阅读 · 0 评论 -
日期转周 hive UDF
public static String getWeek(String sdate) { // 再转换为时间 Date date = VeDate.strToDate(sdate); Calendar c = Calendar.getInstance(); c.setTime(date); // int hour=c.get(Calendar.DAY_OF_WEEK); /原创 2013-12-08 22:50:24 · 1167 阅读 · 0 评论 -
hive union (all)
多表合并,字段名必须匹配union all 需放于子查询中,合并后的表要有别名union 去掉重复的union all 不去重eg:select * from (select age, name from test1 union all select age, name from test) a;特殊用处:person_name 表 (id ,原创 2013-11-29 10:45:28 · 2629 阅读 · 0 评论 -
hadoop详细分析
在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题。本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通过这些痕迹来解决问题。一、环境的搭建为了能够跟踪这些运行的痕迹,我们需要搭建一个特殊的环境,从而可以一步步的查看上一节提到的一些关键步骤所引起的变化。我们首先搭建一个拥有转载 2013-10-09 15:59:31 · 582 阅读 · 0 评论 -
hadoop存储视频文件
视频文件存储:可以将大文件切片,每一片做MD5值为key,hbase value为hdfs的路径这样你的文件很好的散列在集群里采用scan命令查询的时候把小文件合并成大文件同一个文件的key前缀可以设计成一样的。转载 2013-10-08 18:35:46 · 6111 阅读 · 2 评论 -
终端执行hive(非hive shell)
执行hive查询实例 执行select查询$HIVE_HOME/bin/hive -e 'select a.col from tab1 a' 加入配置变量的查询$HIVE_HOME/bin/hive -e 'select a.col from tab1 a' -hiveconf hive.exec.scratchdir=/home/my/hive_scratch -hiv转载 2013-09-05 22:23:41 · 889 阅读 · 0 评论 -
hadoop与传统数据库
1. hadoop从传统数据库读数据 虽然hadoop提供了一些接口从传统数据库中读取数据,如DBinputformat提供读取数据的格式、DBRecordreader提供读取数据记录的接口。但是一般这只是用于读取小数据。读取大数据,一般用数据库中的dump工具将大量待分析数据输出为文本数据文件,并上传到HDFS进行处理。2. hadoop往传统数据库写数据 hadoop提原创 2013-08-01 16:47:36 · 1322 阅读 · 0 评论 -
Hadoop 用FileStatus类来查看HDFS中文件或目录的元信息
Hadoop中的FileStatus类可以用来查看HDFS中文件或者目录的元信息,任意的文件或者目录都可以拿到对应的FileStatus, 我们这里简单的演示下这个类的相关API:/* */ package com.charles.hadoop.fs; import java.net.URI; import java.sql.Timestamp; import org.apache.h转载 2013-01-16 15:01:16 · 701 阅读 · 0 评论