自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

致力于前沿技术研究,下一代网络、云网络、网络模拟、网络安全、k8s、网络虚拟化。

  • 博客(54)
  • 收藏
  • 关注

原创 plsql

pl/sql程序化扩展语言比如往表里面插入100万行数据就需要plsqldeclare 变量声明begin 程序主体exception 例外处理end; 程序结束select 语句必须接into,且结果只允许返回单条记录,为空或为多条均报错标识符就是一个对象,比如constant常量,variable变量,exception异常,cursor游标指针,可以存

2016-09-30 23:11:34 322

原创 plsql/sql3-各种约束

层次/递归/分级/结构查询如何查询总经理-部门经理-主管-员工的员工层次关系?select Ipad(ename,length(ename)+(level*2)-2,'_') as hierarchyfrom empstart with ename='KING' and mgr is nullconnect by prior empno=mgr;如何查询scott用

2016-09-30 22:21:41 3108

原创 sql与plsql2

sql:结构化查询语言数据定义DDL 数据定义语句create alter drop truncate--清空表,只是数据的清空 grant--数据权限 revoke--回收权限... 其中ddl是不能回滚的数据操作DML数据操作语言select insert update delete lock table,...这些语句是可以回滚的,数据控制DCL数据控制语句commi

2016-09-30 18:11:06 334

原创 sql/PLsql基础1

sqlplus内部命令select * from scott.emp where sal>2000 order by ename;l 列出上一条命令l 2 列出上一条命令的第二行l 1 2 列出上一条命令的第一行到第二行i order by sal 在当前行后增加一行del 3 删掉第三行/ 执行c/by sal/by abc 修改当前行指定字串,这里把sal改成a

2016-09-30 13:50:40 479

原创 impala

特点:impala是基于hdfs的sql查询引擎,有如下特点:sql查询与hive完全共享元数据库自带计算框架,不基于mapreduceimpala部署于所有节点,无主仆之分,任意节点均可以直接接受任务可以做实时查询,原因查询延迟小,实时查询是数据已经持久化后然后进行查询,实时处理是数据还没持久化就进行实时处理。hive的udf可以直接在impala执行

2016-09-30 02:12:11 982

原创 hivesql 一些语法注意点

hive where字句里不允许有子查询不支持如下:select ...from table_namewhere id in (select id from ... )这种语法hive里面是不支持的,但是关系型数据库里面经常会这么写。如何替换:我们可以用两个表关联代替,但是in右边括号里边是不允许重复的,而关联时右边是有重复的。所以就是说,我们应该先把join右边的表进行去

2016-09-30 00:42:47 3787

原创 hive的sql优化3

count(distinct)和group by发生数据倾斜,就是key引起的我们来看查询计划:explainselect count(distinct session_id) from trackinfo where ds='2013-11-01' 查询计划里面会显示key是session_idexplainselect max(session_id) from trac

2016-09-30 00:40:23 433

转载 docker部署spark集群

//来自http://blog.csdn.net/qq1010885678/article/details/46353101#comments的良心文章,希望大家受益!由于自己的电脑配置普普通通,在VM虚拟机中搭建的集群规模也就是6个节点左右,再多就会卡的不行 碰巧接触了Docker这种轻量级的容器虚拟化技术,理论上在普通PC机上搭建的集群规模可以达到很高(具体能有多少个也没有实际测试

2016-09-29 20:58:58 886

转载 docker

//转自:http://www.open-open.com/lib/view/open1423703640748.htmlDocker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 Docker 使用客户端-服务器 (C/S) 架构模式。Docker 客户端会与 Docker 守护进程进

2016-09-29 17:36:49 440

原创 数据预处理2

相关性的度量:对象之间的相关性是对象属性之间线性的度量x,y是两向量标准差,协方差,皮尔森是评价相似性,相异性的指标邻近度计算:当属性有不同的值域,变换成相同的值域,用欧式距离某些属性是相关,可用mahalanobis距离,表示i,j的协方差数据预处理比如做预测,把无关的属性去掉,用有用的属性进行预测。一个数据集是由若干个数据对象描述,每个对象又

2016-09-29 10:14:21 1029

原创 hive sql优化-join Mapjoin Group by

