自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Top N 问题(MR,Hive,Mysql)

前言:仅仅针对权威指南的吐槽,可跳过。说到这个问题实在是让人崩溃,开始看hadoop权威指南中文第四版中的9.2.4案例,求每年的最高温,要求年份按照升序,温度降序。针对组合键告诉我自定义分区只能保证每一个 reduce 接受一个年份的所有记录,而在一个分区之内,reduce 仍是通过建进行分组的分区,所以应该自定义分组。但是自定义分组前后结果配图竟然完全一样!?这是什么迷惑行为。此外,针对分区分组之后reduce 方法中直接使用context.write(key,NullWriteable.get()

2020-05-09 08:58:53 252

原创 大数据面经持续更新

1.hive 数据格式之间的区别2.spark 与MR 的区别例如:select count(cost),id from tb.在spark 与MR的区别3.sparkStreaming 如何保证消费kafka 数据时的一致性4.SQL 求每个年龄成绩最高的学生前十位5.何为dsp,ssp,adx,msdk...

2021-08-16 15:36:07 308

原创 spark structuredstreaming 多流 写入kafka

需求:存在一张离线规则表A,A 中存在两列 gid(规则id),gsql(规则sql) ,一份实时数据,搜索出实时数据中符合规则的数据A 中数据格式如下:gid gsql 202 column0=0.0 and column6>0 201 column0=0.0 and column7>10.0 实时数据格式如下timestamp tagvalue 2021-03-18 20:11:53 0.0,0.0,0....

2021-03-18 21:03:27 855

原创 impala 自定义函数

需求:实现与oracle 过滤方法相同的功能oracle 过滤方法: FUNCTION F_CHANGE_CHR(V_NAME VARCHAR2) RETURN VARCHAR2 IS RESULT VARCHAR2(200); BEGIN RESULT := REGEXP_REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLAC

2020-11-27 18:15:03 1904

原创 JavaScript 基础知识总结

1.js面向对象学习js对象中的prototype属性:用于给js中的特定类声明一个通用的变量或者函数。即用类名.prototype.声明的属性或者方法存在于每一个该类的对象中。该属性存在于每一个构造器中...

2020-08-12 18:36:07 157

原创 Centos 设置静态ip 并且联网

1.对于安装完成的机器,选择机器中的设置,选择网络模式2.本人采用的是net模式,在虚拟网络编辑器中选择更改设置,选择NAT,勾选将主机虚拟适配器连接到此网络。如果不选这项,在真机的网络适配器中你将找不到vmware net8。在子网ip中写入你想要的ip和子网掩码后,点击NAT设置,写入网关ip(网关ip最后一位要是.2)3.进入 vim /etc/sysconfig/network-scripts/ifcfg-eth0。添加DNS、IPADDR、GATEWAY,NETMASK,NA.

2020-05-27 13:21:08 367

原创 hadoop windows安装

jdk 安装注意,jdk的安装目录一定不要带空格。如果带了空格,在后面的hadoop,spark安装时会导致他们不识别jdk环境。出现错误。当然,是否带空格对javac,java -version 这类命令没有影响。如果已经安装完成并且已经带了空格,那么C:\Program Files\Java\jdk1.8.0_121变成C:\Progra~1\Java\jdk1.8.0_121重开cmd,能够看见启动完成hadoop 安装hadoop 所有版本1.选..

2020-05-23 18:19:20 374

原创 HashMap(红黑树,线程不安全)详解

何为hashmap利用hash表原理进行数据存储的集合。线程不安全。jdk1.7采用数组加链表进行存储,当遇到冲突时,利用链表存储冲突的数据。利用头插法操作链表,hashmap进行数据查询的时间复杂度取决于链表长度,时间复杂度为O(n)。在高并发的情况下会出现循环链表死循环和数据丢失。jdk1.8采用数组加链表加红黑树进行存储,当遇到冲突时,当链表长度大于8(TREEIFY_THRESHOLD)时会把链表存储转换为红黑树进行存储,利用尾插法操作链表,hashmap进行数据查询的时间复杂度取决于红

2020-05-21 19:19:23 847

原创 hadoop 之hdfs知识详细整理

hadoop四大组件hdfs:分布式文件管理系统mapreduce:分布式的离线并行计算框架yarn:作业调度与集群资源管理系统comment:支持其他模块的工具模块HDFS(Hadoop Distributed File System)初步认知1.一个文件系统,可以用于存储文件,通过目录树定位文件2.由很多服务器共同实现文件存储功能hdfs 适合一次写入,多次读出的场景,且不支持文件修改,只能追加hdfs不适合用在:要求低时间延迟数据访问的应用,存储大量的小文.

2020-05-17 18:55:07 1470

原创 hadoop shuffle 过程理解

1.shuffle 基本认识何为shuffle:map端的数据传递给reduce端的流程。总体来说即为将map端的输出数据进行分区,排序,缓存然后分发给reduce端,然在reduce端进行归并,分组shulle 过程:官网图:流程简述:1.map task 根据分片信息从文件中读入数据2.maptask 调用map 方法进行业务逻辑运算3.一个maptask 对应一个缓存区,在缓存过程中会进行分区、排序、溢写、归并排序(多个溢写文件变成一个)4.如果存在combiner,

2020-05-15 11:20:50 975

原创 拉勾数据结构课程之归并排序

归并排序原理:一开始先把数组从中间划分成两个子数组,一直递归的把子数组划分成更小的子数组,直到子数组里面只有一个元素才开始排序。排序的方法就是按照大小顺序合并两个元素,接着依次按照递归的返回顺序,不断地合并排好序的子数组,直到最后把整个数组的顺序排好。归并 排序合并:合并函数实现的其实就是如何把两个有序的数组合并成一个数组代码一:比较常见的有序数组合并代码,也比较好理解public void merge(int[] nums,int low,int mid,int h...

2020-05-11 21:44:19 208

原创 拉勾数据结构课之快速排序算法

快速排序算法:实现代码一: /*快速排序 以第一个数为基准点,把大于基准点的放在基准点右边,小于基准点的放在基准点左边。 再把左边的当作一个新的数组1,右边的当作一个新数组2,分别重新选取新的数组1,2的基准点不断执行小于基准点的放左边,大于基准点的放右边 不断划分左右数组序列,直到左右数组序列只剩一个数 实现方法: 定义两个哨兵i,j,j每次先从后往前找到第一个小于基准点的数,如果此时i,j,没有相遇,i在 j找到数后从前往后找到第一个大于基准点的数

2020-05-11 17:50:29 198

原创 yarn 工作机制原理浅析

Yarn 概述:一个资源调度平台,负责为运算程序提供服务器资源。其上可运行各类分布式运算程序。基本概念:1.yarn 并不清楚用户提交的程序的运行机制2.yarn 只负责运算资源的调度3.yarn 中的主管角色叫ResourceManager4.yarn 中具体提供运算资源的角色为NodeManageryarn 主要组件:ResourceManager、NodeManager。其中NodeManager中包含ApplicationMaster、containerRM主要作用.

2020-05-11 10:35:07 1175

原创 shell 编程实例之shell 常规用法及shell 函数

本实例主要实现了远程拉取日志,主要通过编写小时拉取日志函数,实现按小时拉取和按天拉取#!/bin/bash#shell 中需要的配置文件的目录source $DIR/../conf/shell_env.conf# ${#WORKROOT}获得WORKROOT字符串长度if [ ${#WORKROOT} -lt 6 ]; then exit 1fi# $# 获得参数个数 if [ $# -ne 3 ];then exit 1fiday=$1hour=$2get_

2020-05-10 11:05:26 314

原创 kafka及kafka 面试题学习

消息队列的介绍:消息传递通常由两种模式,queuing(队列)和publish-subscribe (发布-订阅)queuing:每个Consumer从消息队列中取走一个消息pub-scrib:消息被广播到每个ConsumerKafka通过提供了一个对Consumer的抽象来同时实现这两种模式-ConsumerGroup。Consumer实例需要给自己指定一个ConsumerGro...

2020-05-09 19:47:24 216

原创 Flume基础入门

flume 核心概念Client:Client生产数据,运行在一个独立的线程agent:java 进程,运行在日志收集节点上(服务器节点),包含source、channel、sink三个核心组件source:从Client收集数据,可以处理各种类型各种格式的日志数据。数据封装到事件(event) 里被传递给channelchannel:缓存收集来的数据,保存由Source组件传递过来的Eventsink:从channel中取出数据,发送到目的地。目的地包括hdfs、logger、

2020-05-09 12:55:49 260

原创 hive 错误记录

本博客用于记录在工作中遇到的错误,以作备忘,如有错误,欢迎指正。谢谢!1.SemanticException [Error 10146]: Cannot truncate non-managed table test_null.truncate table test_null;//test_null是一个外部表truncate 不能删除外部表数据。原因:内部表数据由hive自身管理,...

2020-05-09 09:18:27 490

原创 连接多对多问题

需求:针对同一个广告位拆分出deeplink数据与非deeplink数据错误代码: select ${day}, case when tb3.adslot_type=1 then '横幅'when tb3.adslot_type=2 then '插屏' when tb3.adslot_type=3 then '开屏' when tb3.adslot_type=4 then...

2019-04-05 17:18:12 264

原创 Java json 字符串处理

json 字符串介绍:示例:"adslot":{"id":"3169","bidfloor":10.0,"bidfloorcur":"CNY","count":"1","instl":0,"banner":{"w":1080,"h":1920,"pos":0,"battr":[]},"nativ":null,"video":null,"is_splash_screen":1,"bi...

2019-01-18 14:29:08 494

原创 java 爬虫之使用jsoup爬取页面

需求:爬取出所有号段,并找到他们对应的运营商和所属地。添加依赖: <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>...

2019-01-17 14:15:47 865

转载 Java 线程学习

线程的七状态转换图:堵塞的情况分三种:  (一)、等待堵塞:执行的线程执行wait()方法,JVM会把该线程放入等待池中。  (二)、同步堵塞:执行的线程在获取对象的同步锁时,若该同步锁被别的线程占用。则JVM会把该线程放入锁池中。  (三)、其它堵塞:执行的线程执行sleep()或join()方法,或者发出了I/O请求时。JVM会把该线程置为堵塞状态。当sleep()状态超时、j...

2019-01-17 11:21:15 88

原创 oozie 用法说明

本博客一共包含ooize workflow流程写法,job.properties 文件配置,ooize 任务的启动与杀死。oozie 流程定义:1.workflow 的开始和workflow 的命名<workflow-app xmlns="uri:oozie:workflow:0.2" name="adx-wf"><start to="adx_clean_fork...

2019-01-14 16:35:29 1160

原创 shell 脚本发送邮件(可带附件)

#!/bin/bashDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"source $DIR/../conf/shell_env.conf #定位文件所在位置if [ ${#1} -eq 8 ]; then day=$1 ATTACHMENT=$2 MAIL_RECV=$...

2019-01-11 16:28:19 3911

原创 Sqoop 学习总结

最近在工作中一直使用到了sqoop,理一下最近学习的东西,备忘。内容包括:hive与mysql通过sqoop的导入导出的命令使用及注意点。把hive表的数据导入mysql:sqoop export --connect "${jdbcUrl}" --username ${username} --password ${password} --table tb_adslot_hour_repo...

2018-12-19 11:42:54 774

原创 hive 学习使用

hive建表说明:目前我们建表主要使用两种方式,默认的text格式和orc格式。orc格式采用列式存储方式,可以较好的减少磁盘IO。orc增加了轻量级的索引,默认采用ZLIB压缩,有很好的压缩比。使用场景:每天上G的数据建议采用ORC。数据量比较小的话可以自由选择text和orc两种方式。hive 小文件处理说明:解决方式分为两种。1)控制每个任务处理的最小数据量 2)输出结果控制...

2018-12-18 18:27:41 152

转载 SparkStreaming与kafka入门学习

本博客为本人学习备忘之用,如有错误,欢迎指正。谢谢!SparkStreaming官网入门:SparkStreaming官网基础概念入门上SparkStreaming官网基础概念入门下SparkStreming与kafka官网要点SparkStreaming 输出众多小文件解决方案 SparkStreaming涉及术语:DStream,batch data(批数据),ba...

2018-12-18 16:21:18 163

原创 集合框架

集合框架的概述: 集合代表了一组对象,java中的集合框架则是定义了一套规范,用来表示操作的集合,使具体操作和实现细节解耦,而这些操作就是增删查改。她由三部分组成,具体包括定义集合的行为的接口,接口的实现类,工具类。接口如:Collection、List、Map,实现类如:ArrayList、LinkedList、HashMap等,工具类如:Collections,Arrays. 集合和数组的区

2018-01-11 20:42:17 175

原创 如何正确的计算两个数的平均数

求平均数

2018-01-11 17:14:32 9633

原创 linux学习内容总结

linux 学习内容总结:linux 的基本介绍和安装(MobaXterm 连接跳板机) ,linux的常用命令和权限调整,shell编程注意点,linux定时任务linux的基本介绍Linux是一款广泛应用于服务器的操作系统。操作系统是硬件基础上的第一层软件,而应用软件需要安装到操作系统上才能用。Linux 的特点: 安全 免费开源 多用户 一个用户的操作不会影响...

2018-01-09 22:55:01 764

原创 mysql 索引详解

when 与group by,having 1 when,group by ,having 可以一起使用,when作用于group by 之前,having作用group by 之后,且必须和group by 同时出现。此时group by 会对when 中经过限制条件选择之后结果进行分组,而having 则是对分组之后的结果添加限制条件,从分组之后的结果中选择出满足条件的记录。 2 ha

2017-11-11 18:07:32 350

空空如也

空空如也

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

TA关注的人

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