- 博客(30)
- 资源 (3)
- 收藏
- 关注
原创 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 5058
原创 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 2641
原创 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 4278
原创 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 991
原创 Hadoop Serialize(二)
hadoop 序列化特性在hadoop 权威指南中,有如此介绍hadoop序列化机制应有如下的特性。Compact(紧凑)。紧凑的序列化机制可以充分利用数据中心的带宽。Fast(快速)。进程间的通信时会大量使用序列化机制,减少序列化和反序列化的开销有利用性能的提升。Extensible(可扩展)。系统升级,通信协议发生变化,类的定义发生变化,序列化机制需要支持这些升级和变化(用过java RM
2016-05-28 12:58:40 823
原创 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 435
原创 hadoop之 yarn (简单了解)
Yarn通过两个 守护线程提供核心服务:ResourceManager,管理集群所有资源的切分以及作业的调度与监控;NodeManager,运行在集群所有节点上,启动并监控容器的运行状况,并负责向ResourceManager汇报。在linux上,hadoop是通过cgroup技术实现container资源隔离的。下面有两张图,都是一个作业在yarn中运行流程,不过 我觉得第二张图更加清晰
2016-05-10 18:04:19 402
原创 hadoop之 HDFS 数据I/O(一)
本文知识 由 hadoop权威指南第四版获得,图片也来自与此Read Dataclient通过调用 FileSystem对象的open()方法来打开文件。在HDFS中,FileSystem是DistributedFileSystem的一个实例。DistributedFileSystem是通过RPC调用namenode,获取文件起始block的位置。对于每一个block,namenode会返回
2016-05-10 18:04:13 455
原创 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 515
原创 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 799
原创 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 298
原创 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 326
原创 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 479
原创 hadoop之 mapreduce data flow
注:随笔 取自于 hadoop权威指南第四版Hadoop 会讲MapReduce输入的数据切分成大小相等的数据块(fixed-size 固定大小,我认为翻译成相等大小比较合适),或者称之为分片。Hadoop会未每一个分片创建一个map 任务,并由该任务来运行用户自定义的map函数。一个输入数据可以切分成许多切片,我们可以使用map并行处理这些切片,缩短整个任务处理过程的时间。当然分片并不是切分
2016-05-10 18:03:45 618
原创 hadoop之 mapreduce example(2)
解释下 第一篇 程序的意思Job ’s setJarByClass() 便于hadoop查找并加载相关的jar包文件FileInputFormat.addInputPath() 设置输入路径,可以是一个文件,也可以是一个文件夹,而且可以被调用多次,用以加载不同的输入路径。FileOutputFormat.setOutputPath() 设置输出路径,reduce函数会讲 文件写入该路径。在j
2016-05-10 18:03:39 438
原创 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 447
原创 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 487
原创 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 2670
原创 从flume到kafka,日志收集
实时日志分析: 本篇文章主要测试 从flume到kafka的日志收集,storm日志分析,学习中! flume 配置文件#collectorcollector.sources=cscollector.sinks=ck hbaseSinkcollector.channels=cc hbaseChannelcollector.sources.cs.t
2016-05-10 18:03:12 700
原创 纪念storm终于启动了!!!
storm绝对是我见过最难启动的集群,没有之一!从安装 zeromq jzmq错误,到zookeeper集群启动错误,磕磕绊绊,耗费我2天(下班后开始计算),今天终于搞定了,纪念下!下面是启动storm nimbus时的错误,不知道为什么出这个错误,查看lib文件下,有jar包,百度啊 谷歌啊都搜索了就是没有找到,最后只能去翻阅jar包结构,并没有发现这个路径下的类,于是搜索这个jar包,但是
2016-05-10 18:03:06 761
原创 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 14521 1
原创 使用hdfs-slurper 将数据导入hdfs
slurper 可以将任何格式的数据导入HDFS, 这里有github地址 这里鄙视下百度,居然搜索不到! 第一步,下载安装 git clone git@github.com:alexholmes/hdfs-file-slurper.gitcd hdfs-file-slurpermvn package将target下的hdfs-slurper-0.1
2016-05-10 18:02:51 430
原创 Flume+hbase 日志数据采集与存储
了解过flume的人,差不多都看过这张或则类似的图片,本文即实现上图部分内容。(由于条件有限,目前是单机上实现)flume-agent配置文件#flume agent confsource_agent.sources = serversource_agent.sinks = avroSinksource_agent.channels = memoryChannel
2016-05-10 18:02:40 478
原创 hadoop单节点伪分布搭建
hadoop版本:2.7.1 jdk:1.7 OS:ubuntu 14.041、开启ssh免密码登录ssh-keygen -t rsacat id_rsa.pub >> authorized_keys 这里不多做赘述,没有开启的请 google、baidu(搭建java环境也同样)2、修改core-site.xml(path:etc/hadoop/)config
2016-05-10 18:02:23 303
原创 docker学习笔记(六)使用Dockerfile构建镜像
嗯,通常做java开发,我们使用的jdk一般都是sun或者Oracle的jdk,而linux自带的jdk都是openjdk,所以需要动手自己创建一个镜像,并安装jdkDockerfile 如下:FROM ubuntu:14.04MAINTAINER example@example.comCOPY $PWD/jdk/jdk1.7 /usr/local/lib/javaE
2016-05-10 18:02:17 364
原创 docker学习笔记(五): Dockerfile指令
CMDCMD指令用于指定一个容器启动时需要运行的命令。RUN指令是容器被构建时需要运行的命令。sudo docker run -d -p 80 --name static_web docker/nginx:web –c /bin/bash同等与Dockerfile中的CMD[“/bin/bash”,”-c”]ENTRYPOINTENTRYPOINT指令和
2016-05-10 18:02:10 325
原创 docker学习笔记(四): 镜像和仓库
镜像docker构建有两种方法: 使用docker commit命令 使用docker buil命令和Dockerfile文件commit创建镜像:1、 在Docker Hub上注册账号,完成邮箱验证,然后在系统中使用命令登录,命令如下:sudo docker login2、 先创建一个容器:sudo docker run
2016-05-10 18:02:05 249
原创 docker学习笔记(三): 简单的容器操作
书接上回~ 上回说到hello world,这次说下对容器的简单操作!容器命名:sudo docker run --name my_container –i –t Ubuntu /bin/bash --name :创建一个容器名为 my_container的容器重新启动容器:sudo docker start b6b3e2ea4cefsudo doc
2016-05-10 18:01:59 258
原创 docker学习笔记(一): docker安装
印象中docker突然间火了起来,忍不住好奇,就买了本《第一本Docker书》来学习下,以此比较备忘! 由于我电脑上安装的是ubuntu 14.04,这里就只说 ubuntu下的安装吧!检查前提条件 检查内核 这是Ubuntu-14.04(X64)自带内核版本,3.8版本上可以支持Docker安装,如果不是,自行更新内核。如果不
2016-05-10 18:01:55 325
原创 docker学习笔记(二):Hello World
书接上回~ 开始: 1、创建容器,命令:sudo docker run –i –t Ubuntu /bin/bash 命令: -i 标志保证容器中STDIN是开启的 -t 标志告诉Docker为要创建的容器分配一个伪tty终端这样新创建的容器才能提供一个交互式shell当容器创建完毕:2、使用容器查看Docker创建的容器的配置情况:
2016-05-10 18:01:36 325
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人