Azkaban⼯作流调度系统的概述
⼯作流调度系统
⼀个完整的数据分析系统通常都是由⼤量任务单元组成:如shell脚本程序,java程序,mapreduce程序,hive脚本等
各任务单元之间存在时间先后及前后依赖关系,为了很好地组织起这样的复杂执⾏计划,需要⼀个⼯作流调度系统来调度任务的执⾏。
假如,我有这样⼀个需求,某个业务系统每天产⽣20G原始数据,每天都要对其进⾏处理,处理步骤如下所示:
通过Hadoop先将原始数据同步到HDFS上;
借助MapReduce计算框架对原始数据进⾏转换,⽣成的数据以分区表的形式存储到多张Hive表中;
需要对Hive中多个表的数据进⾏JOIN处理,得到⼀个明细数据Hive⼤表; ...
HBase的Java客户端应用和优化
HBase的Java客户端操作
创建Maven工程,添加依赖
12345678910111213141516171819<dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>1.3.1</version> </dependency> <depende ...
HBase内部原理
HBase读数据流程
首先从zk找到meta表的region位置,然后读取meta表中的数据,meta表中存储了用户表的region信息
启动zkCli.sh ,查看 ls /hbase
1234567891011121314151617181920[root@Linux121 ~]# /opt/lagou/servers/zookeeper-3.4.14/bin/zkCli.sh[zk: localhost:2181(CONNECTED) 1] ls /hbase[replication, meta-region-server, rs, splitWAL, backup- ...
HBase安装与shell基本操作
HBase集群安装部署
下载安装包
下载地址:http://archive.apache.org/dist/hbase/1.3.1/
此次使用hbase-1.3.1-bin.tar.gz
上传并解压安装包到指定的规划目录
1[root@Linux121 ~]# tar -zxvf /opt/lagou/software/hbase-1.3.1-bin.tar.gz -C /opt/lagou/servers
需要把hadoop中的配置core-site.xml 、hdfs-site.xml拷贝到hbase安装目录下的conf文件夹中
123[root@Linux ...
HBase简介与数据模型
HBase 简介
HBase是什么
HBase 基于 Google 的 BigTable 论文而来,是一个分布式海量列式非关系型数据库系统,可以提供超大规模数据集的实时随机读写。
MySQL存储机制
id
NAME
AGE
SALARY
JOB
1
小明
23
学生
2
小红
10w
律师
此时空值字段浪费存储空间。
HBase列存储
1234567rowkey:1 name:小明rowkey:1 age:23rowkey:1 job:学生rowkey:2 name :小红rowkey:2 salary:10wrowkey:2 job:律师....
列存 ...
Hadoop的HA
HA 概述
所谓HA(High Available),即⾼可⽤(7*24⼩时不中断服务)。
实现⾼可⽤最关键的策略是消除单点故障。Hadoop-HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。
Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。
NameNode主要在以下两个⽅⾯影响HDFS集群
NameNode机器发⽣意外,如宕机,集群将⽆法使⽤,直到管理员重启
NameNode机器需要升级,包括软件、硬件升级,此时集群也将⽆法使⽤
HDFS HA功能通过配置Active/Standby两个NameNod ...
Zookeeper应⽤实践
ZooKeeper是⼀个典型的发布/订阅模式的分布式数据管理与协调框架,我们可以使⽤它来进⾏分布式数据的发布与订阅。另⼀⽅⾯,通过对ZooKeeper中丰富的数据节点类型进⾏交叉使⽤,配合Watcher事件通知机制,可以⾮常⽅便地构建⼀系列分布式应⽤中都会涉及的核⼼功能,如数据发布/订阅、命名服务、集群管理、Master选举、分布式锁和分布式队列等。那接下来就针对这些典型的分布式应⽤场景来做下介绍
Zookeeper的两⼤特性:
客户端如果对Zookeeper的数据节点注册Watcher监听,那么当该数据节点的内容或是其⼦节点
列表发⽣变更时,Zookeeper服务器就会向订阅的客户端发送 ...
Zookeeper内部原理
Leader选举
选举机制
半数机制:集群中半数以上机器存活,集群可⽤。所以Zookeeper适合安装奇数台服务器。
Zookeeper虽然在配置⽂件中并没有指定Master和Slave。但是,Zookeeper⼯作时,是有⼀个节点为Leader,其它为Follower,Leader是通过内部的选举机制产⽣的。
集群⾸次启动
假设有五台服务器组成的Zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这⼀点上,都是⼀样的。假设这些服务器依序启动,来看看会发⽣什么
服务器1启动,此时只有它⼀台服务器启动了,它发出去的报⽂没 ...
Zookeeper的基本使⽤
ZooKeeper命令⾏操作
⾸先,进⼊到zookeeper的bin⽬录之后,通过zkClient进⼊zookeeper客户端命令⾏
12./zkcli.sh 连接本地的zookeeper服务器./zkCli.sh -server ip:port(2181) 连接指定的服务器
连接成功之后,系统会输出Zookeeper的相关环境及配置信息等信息。输⼊help之后,屏幕会输出可⽤的Zookeeper命令,如下所示:
1234567891011121314151617181920212223[zk: localhost:2181(CONNECTED) 3] helpZooKeeper -s ...
Zookeeper数据结构与监听机制
在ZooKeeper中,数据信息被保存在⼀个个数据节点上,这些节点被称为 ZNode 。 ZNode 是 Zookeeper 中最⼩数据单位,在 ZNode 下⾯⼜可以再挂 ZNode ,这样⼀层层下去就形成了⼀个层次化命名空间 ZNode 树,我们称为 ZNode Tree,它采⽤了类似⽂件系统的层级树状结构进⾏管理。⻅下图:
在 Zookeeper 中,每⼀个数据节点都是⼀个 ZNode ,上图根⽬录下有两个节点,分别是:app1 和 app2 ,其中 app1 下⾯⼜有三个⼦节点,所有 ZNode 按层次化进⾏组织,形成这么⼀颗树,ZNode 的节点路径标识⽅式和 Unix ...