自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鹜骜的博客

22岁30年开发经验

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

原创 [hive] 你怎么连 select * 都整不明白?

前言:hive将hql语句经过解析器,编译器,优化器,执行器变成可执行的mapreduce程序,balabala…又一顿mapreduce运行过程给面试官讲完之后面试官:小伙子理论不错。那比如一个简单的hql语句select x from x1 join 一下 x2 group by ,这条语句对应到mr是在哪个阶段干活具体又是怎么处理的。我又GG了 只背理论,理解不深入...

2020-04-30 14:51:56 574 1

原创 [Java] 锁

一谈线程就谈锁面试官:锁有了解过?悲观锁乐观锁:具体点呢?GG开始补吧乐观锁每次去拿数据的时候都认为别人(其他线程)不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。乐观锁适用于多读的应用类型,这样可以提高吞吐量实现方式:CAS乐观锁缺点:悲观锁每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻...

2020-04-30 13:41:10 263

原创 CurrentHashMap

由于HashMap是线程不同步的,虽然处理数据的效率高,但是在多线程的情况下存在着安全问题,因此设计了CurrentHashMap来解决多线程安全问题。HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出...

2020-04-17 13:09:07 663

原创 hive常用参数调优

hive.map.aggr决定是否可以在 Map 端进行聚合操作hive.groupby.skewindata开启数据倾斜时的负载均衡mapred.reduce.tasks设置所提交 Job 的 reduer 的个数hive.mapjoin.cache.numrowsHive Map Join 所缓存的行数。hive.exec.mode.local.auto决定 Hive 是否应...

2020-04-15 22:45:18 320

原创 hive数据倾斜

造成数据倾斜的原因:key 分布不均匀业务数据本身的特性建表考虑不周全某些 HQL 语句本身就存在数据倾斜产生数据倾斜的业务场景1.空值产生的数据倾斜在日志中,常会有信息丢失的问题,比如日志中的 user_id,如果取其中的 user_id 和用户表中的 user_id 相关联,就会碰到数据倾斜的问题。解决方案 1:user_id 为空的不参与关联select * from lo...

2020-04-15 22:21:34 425

原创 Hive与数据库比较 & hive中4个By的比较

Hive 和数据库比较Hive 和数据库除了拥有类似的查询语言,再无类似之处。1数据格式:hive数据格式可以用户自定义,mysql有自己的系统定义格式;2数据规模:hive存储的数据量超级大,而mysql只是存储一些少量的业务数据;3数据存储位置:Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。4数据更新 :Hive 中不建议对数据的改写。而数据库中的数据通...

2020-04-15 15:20:16 1208

原创 Yarn工作机制,三种调度器

hadoop的三种调度器FIFO(先进先出调度器) 、Capacity Scheduler(容量调度器)和 Fair Sceduler(公平调度器)。FIFO先进先出调度器,同一时间队列中只有一个任务在执行。Capacity Scheduler容量调度器:多队列;每个队列内部先进先出,同一时间队列中只有一个任务在执行。队列的并行度为队列的个数。(默认调度器)Fair Schedule...

2020-04-15 14:51:48 1802

原创 MR优化 & hadoop参数调优

优化小文件所谓小文件,就是单个文件的size小于blockSize。HDFS 小文件影响(1)影响 NameNode 的寿命,因为文件元数据存储在 NameNode 的内存中(2)影响计算引擎的任务数量,因为每个小的文件都会生成一个 Map 任务数据输入小文件处理:(1)合并小文件:对小文件进行归档(Har)、自定义 Inputformat 将小文件存储成SequenceFile 文...

2020-04-15 12:57:36 446

原创 org.apache.spark.sql.AnalysisException: Table or view not found:

ratingDF.createGlobalTempView("ratings")// 全局临时视图绑定到系统保留的数据库global_tempselect * from global_temp.ratings

2020-04-11 17:00:21 1522

原创 java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V

作者场景:在使用scala和spark操作mongoDB时代码报错java.lang.NoSuchMethodError: scala.Product.initinitinit(Lscala/Product;)V首先看到 V 知道是版本错误网上查找后说spark和scala版本不对应。但是在maven查找发现作者使用的scala2.11.8和spark2.1.1是不冲突的解决:最后问题...

2020-04-11 16:47:41 5542 1

原创 flume整合kafka

为什么要用flume对接kafka生产环境增量数据多都是日志文件选用flume更好的达到实时监控加入kafka的作用:可以对接多个业务线(将数据分类发送到不同topic)也可以动态增加业务线,不用增加备份(解耦)案例一:用netcat,kafkasink达到简单对接1.flume配置文件a1.sources = r1a1.sinks = k1a1.channels = c1#sou...

2020-04-09 16:01:20 280

原创 mysql 索引

什么是索引:索引是有序的快速查找数据结构索引作用:使得while后面的查找和order by高效索引的缺点时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率;空间方面:索引需要占物理空间。索引有哪几种类型?主键索引: 数据列不允许重复,不允许为NULL,一个表只能有一个主键。**唯一索引:**...

2020-04-08 22:16:11 222