join 按照key进行分发,key的合并在map阶段,而在join左边的表,也就是主表,会首先读入内存,当然它不是全部读入内存,而是部分读入内存,如果左边的表的key相对分散(或少,分散的意思就是相同key的数据量小),读入内存的数据会比较小,join任务执行会比较快。而如果左边的表的key比较集中,而这张表的数据量很大,那么数据倾斜会比较严重。map阶段同一key数据分发给一个redu

2016-09-29 08:26:08 3635

原创 hive sql层面优化

优化手段:合理控制map和reduce数合并小文件避免数据倾斜,解决数据倾斜减少job数(合并job,大job分拆。。)一个job就是一个mapreducemap数:map数过大会导致:map阶段输出文件太小,产生大量小文件,所以下一阶段就需要小文件合并,浪费很多reduce数初始化和创建map的开销很大map数太小:文件处理或查询并发度小,job执

2016-09-28 23:18:52 355

原创 hive降io之压缩和分布式缓存

有三种压缩算法gziplzosnappy第一种压缩后文件是最小的,snappy是最大的,但是压缩效率也就是压缩速度和解压速度,snappy是最好的企业中一般用后两种方式曾经用过lzo压缩,常导致个别老机器down机cdh4集成了snappysnappy的前身是zippy。虽然只是一个数据压缩库,它却被coogle用于许多内部项目,其中就包括Bigtable,map

2016-09-28 10:51:57 1335

原创 hive降io

常用复杂或低效统计源上给出,以避免上层作业过多计算背景:日志10分钟加载一次到实时日志表trackreal中,过滤非法数据,爬虫数据。。。生成按天增量日志表trackinfo(增加url_page_id)上层应用就不需要调这个udf统计首页某一 天流量:select '首页',count(*) pv,count(distinct session_id) uvfr

2016-09-28 01:43:04 379

原创 kafka通过sparkstreaming连oracle模版

