自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乄浅醉的专栏

宁可十年不将军

  • 博客(12)
  • 资源 (3)
  • 收藏
  • 关注

原创 Hive 学习笔记(三)

自定义函数当写hive UDF时,有两个选择:一是继承 UDF类,二是继承抽象类GenericUDF。这两种实现不同之处是:GenericUDF 可以处理复杂类型参数,并且继承GenericUDF更加有效率,因为UDF class 需要HIve使用反射的方式去实现。UDF一个UDF 必须满足两个条件: 1. 必须继承 org.apache.hadoop.hive.ql.exec.UDF类 2.

2016-06-27 18:48:30 2232

原创 Hive 学习笔记 (二)

存储格式Hive从两个维度对表的存储进行管理: row format 和 file format。 row format 指 行和一行中的字段如何存储。对于Hive来说,row format的定义由SerDe定义。查询表时,SerDe 把文件中字节形式的数据行反序列化为Hive内部操作数据行时所使用的对象形式。执行Insert 或者CTAS 时,表的SerDe会把Hive的数据行内部表示形式序列化成

2016-06-24 18:27:06 5474

原创 Hive 学习笔记(一)

DataType 数据类型hive支持以下数据类型:有符号整数: BIGINT(8 字节),INT(4字节),SMALLINT(2字节)、TINYINT(1字节)浮点数:FLOAT 、 DOUBLEBOOLEAN:FLASE、TRUESTRINGMAP:无序键值对。键的类型必须是原子的,值可以是任意类型,同一个映射的键的类型必须相同,值的类型也必须相同ARRAY: 有序列表,所有元素都必

2016-06-24 14:57:50 594

原创 Pig 学习之 日志处理

以Apache 日志为例。创建加载器 @Override public Tuple getNext() throws IOException { tuple = new ArrayList<Object>(11); for (int i = 0; i < 11; i++) { tuple.add(null); }

2016-06-20 19:20:58 1478

原创 Pig学习之 UDF

Eval function详细点击[官方文档](http://pig.apache.org/docs/r0.16.0/udf.html#eval-functions)Algebraic Interface代数函数实现了 这个接口,并提供了处理整个bag的机制。结果通常必须是scalar类型的,例如,代数函数的结果不能是 tuple、bag或者map类型。这个函数的特性是它不能处理未经过排序的整个数

2016-06-20 17:56:51 1433

原创 Pig 学习之 Join 、Group、sort、Union

joinA:(2,Tie)(4,Coat)(3,Hat)(1,Scarf)B:(Joe,2)(Hank,4)(Ali,0)(Eve,3)(Hank,2)inner joinA = LOAD ‘A’;B = LOAD ‘B’;C = JOIN A BY $0, B BY $1;DUMP C;output:(2,Tie,Hank,2)(2,Tie,Joe,2)(3,Hat,E

2016-06-19 14:57:58 4458

原创 Parquet 之mapreduce

在mapreduce中使用Parquet,根据不同的序列化方式,有不同的选择,下面以Avro为例: 使用 AvroParquetInputFormat 和 AvroParquetOutputFormat @Override public int run(String[] strings) throws Exception { Path inputPath = new

2016-06-16 16:10:09 6226 6

原创 Parquet 读写

write and read MessageType schema = MessageTypeParser.parseMessageType("message Pair {\n" + " required binary left (UTF8);\n" + " required binary right (UTF8);\n"

2016-06-08 17:52:59 11376 2

原创 Parquet

Columnar storage像文本、关系型数据库的表这种数据存储方式都是基于row的,这意味着所有的字段都从第一行开始写,然后写第二行,以此类推。诸如JSON、XML、Avro这种 row storage数据序列化存储格式也是基于行存储的。而列存储的设计,数据存储首先按列存储,然后按行存储。所有记录的第一个字段的值先被写入,然后是第二个字段,以此类推。下面图片可以很形象的说明这两者的不同之处。使

2016-06-08 15:04:49 4337

原创 Hadoop 之 Avro

从结构上看,Avro和SequenceFile的很相似。schema被序列成Header的一部分,可以是反序列化变的简单。每个block都包含一系列Avro记录,默认情况下,大小为16KB。Avro数据文件支持压缩,并且可切分。序列化与反序列化使用程序从数据流中读/写 Avro数据,首先需要一个Avro模式文件。Avro 模式文件(.avsc):{ "namespace": "com.had

2016-06-07 19:49:57 5088

原创 记我的一次JVM监控

环境: jdk1.8 ubuntu 16.04先看图 上面两张图片是jconsole监控界面,程序已运行超过12小时。先说下程序吧:主要是用来网站二维码图片的预热,生成300*300的大小的二维码,并且调用ImageMagick将图片压缩未90大小。 public static void generate(List<String> list){ list.parallelStre

2016-06-04 19:19:05 633

原创 hadoop 之 mapreduce 特性

Sort全排序从map -> reduce ,shuffle过程中会根据key进行排序,但是这个排序只保证输入到每个reduce前的数据是有序的。那么如何产生一个全局排序的文件?最简单的方法是所有数据都在一个分区(如果不指定分区class,默认使用HashPartitioner),但是在处理大数据的时,显然不是个好注意。有一种思路:按照排序的key顺序划分partitioner,保证各个分区输出是有

2016-06-04 18:35:18 1856

空空如也

空空如也

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

TA关注的人

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