原创 kafka笔记五 API

文章目录dependenciesProducerConsumer自定义分区的ProducerKafka 的 Producer 发送消息采用的是异步发送的方式。在消息发送的过程中,涉及到了两个线程——main 线程和Sender 线程,以及一个线程共享变量——RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 Record...

2020-04-07 23:46:58 199

原创 kafka笔记四 事务 高效读写

kafka事务Kafka 从 0.11 版本开始引入了事务支持。事务可以保证 Kafka 在 Exactly Once 语义的基础上,生产和消费可以跨分区和会话,要么全部成功,要么全部失败。Producer 事务为了实现跨分区跨会话的事务,需要引入一个全局唯一的 Transaction ID(客户端给定的),并将 Producer获得的PID 和Transaction ID 绑定。这样当Pr...

2020-04-07 22:52:51 278

原创 kafka笔记三 工作流程 生产者 消费者

文章目录kafka工作流程kafka文件存储机制kafka生产者分区策略分区的原则ISR数据可靠性ack的参数设置故障处理 (一致性问题)幂等性消费者消费方式分区分配策略offset的维护kafka工作流程kafka中的数据只能保证分区内有序,不能保证全局有序topic是逻辑上的概念,而partition是物理上的概念,可以在本地看见真实的目录kafka文件存储机制由于生产者生产的消息会...

2020-04-06 20:09:54 573

原创 kafka笔记二操作

kafka常用命令操作:提示:首先需要启动kafka服务,启动kafka服务之前要启动zk查看当前服务器中所有的topic./kafka-topics.sh --list --zookeeper 192.168.56.20:2181创建topic./kafka-topics.sh --create --zookeeper 192.168.56.20:2181 --topic first...

2020-04-05 15:17:24 270

原创 kafka笔记一基础

定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。kafka作用:1.解耦允许独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.可恢复性系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。3.缓冲有...

2020-04-05 15:05:29 167

原创 flume笔记二事务拓扑结构

flume事务flume传输流程注释:source收集数据有很多来源 也可以自己写代码监控实时 jdbc数据源拦截器链作用:可以实现解耦 复用 灵活性高一个source可以绑定多个channel ,所以一个事件具体给哪一个channel 就交给channel选择器副本选择器 Rep 发给所有channel多路选择器 Mul 需要指定绑定策略#Replicating Channel...

2020-04-05 03:28:33 198

原创 Flume笔记一基础

FlumeFlume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统, Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。架构运行机制:Flume 的核心是把数据从数据源(source)收集过来,在将收集到的数据送到指定的目的地(sink)。为了保证输送的过程一定...

2020-04-04 01:01:54 279

原创 IDEA debug F5,F6

程序调试debugF5和F6都是单步执行区别如下F5单步跳入会进入本行代码内部。如进入方法F6单步跳过仅执行本行代码,执行完则跳到下一行

2020-01-18 11:57:34 1298

原创 HBASE CAP理论 架构 搭建 sqoop

CAP理论CAP:一个分布式系统不能同时满足一致性,可用性,和分区容错性C一致性:任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的A可用性:每个操作总是能在确定的时间内返回,也不是系统随时都能正常运行P分区容错性:在出现断网情况下,分离的系统也能正常运行BASE(ACID)关系型数据库:一致,隔离,原子,持久BASE是反关系型数据库:牺牲高一致...

2019-12-23 23:16:22 343

原创 HIVE自定义函数的实现

HIVE中的函数分类UDF(一进一出)UDAF (多进一出)(count/max/min)聚合函数UDTF(一进多出)视图自定义函数写法创建一个Maven工程后导入依赖<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</...

2019-12-17 23:09:13 487

原创 Zepplin安装

Apache Zeppelin提供了web版的类似ipython的notebook,用于做数据分析和可视化。背后可以接入不同的数据处理引擎,包括spark, hive, tajo等,原生支持scala, java, shell, markdown等。它的整体展现和使用形式和Databricks Cloud是一样的,就是来自于当时的demo。Zepplin安装1.解压tar -zxvf2.配...

2019-12-17 22:12:18 384

原创 HIVE:Permission denied: user=hive, access=EXECUTE, inode="/tmp/hadoop-yarn":root:supergroup:drwx----

问题描述在ZEPPLIN执行hive查询时报错:Job Submission failed with exception 'org.apache.hadoop.security.AccessControlException(Permission denied: user=hive, access=EXECUTE, inode="/tmp/hadoop-yarn":root:supergroup...

2019-12-17 20:15:12 2065 1

原创 hive不能删库删表踩过的坑

问题描述:drop table、database 等命令在hive中执行删表删库操作时,没有反应。过很长时间提示报错解决办法:将hive中lib目录下的mysql-connector-java-5.1.0-binjar包更换。...

2019-12-16 20:10:34 497

原创 Hive 的数据类型 内外部表 分区分桶

Hive的数据类型对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串Hive有三种复杂数据类型ARRAY、MAP 和 STRUCT。ARRAY和MAP与Java中的Array和Map类似,而STRUCT与C语言中的Struct类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套。DDL部分创建数据库避免要创建的数据库已经存在错误,增加i...

