原创
文章平均质量分 63
RangeYan2012
欢迎大家与我交流技术问题!我的QQ:332478640
展开
-
hive常用语法
目录一、关系运算:1.等值比较: =2.不等值比较: <>3.小于比较: <4.小于等于比较: <=5.大于比较: >6.大于等于比较: >=7.空值判断: IS NULL8.非空判断: IS NOTNULL9. LIKE比较: LIKE10. JAVA的LIKE操作: RLIKE11. REGEX...原创 2019-07-18 20:33:32 · 687 阅读 · 0 评论 -
HDFS 优缺点
HDFS优点:高容错性:数据自动保存多个副本,副本丢失后,自动恢复适合批处理:移动计算而飞数据。数据位置暴露给计算框架适合大数据处理:GB,TB,设置PB级数据。百万规模以上文件数量。10K+节点规模。流式文件访问:一次性写入,多次读取。保证数据一致性。可构建在廉价机器上:通过多副本提高可靠性。提供容错和恢复机制。HDFS缺点:不适合低延迟数据访问场景:比如毫秒原创 2017-01-22 16:59:03 · 7664 阅读 · 0 评论 -
HDFS 架构
2.X 版本的HDFS 架构图如下:Active Namenode:主Master(只有一个)管理HDFS的命名空间(name space)管理数据块映射信息配置副本策略处理客户端读写请求Standby NameNode:NameNode的热备定期合并fsimage和fsedits,推送给NameNode当Active NameNode出现故原创 2017-01-22 16:46:43 · 648 阅读 · 0 评论 -
Yarn 架构
yarn 基本架构Resource ManagerApplication masternode managercontainer history servertimeline server参考资料:1. http://blog.csdn.net/cymvp/article原创 2017-01-22 11:48:08 · 691 阅读 · 0 评论 -
Yarn 资源调度器
Yarn的资源调度目前支持内存和CPU两种资源。Yarn支持三种调度方式:FIFO、FAIR和DRF分别是指先来先服务、公平调度和主资源公平调度FIFO:先按照优先级高低调度,如果优先级相同,则按照提交时间先后顺序调度,如果提交时间相同,则按照(队列或者应用程序)名称大小(字符串比较)调度;不支持有子队列的情况。FAIR:按照内存资源使用量比率调度,即按照used_memo原创 2017-01-20 19:20:06 · 3781 阅读 · 0 评论 -
Apache kafka 中zookeeper 的应用
正如ZooKeeper用于分布式系统的协调和促进,Kafka使用ZooKeeper也是基于相同的原因。ZooKeeper用于管理、协调Kafka代理。每个Kafka代理都通过ZooKeeper协调其它Kafka代理。当Kafka系统中新增了代理或者某个代理故障失效时,ZooKeeper服务将通知生产者和消费者。生产者和消费者据此开始与其它代理协调工作。Kafka整体系统架构如图所示。下原创 2017-01-19 15:09:41 · 912 阅读 · 0 评论 -
Hive查询优化
Hive查询优化分成三个部分1. 合理建表2.通用参数优化\3.Join优化原创 2017-02-09 14:21:01 · 835 阅读 · 0 评论 -
Hive 模式设计和语言规范
1. 模式设计1.1 数据模型-数据的组织方式Database: 和关系型数据库的Database一样Table: Hive将数据表分为内部表和外部表。内部表在Hive中创建的普通表都可称作“内部表”。因为Hive可以(或多或少)控制其数据的生命周期,内部表对数据拥有所有权。如我们所见,通常Hive会将内部表的数据储存在由hive.m原创 2017-02-09 12:38:54 · 2423 阅读 · 0 评论 -
Hive Driver 原理
Hive 的Driver 是hive的一个组件,负责将hive sql 解析和优化HQL语句,将其转换成一个Hive Job(可以是MapReduce,也可以是Spark等其他任务)并提交给Hadoop集群。SQL转化为Hive Job的过程SQL转化为MapReduce任务的,整个编译过程分为六个阶段:Antlr定义SQL原创 2017-02-09 11:23:40 · 4502 阅读 · 0 评论 -
Hive架构
Hive架构在Hadoop生态圈中已经是老生常谈。尽管如此,很多资料并没有将Hive模块之间的关系描述的十分清楚,本人也在管理Hive数据仓库时绕了不少弯路。所以我们仍要再谈Hive架构,希望将积累的经验总结出一套完整而又易懂的Hive架构,借此为行业新人开路,为大数据运维排忧。Hive是典型C/S模式。Client端有JDBC/ODBC Client和Thrift Client两类。原创 2017-02-09 11:00:38 · 7086 阅读 · 0 评论 -
Apache kafka 设计与实现
一、 设计 kafka设计目标是实现一个高吞吐量的,低延迟的,实时数据处理的统一平台。在设计的时候从以下几个方面做了优化。1. 数据持久化Kafka直接将数据写到了文件系统的日志中,依赖操作系统的page cache 实现read-ahead 和 write-behind。这样做的好处是读和写都是 O(1) 的,并且读操作不会阻塞写操作和其他操作2. 消息传输的原创 2017-01-18 12:06:01 · 891 阅读 · 0 评论 -
Apache kafka 架构与功能
Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等1. 架构与功能原创 2017-01-17 10:57:51 · 975 阅读 · 0 评论 -
hive中的order by , sort by, distribute by, cluster by
1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。 这里跟传统的sql原创 2017-02-07 17:01:03 · 718 阅读 · 0 评论 -
HDFS 内部机制
1. 写流程2.读流程3.副本放置策略4.可靠性策略5.HDFS数据块6.HDFS 不适合小文件存储原创 2017-01-22 17:14:28 · 625 阅读 · 0 评论 -
HDFS 2.0 HA实现原理
在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障,那么将导致整个集群无法利用,直到NN重启或者在另一台主机上启动NN守护线程。 主要在两方面影响了HDFS的可用性: (1)、在不可预测的情况下,如果NN所在的机器崩溃了,整个集群将无原创 2017-01-22 17:20:44 · 685 阅读 · 0 评论 -
HDFS fsimage和edits合并实现原理
1. Hadoop 1.x 版本 fsimage和edits合并实现原理 在NameNode运行期间,HDFS的所有更新操作都是直接写到edits中,久而久之edits文件将会变得很大;虽然这对NameNode运行时候是没有什么影响的,但是我们知道当NameNode重启的时候,NameNode先将fsimage里面的所有内容映像到内存中,然后再一条一条地执行edits中的记录,当edits文件原创 2017-01-22 17:25:22 · 4268 阅读 · 0 评论 -
mysql 数据空洞
表空洞是什么当你对InnoDB进行修改操作时,例如删除一些行,这些行只是被标记为“已删除”,而不是真的从索引中物理删除了,因而空间也没有真的被释放回收。InnoDB的Purge线程会异步的来清理这些没用的索引键和行,但是依然没有把这些释放出来的空间还给操作系统重新使用,因而会导致页面中存在很多空洞。如果表结构中包含动态长度字段,那么这些空洞甚至可能不能被InnoDB重新用来存新的行,因...原创 2019-07-18 20:31:26 · 4889 阅读 · 0 评论 -
编程语言基本用法总结(Shell,Python,C/C++)
1. Shell 脚本执行目录声明:#!/bin/bash数据结构:val_str="string" #定义字符串变量val_int=1 #定义整形变量arry_str=("1" "2" "3" "4") #定义字符串型数组arry_int=(1 2 3 4) #定义整形数组map=(["key1"]=1 ["key2"]=2) #定义map结构map["k原创 2017-03-05 17:25:23 · 6311 阅读 · 2 评论 -
数据结构与算法之二分查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以原创 2017-03-04 10:48:29 · 470 阅读 · 0 评论 -
数据结构与算法之整体有序数组的查找
一个组数整体上是有序的(或者说是循环有序),需要找到其中的某个元素假设数组整体是升序的,基于二分查找算法实现如下:非递归实现int search(int a[],int length,int target){ int low = 0; int high = length-1; while(low <= high) { int mid=low + (high原创 2017-03-05 15:53:41 · 506 阅读 · 0 评论 -
数据结构与算法之有序链表去重
1. 有序链表,需要将链表中重复的节点合并为一个节点(例如:[1,2,3,3,3,5,7,8,8,9,13,14]) 合并为[1,2,3,5,7,8,9,13,14])struct ListNode{ int val; ListNode* next;} ListNode* uniq_list(ListNode* head){ if(head == Null || head ->原创 2017-03-05 16:46:40 · 4606 阅读 · 0 评论 -
数据结构与算法之快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。时间复杂度:O原创 2017-03-18 16:10:41 · 747 阅读 · 0 评论 -
hive 中udf,udaf,udtf
UDF步骤:1.继承org.apache.hadoop.hive.ql.exec.UDF2.实现evaluate函数,evaluate函数支持重载[java] view plain copypackage cn.sina.stat.hive.udf; import java.util.Arrays; import org.原创 2017-03-08 11:20:23 · 874 阅读 · 0 评论 -
Apache Kylin Cube优化
Kylin 构建Cube时优化方法如下:1. Hierarchy(层级) Dimensions优化在Fact table(事实表)中的维度满足层级关系时定义这几个维度为Hierarchy。一些列具有层次关系的Dimension组成一个Hierarchy,比如年,月,日组成了一个Hierarchy。查询时指定group by year ; group by year , month;原创 2017-02-14 12:03:58 · 1343 阅读 · 0 评论 -
Apache Kylin Buid Cube详细流程
Build Cube流程主要分为四个阶段:根据用户的cube信息计算出多个cuboid文件根据cuboid文件生成htable更新cube信息回收临时文件1.流程一:作业整体描述把构建Cube的来源表总行数写到指定的HDFS文件中2.流程二:生成中间临时数据这一步的操作是根据Cube设计中的定义生成原始数据,这里会新创建一个Hive外部表,然后再根据Cube中定义的原创 2017-02-13 18:18:57 · 1395 阅读 · 0 评论 -
Apache Kylin Cube构建算法
逐层算法在介绍快速Cube算法之前,我们先简单回顾一下现有的算法,也称之为“逐层算法”(By Layer Cubing)。我们知道,一个N维的完全Cube,是由:1个N维子立方体(Cuboid), N个(N-1)维Cuboid, N*(N-1)/2个(N-2)维Cuboid …, N个1维Cuboid, 1个0维Cuboid,总共2^N个子立方体组成的;在“逐层算法”中,按维度数逐原创 2017-02-13 17:11:37 · 2748 阅读 · 0 评论 -
Apache kylin 原理和架构
Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。1.基本原理kylin的核心思想是预计算,理论基础是:以空间换时间。即多多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存储到hbase中,供查询时直接访问。原创 2017-02-13 12:27:42 · 11458 阅读 · 0 评论 -
基于多维数据模型的OLAP
数据立方体----维度与OLAP前面的一篇文章——数据仓库的多维数据模型中已经简单介绍过多维模型的定义和结构,以及事实表(Fact Table)和维表(Dimension Table)的概念。多维数据模型作为一种新的逻辑模型赋予了数据新的组织和存储形式,而真正体现其在分析上的优势还需要基于模型的有效的操作和处理,也就是OLAP(On-line Analytical Processi原创 2017-02-13 11:18:22 · 5137 阅读 · 0 评论 -
Aerospike数据库实战(六) -- 踩坑&经验总结
问题1:Aerospike集群同时扩容两个节点时,集群可能会出现意外情况。经验教训:从Aerospkie社区找到官方回复,Aerospike扩容时每次只能扩容一个节点。扩容方法是将新增节点UDP组播地址和端口配置成跟现有集群组播地址一致。同时扩容一个以上节点时,会出现意想不到的情况。问题2:Aerospike集群扩容过程中需要五分钟左右的时间同步节点信息、重启分配Par原创 2017-01-11 10:30:55 · 4730 阅读 · 0 评论 -
kafka leader选举机制原理
kafka在所有broker中选出一个controller,所有Partition的Leader选举都由controller决定。controller会将Leader的改变直接通过RPC的方式(比Zookeeper Queue的方式更高效)通知需为此作出响应的Broker。同时controller也负责增删Topic以及Replica的重新分配。当有broker fari over contr原创 2017-02-06 17:22:50 · 54474 阅读 · 4 评论 -
Aerospike数据库实战(五) -- Aerospike C Client 开发
1. C Client 安装sudo yum install openssl-develsudo yum install gcc gcc-c++wget -S "http://www.aerospike.com/artifacts/aerospike-client-c/3.1.18/aerospike-client-c-3.1.18.el6.x86_64.tgz" tar -zxvf a原创 2017-01-09 14:43:57 · 1980 阅读 · 1 评论 -
flume配置-生产环境下 Taildir Source to kafka Sink
生产环境下用flume搜集后端系统产产生的日志,并写入kafka集群,可以参照下面配置。clog.sources = source_logclog.channels = channel_logclog.sinks = sink_log1 sink_log2 sink_log3 clog.sources.source_log.type = TAILDIRclog.sources.sou原创 2017-01-03 12:07:13 · 5671 阅读 · 3 评论 -
flume开发--自定义Sink
kafka可以通过自定义Sink的方式实现数据搜集并写入各种LOTP数据库,下面的例子是通过自定义Source实现数据写入分布式K-V数据库Aerospike.1. 自定义Sink代码如下package kafka_sink.asd;import java.io.IOException;import java.net.ConnectException;import java.uti原创 2016-11-29 12:09:20 · 8211 阅读 · 2 评论 -
python 并发编程(多进程、多线程、gevent)
本人原创,转载请注明出处,合法转载1.python 多进程+gevent实现并发#!/bin/env python#-*- coding: UTF-8 -*-from __future__ import print_functionfrom multiprocessing import Poolimport threadingimport osimport sysimpor原创 2015-12-30 15:42:04 · 4989 阅读 · 1 评论 -
域名解析正确性校验脚本(python多进程)
本人原创,转载请注明出处,合法转载#!/bin/env python# coding=UTF-8import socketimport sysimport redisfrom multiprocessing import Poolimport timeredis_host="127.0.0.1"redis_port=6379all_key="all"right_key=原创 2015-12-30 15:15:31 · 1869 阅读 · 0 评论 -
http响应状态码测试脚本(python版)
本人原创,转载请注明出处,合法转载!#!/bin/evn python#Basic Test Case For Http Server#RangeYanimport requestsimport tracebackimport timeTestCaseIndex_Host_Mapping = {}TestCaseIndex_Url_Mapping = {}TestCa原创 2015-12-24 18:22:26 · 2342 阅读 · 0 评论 -
python发送邮件脚本(支持多个附件,中文)
本人原创文章,转载请注明来源,合法转载!#!/usr/bin/env python# -*- coding: utf-8 -*- import smtplibimport sysfrom email.mime.text import MIMETextimport linecacheimport emailimport os###################### se原创 2015-12-24 18:03:38 · 4966 阅读 · 0 评论 -
redis快照文件dump.rdb解析工具--redis-rdb-tools
redis-rdb-tools 是一个开源的解析redis快照文件dump.rdb的工具,解析出dump.rdb文件后可以用来做数据分析,redis数据恢复或者写入到其他key-value缓存系统中。1.下载&安装git clone https://github.com/sripathikrishnan/redis-rdb-toolscd redis-rdb-toolssu原创 2016-01-21 18:00:13 · 10024 阅读 · 0 评论 -
c++ 版本url encode 和url decode 代码
#include #include using namespace std;unsigned char ToHex(unsigned char x) { return x > 9 ? x + 55 : x + 48; }unsigned char FromHex(unsigned char x) { unsigned char y; if (x原创 2016-07-01 11:04:47 · 7059 阅读 · 1 评论 -
pyspark 读写lzo 文件例子
pyspark 读写lzo 文件例子from pyspark import SparkContextfrom pyspark import SparkConfconf = SparkConf().setAppName("ta_yanshu")sc = SparkContext(conf=conf)filerdd = sc.newAPIHadoopFile("s3n://2原创 2016-07-08 19:50:21 · 5035 阅读 · 1 评论