Spencer Blog

失うこと 割り切れぬこと 割り切れぬこと 叶わないこと 信じぬくこと

MapReduce源码分析(一)Job提交过程

Source Code of MR Job Commit

说明: 源码版本:hadoop2.6.5 资源调度模式:Local 客户端:本机(Mac) 文件系统:HDFS 使用debug的模式跟踪代码,获取变量值,文本使用{variable value }表示debug模式下获得的变量值。客户端代码是最简单的wordcount 一. Job提交流程图 二. Job提交源码追踪 在...

Zookeeper(三)Java API

Zookeeper API

一. 基本操作 org.apache.zookeeper.Zookeeper是客户端入口主类,负责建立与server的会话,提供了下表中的9种操作 操作 描述 create 创建一个znode delete 删除一个znode(该znode不...

Zookeeper(二)zk特性和数据模型

Zookeeper Data Model

一. Zookeeper特性 是由一个leader,多个follower组成的集群 数据一致性,每个server保存一份相同的数据副本,client无论连到哪个server,数据都是一致的。在Zookeeper的设计中,以下几点考虑保证了数据的一致性: 顺序一致性:更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行 原子性:一次...

Zookeeper(一)zk常见应用场景

Introduce to Zookeeper

一. 什么是Zookeeper Zookeeper是为别的分布式程序服务的 Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) Zookeeper提供的服务涵盖:主从协调,服务器动态上下线,统一配置管理,分布式共享锁,统一名称服务等 虽然说可以提供各种服务,但是Zookeeper在底层其实只提供了两个功能: a. 管理(存储,读取)用户程序...

Hive优化

Optimization

核心思想 把Hive SQL当做Mapreduce程序去优化 以下HQL不会转化为Mapreduce来执行 select仅查询本表字段 where仅对本表字段做条件过滤 Explain显示执行计划 EXPLAIN [extended] query Hive运行模式 本地模式 set hive.exec.mode.lo...

Hive简介

Introduction of Hive

一. About Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据库表,并提供类SQL查询功能 Hive设计目的是让精通SQL技能(但Java编程技能相对较弱)的分析师能够对Facebook存放在HDFS中的大规模数据集执行查询。今天,Hive已经是一个成功的Apache项目,很多组织把它用作一个通用的,可伸缩的数据处理平台 二. H...

多用户模式Hive安装

HIVE INSTALLATION

Hive版本: 1.2.1 MySQL connector版本:5.1.32 一. Hive搭建模式 local模式 此模式连接到一个In-memory的数据库Derby,一般用于Unit Test 单用户模式 通过网络连接到一个数据库中(通常是Mysql),是最经常使用到的模式 多用户模式 用于非Java客户端访问元数据...

Flume简介

Introduction of Flume

一. Flume介绍 概述 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统 Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中 运行机制 Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成 每一...

Flume安装配置

Flume INSTALLATION

一. Flume安装 Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 解压tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /usr/local 修改conf下的flume-en.sh,在里面配置JAVA_HOME 二. 配置...

MapReduce(三)优化

Optimization

一. 如何处理大量小文件 默认情况下,TextInputFormat对任务的切片机制是按文件规划切片,不管文件多小都会是一个单独的切片,都会创建一个maptask执行。这样,如果有大量小文件,就会产生大量maptask,降低处理效率 处理方法 在数据系统的最前端(预处理/采集),就将小文件先合并成大文件,再上传到HDFS 如果已经是大量小文件在HD...