2019-12-12 00:39:01 273

原创 Hive概念和配置安装

概念解决结构化的数据统计hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供sql查询功能Hive在大数据生态圈中位于数据计算层可以增删查不可改(可追加不可随机改) 因为基于hdfs本质:将HQL转换成MapReduce程序优缺点Hive架构Meta store:元数据包含用Hive创建的database、table等的元信息。元数据存...

2019-12-11 19:46:50 168

原创 hdfs读写文件流程

HDFS读文件HDFS写文件

2019-12-11 18:53:11 96

原创 MapReduce的详细运行阶段

①②③④map task读文件,通过TextInputFormat读文本切片,一次读一行,返回(key,value);⑤上一步获取的(key,value)键值对经过map方法逻辑处理成新的(key,value)键值对,通过context.write输出到OutputCollectior收集器shuffle阶段⑥OutputCollectior把手机的(key,value)键值对写入到环...

2019-12-11 18:41:46 535

原创 快速排序代码

public static void quickSort(int[] arr,int low,int high){ int i,j,temp,t; if(low>high){ return; } i=low; j=high; //temp就是基准位 tem...

2019-12-10 23:14:27 2898

原创 hadoop无法使用主机名:50070访问

找到C:\Windows\System32\drivers\etc\hosts这个文件添加虚拟机ip和hostname的映射由于权限问题不能修改可以先复制到另一个地方修改之后移动和替换到源目录然后就可以通过主机名访问了...

2019-12-08 00:10:44 1176

原创 namenode节点起不来java.io.IOException: There appears to be a gap in the edit log. We expected txid 1, bu

解决方法原因:namenode元数据被破坏,需要修复解决:恢复一下namenodehadoop namenode -recover起因:启动namenode时sbin/hadoop-daemon.sh start namenode没有反应并且jps没有显示namenode进程如图去根目录/logs”下查看最新“hadoop-root-namenode-主机名.log”日志文件...

2019-12-07 23:38:56 616

原创 Hadoop结构与完全分布式搭建

Hadoop组成HDFS结构yarn结构MapReduce搭建步骤一.Hadoop搭建需javaJKD首先准备三台安装javaJKD并且配置环境变量的虚拟机环境变量文件:etc/profile二.配置ssh免密登录目的是用shell登陆远程服务,但每个登陆都需要输入密码就非常麻烦,所有需要配置无密配置,需要在NameNode上生成私钥,把公钥发给DataNode在mas...

2019-12-06 15:56:44 190

原创 HashMap的结构以及核心源码分析

文章目录一、HashMap简介1、特点2、结构二、HashMap源码分析1、核心成员变量2、HashMap常量3、构造函数4、设计到的数据结构5、HashMap的常用方法(put、get) (1)put方法三、HashMap为什么要改进使用红黑树一、HashMap简介HashMap是开发中使用频率最高的用于映射(键值对)处理的数据结构,而在JDK1.8中HashMap采用位桶数组+链表+红黑树...

2019-12-04 18:55:21 272

原创 mybatis核心构建

MyBatis的主要的核心部件有以下几个:SqlSession 作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能Executor MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护StatementHandler 封装了JDBC Statement操作,负责对J...

2019-12-03 16:28:21 162

原创 Mybatis中resultMap和resultType区别

MyBatis 将配置文件中的每一个mapper 节点抽象为一个 Mapper 接口,而这个接口中声明的方法和跟 节点中的<select|update|delete|insert> 节点项对应,即<select|update|delete|insert> 节点的id值为Mapper 接口中的方法名称。resultType当使用resultType做SQL语句返回结果类型...

2019-12-03 15:56:44 270

原创 servlet生命周期

首先加载servlet的class,实例化servlet,然后初始化servlet调用init()的方法,接着调用服务的service的方法处理doGet和doPost方法,最后是我的还有容器关闭时候调用destroy 销毁方法。1.被创建:执行init方法,只执行一次Servlet什么时候被创建?默认情况下,第一次被访问时,Servlet被创建,然后执行init方法;可以配置执行Serv...

2019-12-03 00:09:48 116

原创 理解mybatis的一二级缓存

一级缓存是基于sqlSession默认开启,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存储缓存数据。不同的SqlSession之间的缓存数据区域是互相不影响的。一级缓存的作用域是SqlSession范围的,当在同一个sqlSession中执行两次相同的sql语句时,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次查询时会从缓存中获取数据,不再...

2019-12-02 23:50:30 244

转载 JKD1.8ArrayList源码分析

ArrayList简介ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功...

2019-12-02 23:34:25 110

原创 ELK搭建(详细步骤)

首先准备安装包传输到linux下找个目录存放安装elasticsearch-head作为web展示 所以首先安装nodejs 主要是利用npm1安装wgetyum install -y wget2.镜像淘宝下载node-v11wget https://npm.taobao.org/mirrors/node/v11.0.0/node-v11.0.0.tar.gz3.解压tar -...

2019-12-02 14:09:05 3717 1

空空如也

空空如也

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

TA关注的人

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