-
大表笛卡尔积优化思路最近在工作过程中碰到了大表间的笛卡尔积,这个就比较恶心了,开始完全跑不出来,后来一步步优化,最终起码勉强能有结果,虽然有很多数据特殊性且思路简单,但是也还是记录下。案例假设有如下用户登录表 user_login_detail:user代表用户,city代表用户登录过得城市,country代表用户国籍,other代码其他数据; user city co...
-
fink概述作为实时领域对飙spark的存在,flink现在已经得到广泛的使用了,既然能得到业界任何和使用,肯定有其过人之处,之后工作中也有可能会用到,了解一下总是没错的。什么是flinkFlink核心是一个流式的数据流执行引擎,提供各种API,如Java、Scala和Python,同事支持类似SQL的操作。为什么选flink数据传输方式首先需要了解两个概念:1.流处理:当一条数据被处理完成后,序列化到...
-
记一波数据仓库从0到1的实战经历之前算是经历了一个团队的数据体系从比较原始的状态到相对比较完善的数据仓库的演变过程,大概记录下,有个方向和思路。1.原始状态业务上纯需求驱动,无明确分工;根据需求,联系原数据方,通过各种技术手段得到结果。技术上数据存储主要依赖oracle和mysql,绝大多数存储在oracle中。任务调度大部分通过可执行jar包放到服务器上起crontab任务定时执行jar包,部分写在自己的java工程里面...
-
马太函数 and IV算法最近工作中有接触到通过马太函数和iv算法进行特征筛选,虽然只是帮忙做一些简单的数据采集工作,不过,学习一下总归是多多益善的。马太函数马太效应,是指好的愈好,坏的愈坏,多的愈多,少的愈少的一种现象。即两极分化现象。类似于80/20法则,它们大概说的意思是一致的,在统计学中,这些说法被抽象成所谓的幂律分布,在分布图上,它表现为一条拖着长长尾巴的曲线。打个比方,我们取一个区域内拥有的财富为宗轴,拥...
-
机器学习基本概念什么是机器学习机器学习是一种让计算机利用数据而不是指令来进行各种工作的方法,主要使用归纳、综合而不是演绎。它研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。demo:机器识别图片结果为:“A person riding a motorcycle on a dirt road”相关概念数据集:数据的集合训练集:用来进行训练,也就是产生...
-
换坑第一次写生活相关的,还是当做记录下,毕竟17年三月份正式毕业到现在为止第一次正式跳槽,猪场实习大半年+正式工作两年多,到现在在新公司刚满一周,也是有些感触。职场初体验到现在还记得挺清楚的,第一次实习面试的时候(15年底),我的大概面试内容,还现场写了段数组去重的java代码,当时用了两个循环,还被面试官说了,让我用hashmap,不过最后还是很善良的给我过了;毕竟当时还是研二,对于我这种非9...
-
linux命令笔记linux的一些常用或者非常用命令,经常用到但是又经常忘记,或者不确定,毕竟在服务器上,一个误操作可能就滚蛋了,所以还是记一下,以防不测。常用git操作1.git log查看历史提交记录git log --graph --pretty=oneline --abbrev-commit 查看提交流程图2.git add3.git commit 提交已经被add进来的改动4.git diff不加参...
-
各种参数调优在实际使用Hive或者Spark的时候,肯定会涉及参数的调优,主要目的是提升资源的使用率,提升任务的性能,以最少的资源最快的完成任务的运行,有时候也是为了解决一些直接的报错,总之,不管用过没用过的都记录一下,方便以后查阅。##Hive1.mapred.reduce.tasks 默认:1;所提交 Job 的 reduer 的个数,使用 Hadoop Client 的配置。2.hive.mapr...
-
笔记本发现有时候看到一些,让自己茅塞顿开的文章内容,或者,突然想到了之前困扰自己的问题的答案,之类的这些,又担心自己之后忘记,但是单独开一篇又觉得没有必要,所以,就记录在这里,方便以后可以查阅一下。笔记1.一张图明白MR中 Partition和Reduce 的关系2.最近刚换新工作,基建做的比较好,比较难接触到底层,但是学习还是不能止步的,简单列一些自己还要学习的东西,以后有空写点东西。1.数据挖...
-
Hive SQL题集仍然,仍然是SQL,这波Hive SQL要求自己一定要做到越复杂越好,越难越好,严格要求自己,才能成长,加油加油加油!解题思路:1.看到多个key变1个,首先想到group by一手;2.从结果一步步往前倒推;1.这里有5个https://www.cnblogs.com/qingyunzong/p/8747656.html#_labelTop(复杂化了,其实有几题是完全可以用窗口函数的)2....
-
SQL IN ACTION依旧还是SQL,毕竟真正工作中最常用的东西,上一篇主要说了些原理性质的东西,这篇写一些常用或者少见的HQL、Spark SQL、Oracle SQL的用法,碰到不熟的,就记录下,方便以后查阅,更新ING。1.Hive SQL1. grouping sets会把所有grouping的字段(key)都单独累计一次,组合key的话,没有的key显示null,比如:可以在求汇总行的时候用来代替 un...
-
SQL真香感觉目前大多数公司实际处理数据(主要是离线数据),基本都还是用sql的方式居多,大数据量下用hive sql、spark sql等,在关系型数据库中包括oracle、mysql等也是用sql处理逻辑,所以,积累和完善一些sql优化或者问题处理的方法和技巧还是有必要的,先init一手,后续慢慢补充。1.Hive SQLHadoop应该是当前最流行的大数据处理工具了(没有之一的那种),单独写Ma...
-
Java内存泄漏快速定位及解决最近在工作中碰到了内存泄露的问题,导致服务器内存一直在阶梯上升,眼瞅着就要挂掉,只能紧急先重启服务,再慢找原因和解决,作为Java开发常见问题,还是记录一手。1.内存泄漏原因在Java中,内存泄漏就是存在一些被分配的对象,首先,这些对象是有被引用的,即在有向树形图中,存在树枝通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对象。这些对象不会被GC所回收,然而它却占用内存。几...
-
Java多线程相关无论是开dubbo接口、http接口,还是Java Web服务端开发,亦或者是各种中间件的开发;无并发,不Java,你们懂的;必须专门开一篇以示尊重,Java不息,更新不止。1.相关概念1.关键字 synchronized 使用场景:原理:同步代码块: 反编译可以看到monitorenter,monitorexit指令(相对于不加synchronized多出来); 原理:每个对象有一个...
-
Java知识点整理1.Java设计模式1.java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、 备忘录模式、状态模...
-
数据结构and数据建模and数据算法数据结构1.线性表线性表是最常用且最简单的一种数据结构,它是n个数据元素的有限序列。实现方式:1.数组:大小固定,满了需要用更大数组替换;查找快,插入、删除慢(需要移动后面数据位置)2.链表:通过链表中的指针链接次序实现;插入、删除快,查找慢 单链表反转:https://blog.csdn.net/blioo/article/details/620509672.栈与队列栈和队列也...
-
spark小文件过多问题记录1.问题描述1.最近使用spark sql执行etl时候出现了,最终结果大小只有几百k,但是小文件一个分区有上千的情况。 危害:hdfs有最大文件数限制; 浪费磁盘资源(可能存在空文件)。 hive中进行统计,计算的时候,会产生很多个map,影响计算的速度。2.解决流程1.设想:通过spark的coalesce()方法和repartition()方法 v...
-
大数据知识点整理1.Hadoop1.简述如何安装配置apache 的一个开源的hadoop1 ) 安装JDK并配置环境变量(/etc/profile)2) 关闭防火墙3) 配置hosts文件,方便hadoop通过主机名访问(/etc/hosts)4) 设置ssh免密码登录5) 解压缩hadoop安装包,并配置环境变量6) 修改配置文件( $HADOOP_HOME/conf )hadoop-env.sh co...
-
kafkakafka也是现在各家互联网公司里非常常用的技术了,虽然现在我们组暂时没有用到,还是学习一手,记录下,以备不时之需。1.本地kafka搭建1.安装brew2.安装kafka:brew install kafka 配置文件位置:/usr/local/etc/kafka/server.properties /usr/local/etc/kafka/zookeeper....
-
hdfsHDFS写入操作场景1.有一个文件FileA,100M大小。Client将FileA写入到HDFS上。2.HDFS按默认配置。3.HDFS分布在三个机架上Rack1,Rack2,Rack3。写操作流程 1.将 100M 文件划分为 64M 和 36M 两个block 2.将 64M 的block1按 64k 的package划分; 3.将第一个package发送给host2; 4.ho...
-
spark基本原理rdd1.RDD是Spark提供的核心抽象,即弹性分布式数据集(弹性指rdd可以权衡数据存储在内存或磁盘)2.RDD有分区,如一个RDD有90万数据,10个分区,每个10万数据;默认一个分区最大128M,可通过spark.files.maxPartitionBytes调节。3.每个分区都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么...
-
hbase1.Hbase概述1.HBase设计模型HBase中的每一张表就是所谓的BigTable。BigTable会存储一系列的行记录,行记录有三个基本类型的定义:a.RowKey:是行在BigTable中的唯一标识。b.TimeStamp:是每一次数据操作对应关联的时间戳,可以看作SVN的版本。c.Column:定义为<family>:<label>,通过这两部分可以指定唯...
-
sqoop1.Sqoop原理从传统数据库获取元数据信息(schema、table、field、field type),把导入功能转换为只有Map的Mapreduce作业,在mapreduce中有很多map,每个map读一片数据,进而并行的完成数据的拷贝。在导入开始之前,Sqoop使用JDBC来检查将要导入的表。他检索出表中所有的列以及列的SQL数据类型。这些SQL类型(VARCHAR、INTEGER)...
-
Elasticsearch1.Elasticsearch简介ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据...
-
zk实现分布式锁基于curator实现的分布式锁主要有三种:1.基于InterProcessMutex实现的分布式锁属于可重入式锁,当一个客户端获取到lock锁之后,可以重复调用acquire()而不会发生阻塞。2.基于InterProcessSemaphoreMutex实现的分布式的分布式锁是不可重入的,当一个客户端获取到lock锁之后,再次调用acquire方法获取锁时会发生阻塞。3.基于InterPr...
-
redis1.Redis概述Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,...
-
zookperZooKeeper提供了什么1.文件系统2.通知机制1.Zookeeper文件系统每个子目录项如 NameService 都被称作为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。有四种类型的znode: 1.PERSISTENT-持久化目录节点 : 客户端与zookeeper断开连接后,该节...
-
yarn1.YARN中相关概念1.ResourceManager:负责整个集群的资源管理和分配。2.ApplicationMaster:YARN中每个Application对应一个AM进程,负责与RM协商获取资源,获取资源后告诉NodeManager为其分配并启动Container。3.NodeManager:每个节点的资源和任务管理器,负责启动/停止Container,并监视资源使用情况。4.Co...
-
spark资源调优1.Spark作业基本运行原理我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程。根据你使用的部署模式(deploy-mode)不同,Driver进程可能在本地启动,也可能在集群中某个工作节点上启动。Driver进程本身会根据我们设置的参数,占有一定数量的内存和CPU core。而Driver进程要做的第一件事情,就是向集群管理器(如YAR...
-
impalaimpala也是部门现在用的比较多的技术,整理个大概,方便以后用到的时候用起来更加轻松愉快。Impala架构Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具(实时SQL查询引擎Impala)。Datanode上的每个impalad进程,都具有Query Planner,QueryCoordinator,Query ExecEnginer这...
-
storm and jstormHadoop与Storm比较1.Storm用于实时计算,Hadoop用于离线计算。2.Storm处理的数据保存在内存中,源源不断;Hadoop处理的数据保存在文件系统中,一批一批。3.Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。4.Storm与Hadoop的编程模型相似。Storm架构NimbusStorm集群的Master节点,负责分发用户代码,指派给具体的Super...
-
java高并发及多线程问题参考博文:https://blog.csdn.net/suifeng3051/article/details/52611310; https://blog.csdn.net/li396864285/article/details/49331369; https://blog.csdn.net/luoweifu/article/details/46613015最近在...
-
mapResuce shuffle和spark shuffleSpark 和 Hadoop一直是大数据离线计算的必经之路,自己在工作中也经常用到,所以学习一下原理还是很有必要的,不然碰到问题很容易一脸懵逼,其中感觉shuffle是两者的核心之一,故整理下,方便以后回顾。大数据的分布式计算框架目前使用的最多的就是hadoop的mapReduce和Spark,mapReducehe和Spark之间的最大区别是前者较偏向于离线处理,而后者重视实现性。MapR...
-
Hello World!突然想到整个博客,记录下自己生活、工作及学习上的心得和体会。无奈前端水平有限,果断Fork了下别人的代码,希望自己能一直坚持下去。(附赠女神壁纸一张)For the shadow of lost knowledge at least protects you from many illusions.