hbase自定义过滤器异常

woloqun 2014-06-08 09:28:19
写了一个hbase的过滤器例子,就对rowkey判断一下
import java.io.IOException;
import java.util.List;

import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.filter.FilterBase;

public class ComterFilter extends FilterBase{

@Override
public boolean filterAllRemaining() throws IOException {
return super.filterAllRemaining();
}

@Override
public ReturnCode filterKeyValue(Cell ignored) throws IOException {
return super.filterKeyValue(ignored);
}

@Override
public boolean filterRow() throws IOException {
return super.filterRow();
}

@Override
public boolean filterRowKey(byte[] buffer, int offset, int length)
throws IOException {
String rowKey = new String(buffer);
System.out.println("rowkey====="+rowKey);
if("01d7f40760960e7bd9443513f22ab9af".equals(rowKey)){
return true;
}else{
return false;
}
}

@Override
public void filterRowCells(List<Cell> ignored) throws IOException {
super.filterRowCells(ignored);
}

@Override
public void filterRow(List<KeyValue> arg0) {

}
}

已经修改过HBASE_CLASSPATH,并且已经重启
但是运行时报错了,报错信息如下,有没有大牛指导一下
Sun Jun 08 17:46:43 CST 2014, org.apache.hadoop.hbase.client.RpcRetryingCaller@6cb107fd, java.io.IOException: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1297)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toScan(ProtobufUtil.java:886)
at org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3005)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:26929)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2185)
at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1889)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1295)
... 5 more
Caused by: org.apache.hadoop.hbase.exceptions.DeserializationException: parseFrom called on base Filter, but should be called on derived type
at org.apache.hadoop.hbase.filter.Filter.parseFrom(Filter.java:266)
... 10 more

Sun Jun 08 17:46:43 CST 2014, org.apache.hadoop.hbase.client.RpcRetryingCaller@6cb107fd, java.io.IOException: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1297)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toScan(ProtobufUtil.java:886)
at org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3005)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:26929)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2185)
at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1889)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1295)
... 5 more
Caused by: org.apache.hadoop.hbase.exceptions.DeserializationException: parseFrom called on base Filter, but should be called on derived type
at org.apache.hadoop.hbase.filter.Filter.parseFrom(Filter.java:266)
... 10 more

Sun Jun 08 17:46:44 CST 2014, org.apache.hadoop.hbase.client.RpcRetryingCaller@6cb107fd, java.io.IOException: java.io.IOException: java.lang.reflect.InvocationTargetException
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1297)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toScan(ProtobufUtil.java:886)
at org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3005)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:26929)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2185)
at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1889)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.toFilter(ProtobufUtil.java:1295)
... 5 more
Caused by: org.apache.hadoop.hbase.exceptions.DeserializationException: parseFrom called on base Filter, but should be called on derived type
at org.apache.hadoop.hbase.filter.Filter.parseFrom(Filter.java:266)
... 10 more



...全文
3050 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hell_Heaven 2016-02-01
  • 打赏
  • 举报
回复
引用 1 楼 dinghun8leech 的回复:
你需要在自订filter中覆写这三个方法: public static Filter parseFrom(final byte [] pbBytes) throws DeserializationException public static Filter createFilterFromArguments(ArrayList<byte[]> filterArguments) public byte [] toByteArray() 还要用到protobuf实现参数序列化反序列化,用于client到regionServer进行rpc调用时的过滤器参数传输。 parseFrom called on base Filter, but should be called on derived type错的原因是上述三个方法中的第一个没有覆写,hbase直接调了自订Filter的父类Filter的该方法造成的。 参考: http://shift-alt-ctrl.iteye.com/blog/2073581 中的第7项:自定义Filter代码样例
请赐一段代码。。。。
dinghun8leech 2014-08-01
  • 打赏
  • 举报
