自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乄浅醉的专栏

宁可十年不将军

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

原创 org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema cannot be cast to scala.Tuple2

今天在写spark 提数的时候遇到一个异常,如下Caused by: java.lang.ClassCastException: org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema cannot be cast to scala.Tuple2 at $anonfun$1$$anonfun$apply$1.apply(<co

2017-09-07 17:11:26 12025 3

原创 spark on yarn 异常记录二

通过spark-submit 向集群提交任务时,–num-executors 数量大于1即会出现异常,异常如下:17/06/04 11:47:03 WARN DefaultChannelPipeline: An exception 'java.lang.NoSuchMethodError: org.apache.spark.network.client.TransportClient.getChan

2017-06-04 16:19:42 1894 2

原创 spark on yarn启动异常

一个困扰了我好久的异常:17/05/31 23:53:23 ERROR spark.SparkContext: Error initializing SparkContext.org.apache.spark.SparkException: Yarn application has already ended! It might have been killed or unable to laun

2017-06-01 00:11:07 11799 6

原创 Crunch学习(二)

原理篇 数据管道Pipeline接口定义了Crunch中管道。MemPipeline,MRPipeline,SparkPipeline实现了Pipeline接口。public interface Pipeline { // 将数据读入集合类 <T> PCollection<T> read(Source<T> source); <K, V> PTable<K, V> read(TableS

2016-07-03 15:45:37 844

原创 Crunch 学习(一)

Crunch 提供一种Mapreduce顶层抽象,简化Mapreduce的创建,降低入门成本。Crunch的亮点在于:允许在不使用Mapreduce结构的情况下,使用java对Mapreduce管道进行建模;可以不必像使用Pig和Hive那样在编写UDF时强制使用自带的数据类型,而且Crunch不强迫程序员使用自带的类型系统。简单例子public class MaxTemperatureCrunch

2016-07-03 14:20:43 1589

原创 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 2149

原创 Hive 学习笔记 (二)

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

2016-06-24 18:27:06 5375

原创 Hive 学习笔记(一)

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

2016-06-24 14:57:50 562

原创 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 1407

原创 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 1392

原创 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 4327

原创 Parquet 之mapreduce

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

2016-06-16 16:10:09 6189 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 11318 2

原创 Parquet

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

2016-06-08 15:04:49 4291

原创 Hadoop 之 Avro

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

2016-06-07 19:49:57 5053

原创 记我的一次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 611

原创 hadoop 之 mapreduce 特性

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

2016-06-04 18:35:18 1832

原创 Hadoop 之 InputFormat

splits and records一个输入split就是一个由单个map来处理的输入块。每一个map只处理一个split。每个分片被切分成若干 records,每个record就是一个键/值对,map循环处理记录。split和record都是逻辑性概念。/** * <code>InputSplit</code> represents the data to be processed by an

2016-05-31 22:52:28 5036

原创 Hadoop 之 Shuffle and Sort

Mapreduce 确保每个reducer的input都是按照key 排序的。系统将 map ouputs 变成 reduce inputs输入的过程被称为 shuffle。shuffle是Mapreduce的 心脏,是奇迹发生的地方。Map side当 map函数开始产生输出时,并不简单的将它写到磁盘。它利用buffer的方式写到内存,并除以效率的考虑,进行预排序。 每个map任务都有一个环形的

2016-05-31 17:20:50 2607

原创 jdk1.8 和spring 2.5.5 兼容性问题

先看异常:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12643 at org.springframework.asm.ClassReader.readClass(Unknown Source) at org.springframework.asm.ClassReader.accept(Un

2016-05-30 17:27:17 4236

原创 hadoop SequenceFile

SequenceFile是专为mapreduce设计的,是可分割的二进制格式,以key/value对的形式存储。write先看下 在hadoop中如何写SequenceFile。 private static final String[] DATA = { "One, two, buckle my shoe", "Three, four, shut t

2016-05-28 15:46:22 954

原创 Hadoop Serialize(二)

hadoop 序列化特性在hadoop 权威指南中,有如此介绍hadoop序列化机制应有如下的特性。Compact(紧凑)。紧凑的序列化机制可以充分利用数据中心的带宽。Fast(快速)。进程间的通信时会大量使用序列化机制,减少序列化和反序列化的开销有利用性能的提升。Extensible(可扩展)。系统升级,通信协议发生变化,类的定义发生变化,序列化机制需要支持这些升级和变化(用过java RM

2016-05-28 12:58:40 801

原创 Hadoop Serialize (一)

说hadoop的序列化与反序列化,怎么都离不开java的序列化。 Block block = new Block(); block.setId(0000001l); block.setName("block one"); block.setPosition("offset 1"); block.setSize(10000l

2016-05-28 11:51:20 414

原创 hadoop之 yarn (简单了解)

Yarn通过两个 守护线程提供核心服务:ResourceManager,管理集群所有资源的切分以及作业的调度与监控;NodeManager,运行在集群所有节点上,启动并监控容器的运行状况,并负责向ResourceManager汇报。在linux上,hadoop是通过cgroup技术实现container资源隔离的。下面有两张图,都是一个作业在yarn中运行流程,不过 我觉得第二张图更加清晰

2016-05-10 18:04:19 385

原创 hadoop之 HDFS 数据I/O(一)

本文知识 由 hadoop权威指南第四版获得,图片也来自与此Read Dataclient通过调用 FileSystem对象的open()方法来打开文件。在HDFS中,FileSystem是DistributedFileSystem的一个实例。DistributedFileSystem是通过RPC调用namenode,获取文件起始block的位置。对于每一个block,namenode会返回

2016-05-10 18:04:13 419

原创 hadoop 之源码 ResourceManager

hadoopRM/** * The ResourceManager is the main class that is a set of components. * "I am the ResourceManager. All your resources belong to us..." * */@SuppressWarnings("unchecked")public class

2016-05-10 18:04:07 488

原创 hadoop之 hdfs FilePattern

举一个例子:使用mapreduce统计一个月或者两个的日志文件,这里可能有大量的日志文件。如何快速的提取文件路径?在HDFS中,可以使用通配符来解决这个问题。与linux shell的通配符相同。例如:TablesAre2016/*2016/05 2016/042016/0[45]2016/05 2016/042016/0[4-5]2016/05 2016

2016-05-10 18:04:03 773

原创 hadoop之 HDFS读写 java interface

读取文件 public static void readFile(String uri) { Configuration configuration = new Configuration(); InputStream inputStream = null; try { // String uri = "hdfs:/

2016-05-10 18:03:59 285

原创 hadoop 之源码 job

hadoop sourcejob类 JobSubmitter.submitJobInternal()The job submission process involves:Checking the input and output specifications of the job.Computing the InputSplit values for the job.Setting

2016-05-10 18:03:53 307

原创 hadoop之 mapreduce Combiner

许多mapreduce作业会受限与集群的带宽,因此尽量降低map和reduce任务之间的数据传输是有必要的。Hadoop允许用户针对map任务的输出指定一个combiner函数处理map任务的输出,并作为reduce函数的输入。因为combine是优化方案,所以Hadoop无法确定针对map输出记录需要调用多少次combine函数。in the other word,不管调用多少次combine函

2016-05-10 18:03:49 457

原创 hadoop之 mapreduce data flow

注:随笔 取自于 hadoop权威指南第四版Hadoop 会讲MapReduce输入的数据切分成大小相等的数据块(fixed-size 固定大小,我认为翻译成相等大小比较合适),或者称之为分片。Hadoop会未每一个分片创建一个map 任务,并由该任务来运行用户自定义的map函数。一个输入数据可以切分成许多切片,我们可以使用map并行处理这些切片,缩短整个任务处理过程的时间。当然分片并不是切分

2016-05-10 18:03:45 595

原创 hadoop之 mapreduce example(2)

解释下 第一篇 程序的意思Job ’s setJarByClass() 便于hadoop查找并加载相关的jar包文件FileInputFormat.addInputPath() 设置输入路径,可以是一个文件,也可以是一个文件夹,而且可以被调用多次,用以加载不同的输入路径。FileOutputFormat.setOutputPath() 设置输出路径,reduce函数会讲 文件写入该路径。在j

2016-05-10 18:03:39 419

原创 hadoop之 mapreduce example(1)

环境:jdk: 1.8hadoop: 2.6.4mapper:package com.hadoop.mapreduce;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apach

2016-05-10 18:03:34 423

原创 Sqoop使用笔记

Sqoop 使用笔记安装 略导入HDFS导入命令sqoop import --username root --password password --connect jdbc:mysql://127.0.0.1/hadoop --table archive如果数据库table没有主键,会有error打印,如下:Error during import: No primary key co

2016-05-10 18:03:24 469

原创 Jstorm

在jdk1.8 的环境下,JStorm 启动nimbus时,会报如下异常:MaxTenuringThreshold of 20 is invalid; must be between 0 and 15Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Progra

2016-05-10 18:03:17 2591

原创 从flume到kafka,日志收集

实时日志分析: 本篇文章主要测试 从flume到kafka的日志收集,storm日志分析,学习中! flume 配置文件#collectorcollector.sources=cscollector.sinks=ck hbaseSinkcollector.channels=cc hbaseChannelcollector.sources.cs.t

2016-05-10 18:03:12 678

原创 纪念storm终于启动了!!!

storm绝对是我见过最难启动的集群,没有之一!从安装 zeromq jzmq错误,到zookeeper集群启动错误,磕磕绊绊,耗费我2天(下班后开始计算),今天终于搞定了,纪念下!下面是启动storm nimbus时的错误,不知道为什么出这个错误,查看lib文件下,有jar包,百度啊 谷歌啊都搜索了就是没有找到,最后只能去翻阅jar包结构,并没有发现这个路径下的类,于是搜索这个jar包,但是

2016-05-10 18:03:06 729

原创 zookeeper 一直拒绝连接

用虚拟机搭建zookeeper集群一直拒绝连接,异常如下:2016-02-22 00:49:45,687 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@382] - Cannot open channel to 2 at election address hadoop1/10.0.0.1

2016-05-10 18:02:59 14437 1

原创 使用hdfs-slurper 将数据导入hdfs

slurper 可以将任何格式的数据导入HDFS, 这里有github地址 这里鄙视下百度,居然搜索不到! 第一步,下载安装 git clone [email protected]:alexholmes/hdfs-file-slurper.gitcd hdfs-file-slurpermvn package将target下的hdfs-slurper-0.1

2016-05-10 18:02:51 406

原创 Flume+hbase 日志数据采集与存储

了解过flume的人,差不多都看过这张或则类似的图片,本文即实现上图部分内容。(由于条件有限,目前是单机上实现)flume-agent配置文件#flume agent confsource_agent.sources = serversource_agent.sinks = avroSinksource_agent.channels = memoryChannel

2016-05-10 18:02:40 461

Kafka_ The Definitive Guide

kafka权威指南

2017-01-12

Getting Started with Google Guava

java,Guava

2017-01-12

python核心编程(第二版)

python是一门优雅的语言,是一门哲学的语言!

2013-03-30

空空如也

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

TA关注的人

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