首先定义一个KafkaInfo对象import java.util.Propertiesobject KafkaInfo { val brokerList = 。。。 val topicTest = "test" val topic = "" val url = "" val prop = new Properties() prop.setPrope

2016-09-28 00:07:16 2605

原创 hive共享中间结果集

场景:如果有多个作业同时用到了相同的中间结果集重量级优化:作业的“亲缘”关系(也就是有相同依赖的表,就是from后面相同的),目的是:多作业共用输入或输出,输入就是用中间结果集作为下一阶段的输入,输出和输入是同一个概念,就是说你输出了,又作为下一个中间结果集的输入比如说,每天几千个作业访问大表日志表trackinfo;访问多个表的相同统计存在于很多作业里面,就是统计的那些表,统计的

2016-09-27 10:09:22 772

原创 hive优化策略与架构优化

架构层面:(最有效)-分表,日志表每天有很大数据量,又有很多作业访问,表规模决定耗时,所以要把用的比较少的数据分出去-合理利用中间结果集,最重要,重视查过就丢的资源浪费,hadoop的io负载瓶颈,hadoop有很多文件句炳-常用的复杂统计或低效统计给出,以避免上层作业过多计算,比如这些复杂指标,最好放在基础表(元表)中统计出来-合理设计表分区,hive有静态分区和动态分区。用的比

2016-09-27 00:15:25 408

原创 hive体系结构和hive作业形式

hive作业的规模决定着优化层级,一个hive作业优化和一万个是肯定不同的企业一般是从架构层面,hivesql语法层面,hive参数层面进行优化hive作业形式:a,hiveServer(hive --service hiveserver),jdbc访问,1个客户端连接数,需要建pool池,内存损耗很大,容易内存溢出。javajdbc访问b,shell脚本封装,hi

2016-09-26 22:33:30 716

原创 企业里面做流计算架构

1前后台分离,重启维护不影响2spark重启不影响结果数据,不影响highcharts图表展示3tomcat重启不影响数据处理4前台后台数据传输通过hbase,hbase稳定性强,查询实时性好hbase强于关系型数据库的点:1put插入也是更新,不需要判断是插入还是更新2高频读写的支撑要比关系型数据库强很多一般是kafka-spark-hbase-ser

2016-09-26 21:24:58 296

原创 统计uv

import kafka.serializer.StringDecoderimport org.apache.spark.SparkConfimport org.apache.spark.storage.StorageLevelimport org.apache.spark.streaming.dstream.InputDStreamimport org.apache.spark.stre

2016-09-26 15:36:34 919

原创 spark的streamingcontext的另一种创建方式

val ssc = StreamingContext.getOrCreate(checkpointDirectory, () => { val topics = "logTopic" val brokers = "master:9092,slave1:9092" val sparkConf = new SparkConf().setAppName("uv").setM

2016-09-26 14:41:29 1471

原创 时间窗口模版

场景描述:统计近n时间的数据基于窗口的操作都需要两个参数,分别是窗口时长,和滑动步长,两者都必须是streamContext的批次间隔的整数倍窗口时长:近n时间里的n滑动步长:多久输出一次结果窗口时长控制每次计算最近的多少个批次的数据,其实就是最近的windowDuration/batchInterval个批次import org.apache.spark.SparkCon

2016-09-26 13:07:00 1639

原创 sparkstreaming中的mapWithState和updateStateBykey代码模版对比

import org.apache.spark.SparkConfimport org.apache.spark.streaming.kafka.KafkaUtilsimport org.apache.spark.streaming.{Seconds, State, StateSpec, StreamingContext}/** * Created by zengxiaosen on

2016-09-26 13:03:58 2873

原创 用sparkstreaming按天计算地区销售额简单模版

producer端:import java.util.HashMapimport org.apache.kafka.clients.producer.{KafkaProducer, ProducerConfig, ProducerRecord}import org.apache.spark.SparkConfimport org.apache.spark.streaming._i

2016-09-26 12:34:36 2614 3

原创 kafka+sparkstreaming实现每批次的wordcount统计模版

producer端:import java.util.HashMapimport org.apache.kafka.clients.producer.{KafkaProducer, ProducerConfig, ProducerRecord}import org.apache.spark.SparkConfimport org.apache.spark.streaming._

2016-09-26 11:10:02 2002

原创 c++内存空间分配与指针探讨

C中内存类型和布局: (1)栈区(stack):由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。(2)堆区(heap):由程序员手动分配和释放,由malloc或new来分配,free和delete释放。(3)全局区(静态区):全局变量和静态变量的内存是存储放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由

2016-09-25 19:20:22 1209

原创 c++内存地址运算

至于为什么,首先int是占四个字节的,然后比如说1,2格是pi.num,3,4格是pi.dem,而从pi.dem出发构造fun类型,fun类型是8字节,所以占四格,也就是3,4,5,6格是新构造出来的fun,新构造出来的f的num是12,也就是3,4格是由12填充,5,6格是由55填充,而pi的dem就是指向3,4格的,所以就得出来这个结果。这个就很简单。

2016-09-25 18:29:43 1580

原创 数据仓库的架构以及数据分层

数据仓库分层的原因1通过数据预处理提高效率,因为预处理,所以会存在冗余数据2如果不分层而业务系统的业务规则发生变化,就会影响整个数据清洗过程,工作量巨大3通过分层管理来实现分步完成工作,这样每一层的处理逻辑就简单了标准的数据仓库分层:ods(临时存储层),pdw(数据仓库层),mid(数据集市层),app(应用层)ods:历史存储层,它和源系统数据是同构的,而且这一层数

2016-09-25 17:16:22 49210

原创 2016百度大数据云计算笔试总结

垃圾收集将检查并释放不再使用的内存,因为JVM 垃圾收集器收集一个对象之前,一般要求程序调用适当的方法释放资源,但在没有明确释放资源的情况下,Java 提供了缺省机制来终止化该对象心释放资源,这个方法就是 finalize(  )。所以说垃圾收集的程序是不需要明确释放对象的。现代垃圾收集能够处理循环引用问题。首先垃圾回收的循环引用问题的描述如下://http://www.cnb

2016-09-24 14:36:27 3105

原创 kafka

kafka是linkedin开源出来的一个高吞吐的分布式消息系统。kafka是使用scala开发,支持多种语言客户端(c++,java,python等)其具备以下特点:1支持高吞吐量的应用,其实原因就是它是多分区的,每个分区都可以作为数据的进出点,每个topic默认是两个分区2无需停机即可扩展机器3持久化:通过将数据持久化到硬盘以及replication防止数据丢失4支持o

2016-09-23 17:10:31 530

原创 dstream的两种类型

dstream的两种模式,一种是有状态,一种无状态无状态就是说每批次的处理不依赖于之前批次的数据,如map,filter,reducebykey等,都是无状态转化操作。场景,例如汇总sum类操作相对的有状态操作就是依赖之前的批次,包括滑动窗口的转化操作和追踪状态变化的转化操作。场景是:滑动窗口,去重类操作,比如每次数据批次过来,我需要基于历史的去重,有状态占用的存储会多一些有状态操

2016-09-23 16:18:56 2972

原创 sparkstreaming架构

流计算是进行实时计算,作业启动后会一直运行,没有止境,除非手动停止最有名的流计算产品:storm:逐行或个批次(如100行)进行处理,批次指的是行spark:即streaming模块,按时间片段批次处理,批次指的是时间段sparkstreaming当数据量非常大的时候不建议小于30秒一个批次,负载会特别大,这点和storm是完全不同的。开发难度上storm难一些,spark简单

2016-09-23 15:14:56 842

原创 spark的优化-控制数据分区和分布

数据分区:在分布式集群里,网络通信的代价很大,减少网络传输可以极大提升性能。mapreduce框架的性能开支主要在io和网络传输,io因为要大量读写文件,它是不可避免的,但是网络传输是可以避免的,把大文件压缩变小文件,从而减少网络传输,但是增加了cpu的计算负载。spark里面io也是不可避免的,但是网络传输spark里面进行了优化:spark把rdd进行分区(分片),放在集群上并

2016-09-23 12:30:33 10229

原创 spark读取json,parquet文件

spark支持的一些常见的格式:文本文件,无任何的格式json文件,半结构化parquet,一种流行的列式存储格式sequencefile,一种用于key-value的hadoop文件格式,如果需要读hdfs数据的话,通常走hive的比较多。在企业中很少用,原因是写sql的时候,能用sparksession解决的,都不会去弄rdd的各种transform和actioni

2016-09-23 11:56:55 10636

原创 hiveudf和sparkudf开发应用和对比

udf:user define function:用户自定义函数hive中udf的开发和运用非常普遍hive中的udf都放在-i的初始化文件里面。所以hive的udf弄好了和hive的内置函数是一样的,但是spark中就不行,因为它是在代码里面嵌入进去,所以不通用。sparksql里udf开发用的不多,原因有2:1,无法固化,只能在每个程序内使用,所以无法其他作业复用。如果每个应用

2016-09-23 10:15:35 4299

原创 sparksql支持传参数的封装

sparkF里面:#!/etc/profilesql='java -jar /opt/cloudy/spark/sparkF.jar $*'echo $sqlspark-sql -e "$sql" -i /opt/cloudy/bin/hive-init.sql==从上面可以得知,udf还是hive的udf,只不过命令改成了spark。上一篇中已经给出了aa.sql

2016-09-23 09:32:42 9137

原创 sparkcli命令spark-sql的使用

spark的定位是是替换掉hive和storm,企业里面hive百分之八十的命令都是通过hive-cli命令来调的,sparksql的作用等同于hive-cli。hive-cli是跑在mapreduce,sparksql是运行在spark上,通过sparksql --help可以看cli,比如指定内存,核数,以及执行cli的命令,他是完全仿造hive的。比如在hive上执行:hive -e "

2016-09-23 01:53:44 6955

原创 spark在集群上传jar的注意点

注意点:1,记得把jar里的META-INF下除了mainfest.mf外的全删除,重新上传执行2,spark自身带的4040界面看作业运行过程和状态3,yarn模式在8080界面查看4,spark操作hive的时候记得把hive-site.xml放到每个节点的/spark-2.0.0-preview-bin-hadoop2.6/conf下,因为都要查hive5,在hive分区

2016-09-23 01:13:36 1407

原创 spark操作hive简单代码

import org.apache.spark.SparkConfimport org.apache.spark.sql.SparkSession/** * Created by zengxiaosen on 16/9/23. */object hiveoperation { def main(args: Array[String]): Unit = { val sp

2016-09-23 00:54:59 1434

原创 数据预处理

数据预处理:数据对象和属性类型,数据的基本统计,数据可视化,度量数据相似性和差异性数据对象和属性类型:数据集有很多数据对象,数据对象代表一个实体,统计学称为样本,数据仓库中把数据对象(一行数据)称为元组,通常用图模型,图模型中数据对象叫数据点,数据对象有很多属性,名词性属性,二元属性,序数属性,数字属性,叙述属性。名词属性就是用一些符号名称描述数据对象,如头发颜色,婚姻状态。二元属性就是只有两

2016-09-22 10:41:53 1226

空空如也

空空如也

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

TA关注的人

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