回复
你需要在自订filter中覆写这三个方法: public static Filter parseFrom(final byte [] pbBytes) throws DeserializationException public static Filter createFilterFromArguments(ArrayList<byte[]> filterArguments) public byte [] toByteArray() 还要用到protobuf实现参数序列化反序列化,用于client到regionServer进行rpc调用时的过滤器参数传输。 parseFrom called on base Filter, but should be called on derived type错的原因是上述三个方法中的第一个没有覆写,hbase直接调了自订Filter的父类Filter的该方法造成的。 参考: http://shift-alt-ctrl.iteye.com/blog/2073581 中的第7项:自定义Filter代码样例
本资源为大数据基础到中高级教学资源,适合稍微有点大数据或者java基础的人群学习,资源过大,上传乃是下载链接,不多说,上目录: 1_java基础2 l3 a2 a$ t7 J2 b+ `- p 2_java引入ide-eclipse 3_java基础知识-循环-类型转换 4_循环-函数-数组-重载 5_多为数组-冒泡-折半-选择排序 6_oop-封装-继承-static-final-private 7_多态-接口-异常体系 8_适配器/ k% N! Y7 j/ |- c) O5 M' V6 S 9_多线程-yield-join-daemon-synchronized; o, E; \* I: E2 W 10_多线程-同步代码块-同步方法 11_多线程-生产消费问题 12_多线程-死锁问题 13_字符集问题' X4 e; v9 q' U2 W% f" l7 f$ F 14_String-StringBuffer-StringBuilder 15_集合-list-arrayList-linkedlist 16_集合-hashset-hashmap-迭代器-entryset$ d3 b$ ~5 b! @- Z* }- C 17_快捷键设置* L* C. y4 Z1 v0 p) [8 p3 A 18_IO& f, H- i' w( B; P% V; Q" z. L( n/ q 19_IO2 20_文件归档和解档 21_TCP+udp协议-广播 22_UDP实现屏广程序-教师端3 m7 l; D) p! p$ q' H- L5 t1 s 23_UDP实现屏广程序-教师端2% |) h# a9 r) z6 b 24_GOF-设计模式$ k0 Y6 b) s& m% J 25_qq消息通信2 T! n* ^2 ? | l# ]- ^ 26_qq消息通信2 27_qq消息通信-群聊 28_qq消息通信-群聊-手动刷新好友列表-下线通知0 P+ D" ]/ f. q* O! d9 Z& L 29_qq消息通信-群聊-私聊消息' a3 S6 a2 d+ Y6 s( Z 30_qq消息通信-群聊-私聊消息2 31_虚拟机内存结构-反射 32_虚拟机内存结构-JVM-$ j; l* n7 g' u 33_代理模式 34_RDBMS 35_MySQL安装' `/ h# t# o# s& y1 \# ?* R5 f) p4 Z 36_MySQL常用命令-CRUD 37_java JDBC-insert 38_java JDBC-sql注入问题-preparedstatemnt 39_java 事务管理-批量插入0 X, w! w5 [- E( `( f* V1 [ 40_java事务管理-批量插入-存储过程 41_java mysql 函数 42_java mysql LongBlob + Text类型8 @9 ^) y7 s* L, _3 w7 Q9 q9 ^ 43_连接查询2 R: d" J9 J1 O3 D* B1 }2 u( {2 v 44_事务并发现象-脏读-幻读-不可重复读-隔离级别 45_隔离级别-并发现象展示-避免 46_表级锁-行级锁-forupdate 47_mysql数据源连接池 48_NIO" d% v1 P# ~3 S/ L 49_NIO程序- u5 T2 a5 N" {! @8 q4 c 50_Vmware安装-client centos7机安装2 Q. l/ r7 y) ^% n8 |4 _. k 51_centos文件权限-常用命令 52_网络静态ip-NAT连接方式-YUM安装, e9 j% z; B' ?! p1 D* Y 53_常用命令2 L V5 k8 y8 S h( Q0 `2 O4 s- I- N 54_for-while-if-nc6 z# I2 D6 f- D* |6 Y @ 55_jdk安装-环境变量配置2 C6 x4 C; s) M: {$ }- p 56_hadoop安装-配置 57_hadoop伪分布模式8 I/ e; `1 Y$ b+ p1 R5 ^ 58_编写分发脚本-xcall-rsync1 X% G: Y' Q; }5 I$ [ 59_hadoop完全分布式-hdfs体验 60_hadoop的架构原理图 61_临时文件 62_hadoop的简单介绍, p5 P$ @+ O2 V. p } 63_通过京东的流程讲解hadoop的处理过程; b1 Q* b- v& N, S4 G) j' Y 64_项目流程图 65_架构2 66_跑一个应用程序 67_hadoop的搭建的复习6 h) {. C, f( J( @& F0 G 68_脚本分析的过程" ?' q# U7 B/ ~" W, e- I 69_开启和关闭一个进程 70_hadoop常用的命令和关闭防火墙) Q" A0 B3 M8 s3 ? 71_hadoop存储为何是128M 72_hadoop的存储问题 73_hadoop的高可用 74_配置hadoop临时目录 75_hadoop的hdfs的jar包 76_hadoop的存储问题+ B: J K& G* B4 Z 77_hadoop的hdfs常用的命令 78_hadoop的存储过程 79_hadoop的大数据节点% K S, J! U3 W& o2 d) Q 80_hdfs-maven-hdfs API访问8 s8 J# W* l- i% x, ]: L! L 81_hdfs-maven-idea的集成处理 82_hdfs-block大小-副本数设定9 o$ I! k4 |+ ]9 q2 h8 ]# x6 B, S* Y$ W 83_hdfs-网络拓扑-写入剖析2 g4 Z0 j& K; Z, K 84_hdfs-写入剖析2-packet-chunk 85_hdfs-压缩编解码器, u" o: K/ V5 B 86_hdfs-MR原理 87_hdfs-wordcount$ ?% ?& }' U. [0 M9 b 88_hadoop-mapreduce-切片演示-mapper 89_hadoop-mapreduce-url演示1 B% m, V- Z) ~. B9 |9 m2 u 90_job提交流程剖析 91_job split计算法则-读取切片的法则 92_job seqfile5 v! h+ R9 L1 w, U* T6 J# M 93_job 全排序-自定义分区类2 n% h" `: b4 c) C3 J9 S 94_job二次排序5 t3 Z2 R- ]( a: s* c0 Z 95_从db输入数据进行mr计算: L. M4 I6 y, R2 l/ u/ L 96_输出数据到db中 97_NLineInputFormat& u( k1 T& z( O# P, S* y1 Y 98_KeyValueTextInputFormat* p$ O1 z- h, n" e( x1 s& c% z' v 99_join mapper端连接- N, S# O2 }6 m0 T 100_join reduce端连接0 N1 |* R5 n* D8 C+ i 101_hadoop Namenode HA配置8 [( ^7 Q1 W' y3 q 102_avro串行化4 [! T( [, J# e5 h P' w' {% I 103_google pb串行化& S- V% x6 v) {( Y" W 104_hive安装-使用: r/ Q& x. ~6 `- d* Y& R U4 X 105_hive beeline-hiveserver2 106_hive beeline-外部表-内部标 107_hive 分区表-桶表 108_hive word count 109_hive连接查询-union查询-load数据 110_hbase概述 111_zk架构-集群搭建-容灾演练avi 112_zk API-观察者-临时节点-序列节点-leader选举 113_hadoop namenode HA自动容灾" X3 `' ^/ U+ u+ U" F: } b 114_hadoop RM HA自动容灾 115_hbase集群搭建 116_hbase名字空间-表 117_hbase大批量操作7 [! ^" m3 B$ C. {1 S$ h. X 118_hbase架构-表和区域切割( p4 _0 k) J9 A/ ~; [ F 119_hbase架构-区域的合并 120_hbase get-scan-范围指定 121_扫描缓存-超时-切片' O; n; m' P; a6 T/ H$ S! ^ 122_hbase的HA配置演示-和Hadoop的HA集成 123_hbase版本机制 124_hbase-ttl-min-versions-keep-deleted-cells" @- N5 [2 s; S3 T$ H' C 125_keep-deleted-cells控制是否保留删除的shell$ V8 |; Q7 g" ]- C# j% |! y 126_过滤器rowkey-family 127_过滤器-分页-row-col 128_filterList 129_rowkey2 h5 Y+ y9 _1 j0 K0 Q) n 130_区域观察者 131_区域观察者实现和部署" s o7 p+ F& p/ a) ]& W/ ? 132_重写区域观察者的postPut和postScannext方法实现数据统一处理0 H) Q' Z- b; P# K 133_hbase的bulkload命令实现hbase集群之间数据的传输2 D6 d; F6 S8 x+ I/ I0 B0 @ 134_hive同hbase集成,统计hbase数据表信息% Q/ R! Z1 J3 J) k+ H! {6 D# M 135_使用TableInputFormat进行MR编程! m& C6 B/ v6 N" `, I' O& }4 u 136_使用phoenix交互hbase& h* s5 S- ~6 ]: u7 \ 137_squirrel工具. |+ E; g* R9 l3 E 138_flume简介 139_nc收集日志# [3 O7 K& n; f; y( f 140_hdfs sink收集日志到hdfs b9 o, k, j( G4 l! {* u: | 141_使用spooldir实现批量收集/ s8 F* }% o- n6 g& a9 w 142_使用exec结合tail命令实现实时收集 143_使用seq源和压力源实现测试 144_使用avro源 145_导入avro maven-avro-client 146_导入avro maven-avro-client 147_使用hbasesink收集日志到hbase数据库 148_内存通道配置6 U/ X5 L3 ]7 b6 `5 x 149_source的通道选择器-复制策略-multiplexing 150_source的数据流程 151_sinkgroup的处理器-loadbalance- ^6 B0 j4 Z5 f9 d 152_sinkgroup的处理器-failover) y- ^1 Y. ~5 s9 G8 S! ^! a5 o 153_kafka集群安装与启动4 ^; K& j3 @6 p0 M 154_kafka创建主题以及查看主题结构 155_考察zk中kafka结构9 N: Y8 u4 {# m/ z1 d3 H 156_kafka分区服务器服务方式 157_kafka编程API实现生产者和消费者+ w9 l1 N( D8 E% z( D; G 158_kafka手动修改zk的偏移量实现消费处理( w7 s! K9 v7 U3 P7 T4 j 159_kafka与flume集成-source集成- _, G+ K) y% I4 D" q9 \ 160_kafka与flume集成-sink集成4 o6 W; v5 a; p9 s. X% I7 @ 161_kafka与flume集成-channel集成/ x' w3 g3 z& d: w 162_kafka简介!
前言 致谢 关于本书 第1 部分 背景和基本原理 1 跳跃中的Hadoop 1.1 什么是Hadoop 1.1.1 Hadoop 的核心组件 1.1.2 Hadoop 生态圈 1.1.3 物理架构 1.1.4 谁在使用Hadoop 1.1.5 Hadoop 的局限性 1.2 运行Hadoop 1.2.1 下载并安装Hadoop 1.2.2 Hadoop 的配置 1.2.3 CLI 基本命令 1.2.4 运行MapReduce 作业 1.3 本章小结 第2 部分 数据逻辑. 2 将数据导入导出Hadoop. 2.1 导入导出的关键要素 2.2 将数据导入Hadoop . 2.2.1 将日志文件导入Hadoop 技术点1 使用Flume 将系统日志文件导入HDFS 2.2.2 导入导出半结构化和二进制文件 技术点2 自动复制文件到HDFS 的机制 技术点3 使用Oozie 定期执行数据导入活动 2.2.3 从数据库中拉数据 技术点4 使用MapReduce 将数据导入数据库 技术点5 使用Sqoop 从MySQL 导入数据 2.2.4 HBase 技术点6 HBase 导入HDFS 技术点7 将HBase 作为MapReduce 的数据源 2.3 将数据导出Hadoop 2.3.1 将数据导入本地文件系统 技术点8 自动复制HDFS 中的文件 2.3.2 数据库 技术点9 使用Sqoop 将数据导入MySQL 2.3.3 Hbase 技术点10 将数据从HDFS 导入HBase 技术点11 使用HBase 作为MapReduce 的数据接收器 2.4 本章小结 3 数据序列化――处理文本文件及其他格式的文件 3.1 了解MapReduce 中的输入和输出 3.1.1 数据输入 3.1.2 数据输出 3.2 处理常见的序列化格式 3.2.1 XML . 技术点12 MapReduce 和XML 3.2.2 JSON . 技术点13 MapReduce 和JSON . 3.3 大数据的序列化格式 3.3.1 比较SequenceFiles、Protocol Buffers、Thrift 和 Avro 3.3.2 Sequence File 技术点14 处理SequenceFile 3.3.3 Protocol Buffers 技术点15 整合Protocol Buffers 和MapReduce . 3.3.4 Thrift . 技术点16 使用Thrift 3.3.5 Avro 技术点17 MapReduce 的下一代数据序列化技术 3.4 自定义文件格式 3.4.1 输入输出格式 技术点18 输入和输出格式为CSV 的文件 3.4.2 output committing 的重要性 3.5 本章小结 第3 部分 大数据模式 4 处理大数据的MapReduce 模式 4.1 Join 4.1.1 Repartition Join 技术点19 优化repartition join 4.1.2 Replicated Join 4.1.3 Semi-join 技术点20 实现semi-join 4.1.4 为你的数据挑选最优的合并策略 4.2 排序 4.2.1 二次排序 技术点21 二次排序的实现 4.2.2 整体并行排序 技术点22 通过多个reducer 对key 进行排序 4.3 抽样 技术点23 蓄水池抽样(reservoir 抽样) 4.4 本章小结 5 优化HDFS 处理大数据的技术 5.1 处理小文件 技术点24 使用Avro 存储大量小文件 5.2 通过压缩提高数据存储效率 技术点25 选择合适的压缩解码器 技术点26 在HDFS、MapReduce、Pig 和Hive 中使用数据压缩 技术点27 在MapReduce、Hive 和Pig 中处理可分割的LZOP 5.3 本章小结 6 诊断和优化性能问题 6.1 衡量MapReduce 和你的环境 6.1.1 提取作业统计信息的工具 6.1.2 监控 6.2 确定性能问题的原因 6.2.1 了解哪些因素会影响MapReduce 作业的性能 6.2.2 map 端异常 技术点28 发现输入数据中的坑 技术点29 确定map 端数据倾斜问题 技术点30 判定map 任务吞吐量 技术点31 小文件 技术点32 不可切割的文件 6.2.3 reduce 端问题 技术点33 reducer 任务数过大或过小 . 技术点34 定位reduce 端数据倾斜问题 技术点35 确定reduce 任务是否存在整体吞吐量过低 技术点36 缓慢的洗牌(shuffle)和排序 . 6.2.4 任务的一般性能问题 技术点37 作业竞争和调度器限制 技术点
Hadoop是一个开源的MapReduce平台,设计运行在大型分布式集群环境中,提供查询和分析服务。尤其适用于大数据系统,Hadoop为苹果、eBay、LinkedIn、雅虎和Facebook等公司提供重要软件环境。它为开发者进行数据存储、管理以及分析提供便利的方法。   《Hadoop硬实战》收集了85个问题场景以及解决方案的实战演练。在关键问题领域对基础概念和实战方法做了权衡,例如导入导出、序列化,以及LZO压缩。你将会学习到每个技术的细节,以及当遇到一个具体问题时能够给出对应的解决方案。本书提供了结构良好且易于理解的例子,可用于应对你所遇到的问题。   《Hadoop硬实战》包含:   ·Hadoop和MapReduce的基本概念   ·85个实战和测试技术   ·真实的场景,实用的解决方案   ·如何整合MapReduce和R 前言 致谢 关于本书 第1 部分 背景和基本原理 1 跳跃中的Hadoop 1.1 什么是Hadoop 1.1.1 Hadoop 的核心组件 1.1.2 Hadoop 生态圈 1.1.3 物理架构 1.1.4 谁在使用Hadoop 1.1.5 Hadoop 的局限性 1.2 运行Hadoop 1.2.1 下载并安装Hadoop 1.2.2 Hadoop 的配置 1.2.3 CLI 基本命令 1.2.4 运行MapReduce 作业 1.3 本章小结 第2 部分 数据逻辑. 2 将数据导入导出Hadoop. 2.1 导入导出的关键要素 2.2 将数据导入Hadoop . 2.2.1 将日志文件导入Hadoop 技术点1 使用Flume 将系统日志文件导入HDFS 2.2.2 导入导出半结构化和二进制文件 技术点2 自动复制文件到HDFS 的机制 技术点3 使用Oozie 定期执行数据导入活动 2.2.3 从数据库中拉数据 技术点4 使用MapReduce 将数据导入数据库 技术点5 使用Sqoop 从MySQL 导入数据 2.2.4 HBase 技术点6 HBase 导入HDFS 技术点7 将HBase 作为MapReduce 的数据源 2.3 将数据导出Hadoop 2.3.1 将数据导入本地文件系统 技术点8 自动复制HDFS 中的文件 2.3.2 数据库 技术点9 使用Sqoop 将数据导入MySQL 2.3.3 Hbase 技术点10 将数据从HDFS 导入HBase 技术点11 使用HBase 作为MapReduce 的数据接收器 2.4 本章小结 3 数据序列化――处理文本文件及其他格式的文件 3.1 了解MapReduce 中的输入和输出 3.1.1 数据输入 3.1.2 数据输出 3.2 处理常见的序列化格式 3.2.1 XML . 技术点12 MapReduce 和XML 3.2.2 JSON . 技术点13 MapReduce 和JSON . 3.3 大数据的序列化格式 3.3.1 比较SequenceFiles、Protocol Buffers、Thrift 和 Avro 3.3.2 Sequence File 技术点14 处理SequenceFile 3.3.3 Protocol Buffers 技术点15 整合Protocol Buffers 和MapReduce . 3.3.4 Thrift . 技术点16 使用Thrift 3.3.5 Avro 技术点17 MapReduce 的下一代数据序列化技术 3.4 自定义文件格式 3.4.1 输入输出格式 技术点18 输入和输出格式为CSV 的文件 3.4.2 output committing 的重要性 3.5 本章小结 第3 部分 大数据模式 4 处理大数据的MapReduce 模式 4.1 Join 4.1.1 Repartition Join 技术点19 优化repartition join 4.1.2 Replicated Join 4.1.3 Semi-join 技术点20 实现semi-join 4.1.4 为你的数据挑选最优的合并策略 4.2 排序 4.2.1 二次排序 技术点21 二次排序的实现 4.2.2 整体并行排序 技术点22 通过多个reducer 对key 进行排序 4.3 抽样 技术点23 蓄水池抽样(reservoir 抽样) 4.4 本章小结 5 优化HDFS 处理大数据的技术 5.1 处理小文件 技术点24 使用Avro 存储大量小文件 5.2 通过压缩提高数据存储效率 技术点25 选择合适的压缩解码器 技术点26 在HDFS、MapReduce、Pig 和Hive 中使用数据压缩 技术点27 在MapReduce、Hive 和Pig 中处理可分割的LZOP 5.3 本章小结 6 诊断和优化性能问题 6.1 衡量MapReduce 和你的环境 6.1.1 提取作业统计信息的工具 6.1.2 监控 6.2 确定性能问题的原因 6.2.1 了解哪些因素会影响MapReduce 作业的性能 6.2.2 map 端异常 技术点28 发现输入数据中的坑 技术点29 确定map 端数据倾斜问题 技术点30 判定map 任务吞吐量 技术点31 小文件 技术点32 不可切割的文件 6.2.3 reduce 端问题 技术点33 reducer 任务数过大或过小 . 技术点34 定位reduce 端数据倾斜问题 技术点35 确定reduce 任务是否存在整体吞吐量过低 技术点36 缓慢的洗牌(shuffle)和排序 . 6.2.4 任务的一般性能问题 技术点37 作业竞争和调度器限制 技术点38 使用堆转储来查找未优化的用户代码 6.2.5 硬件性能问题 技术点39 查找硬件的失效 技术点40 CPU 竞争 . 技术点41 内存交换 技术点42 磁盘健康 技术点43 网络 6.3 可视化 技术点44 提取并可视化任务执行时间 6.4 优化 . 6.4.1 剖析MapReduce 的用户代码 技术点45 剖析map 和reduce 任务 6.4.2 参数配置 6.4.3 优化 shuffle 和 sort 阶段 技术点46 避免reducer 技术点47 过滤和投影 技术点48 使用 combiner 技术点49 超炫的使用比较器的快速排序 6.4.4 减轻倾斜 技术点50 收集倾斜数据 技术点51 减轻reducer 阶段倾斜 6.4.5 在MapReduce 中优化用户的Java 代码 6.4.6 数据序列化 6.5 本章小结 第4 部分 数据科学. 7 数据结构和算法的运用 7.1 使用图进行数据建模和解决问题 7.1.1 模拟图 7.1.2 最短路径算法 技术点52 找出两个用户间的最短距离 7.1.3 friends-of-friends(FoF) 技术点53 计算FoF 7.1.4 PageRank 技术点54 通过Web 图计算PageRank 7.2 Bloom filter 技术点55 在MapReduce 中并行创建Bloom filter 技术点56 通过MapReduce 对Bloom filter 进行semi-join 7.3 本章小结 8 结合R 和Hadoop 进行数据统计 8.1 比较R 和MapReduce 集成的几种方法 8.2 R 基础知识 8.3 R 和Streaming 8.3.1 Streaming 和map-only R 技术点57 计算股票日平均值 8.3.2 Streaming、R 和完整的MapReduce 技术点58 计算股票的累积均值 8.4 Rhipe――将客户端R 和Hadoop 进行集成 技术点59 使用Rhipe 计算CMA 8.5  RHadoop――更简单地在客户端集成R 和Hadoop 的技术 技术点60 使用RHadoop 计算CMA 8.6 本章小结 9 使用Mahout 进行预测分析 9.1 使用recommender 提供产品建议 9.1.1 相似性度量的可视化 9.1.2 GroupLens 数据集 9.1.3 基于用户的recommender 9.1.4 基于物品的recommender 技术点61 使用基于物品的recommender 进行电影评级 9.2 classification 9.2.1 编写一个手动na&iuml;ve Bayesian 分类器 9.2.2 可扩展的垃圾邮件侦测分类系统 技术点62 使用Mahout 训练和测试垃圾邮件分类器 9.2.3 其他分类算法 9.3 K-means clustering 9.3.1 简单介绍 9.3.2 并行执行K-means 技术点63 K-means 处理合成的二维数据集 9.3.3 K-means 和文本 9.3.4 其他Mahout clustering 算法 . 9.4 本章小结 第5 部分 驯服大象 10 深入解析 Hive 10.1 Hive 基础 10.1.1 安装 10.1.2 元存储 10.1.3 数据库、表、分区和存储 10.1.4 数据模型 10.1.5 查询语言 10.1.6 交互式和非交互式Hive 10.2 使用Hive 进行数据分析 10.2.1 序列化和反序列化 技术点64 载入日志文件 10.2.2 UDF、分区、分桶和压缩 技术点65 编写UDF 和压缩分区表 10.2.3 数据合并 技术点66 优化Hive 合并 10.2.4 分组、排序和explain 10.3 本章小结 11 Pig 流管道 11.1 Pig 基础 11.1.1 安装 11.1.2 架构 11.1.3 PigLatin. 11.1.4 数据类型 11.1.5 操作符和函数 11.1.6 交互式和非交互式的Pig 11.2 使用Pig 在日志数据中发现恶意行为者 11.2.1 加载数据 技术点67 加载Apache 日志文件 11.2.2 过滤和投影 技术点68 通过过滤和投影减少数据处理量 11.2.3 分组和聚合UDF 技术点69 IP 地址的分组和计数 11.2.4 使用UDF 进行定位 技术点70 使用分布式缓存进行IP 地理定位 11.2.5 流 技术点71 使用你的脚本合并Pig 11.2.6 合并 技术点72 在Pig 中合并数据 11.2.7 排序 技术点73 元组排序 11.2.8 存储数据 技术点74 在SequenceFiles 中存储数据 11.3 使用Pig 优化用户的工作流程 技术点75 通过4 步快速处理大数据 11.4 性能 技术点76 Pig 优化 11.5 本章小结 12 Crunch 及相关技术 12.1 什么是Crunch 12.1.1 背景和概念 12.1.2 基本原理 12.1.3 简单示例 12.2 发现日志中最热门的URL 技术点77 使用Crunch 进行日志解析和基本分析 12.3 合并 技术点78 Crunch 的repartition join 12.4 Cascading 12.5 本章小结 13 测试和调试. 13.1 测试 13.1.1 有效的单元测试的基本要素 13.1.2 MRUnit . 技术点79 MapReduce 函数、作业和管道的单元测试 13.1.3 LocalJobRunner 技术点80 用LocalJobRunner 进行重量级的作业测试 13.1.4 集成和QA 测试 13.2 调试用户空间的问题 13.2.1 访问任务日志 技术点81 检查任务日志 13.2.2 调试不可预期的输入 技术点82 定位input split 问题 13.2.3 调试JVM 配置 技术点83 解决任务的JVM 启动参数 13.2.4 高效调试的编码准则 技术点84 调试和错误处理 13.3 MapReduce 陷阱 技术点85 MapReduce 反模式 13.4 本章小结 附录A 相关技术 附录B Hadoop 内置的数据导入导出工具 附录C HDFS 解剖. 附录D 优化MapReduce 合并框架 索引

778

社区成员

发帖
与我相关
我的任务
社区描述
云计算 网络相关讨论
社区管理员
  • 网络
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