- 博客(93)
- 收藏
- 关注
原创 hive sql性能优化
1.join(1)建中间表(大表重复使用,逻辑重复使用,关联多逻辑复杂)(2)建子查询(减少数据量,减少大表关联)2.on(1)null值处理(2)关联字段唯一(3)数据倾斜过滤倾斜key(关于驱动表的取,用join key分布最均匀的表作为驱动表做好列裁剪和filter操作,以达到两表做join的时候,数据量相对变小的效果)BroadCastJoin(即map join)(使用map join让小的维度表(1000条以下的记录条数) 先进内存。在map端完成reduce)分层汇总拆
2021-10-15 21:38:52 352
原创 hbase问题总结(校招)
1.hbase的底层1)StoreFile保存实际数据的物理文件,StoreFile以HFile的形式存储在HDFS上。每个Store会有一个或多个StoreFile(HFile),数据在每个StoreFile都是有序的。2)MemStore写缓存,由于HFile中的数据要求是有序的,所以数据是先存储在MemStore中,排好序后,等到达刷写时机时才会刷写到HFile,每次刷写都会形成一个新的HFile。3)WAL由于数据要经MemStore排序后才会刷写到HFile,但把数据保存在内存中会有.
2021-03-08 18:53:48 320 1
原创 flink提交流程源码分析
大厂注重对底层源码的理解:hadoop,spark,flinkflink提交流程:(1)以yarn-per-job模式提交流程为例,bin/flink run -t yarn-per-job -c com.xxx.xxx.WordCount ./WordCount.jar(2)1.1脚本启动执行1.2解析参数CliFrantendParser1.3使用FlinkYarnSessionCli1.4执行用户代码1.5生成StreamGraph流图1.6生成JobGraph1.7上传jar包和
2021-03-07 22:50:34 382 1
原创 hive什么情况下容易数据倾斜?如何解决?
倾斜原因:map输出数据按key hash分配到reducer中,由于key分布不均匀、业务数据本身的特点、建表时考虑不周等原因造成reduce上的数据量差异过大。解决方法:1.对于key为空产生的数据倾斜可以对其赋予一个随机值。2.参数调节:设置数据倾斜时进行负载均衡。3.大小表join时,使用mapjoin让小的维度(1000条以下的条数)先进内存。在map端完成reduce。4大表join大表时,把空值的key变成一个字符串加随机数,把倾斜的数据分到不同的reducer上。5.把数据类型
2021-03-07 21:18:02 354
原创 浩鲸科技笔试题
1.sql题设某公司数据库中有关系模式如下: 职工(职工号,职工名,性别,年龄) 工作(职工号,公司号,工资) 公司(公司号,公司名,地址)请创建表并写出查询每个公司女职工的平均工资的SQL语句。在hive中,什么情况下容易出现数据倾斜?如何解决?出现倾斜:(1)不同数据类型关联产生数据倾斜;解决方式:把类型转换为相同的类型(2)大量空值数据进入到一个reduce中,导致数据倾斜。解决方法:将为空的key转变为字符串加随机数或者纯随机数。异常值如果不需要,最后提前在wh
2021-03-07 21:14:29 3620 1
原创 算法经典简单练习题leetcode动手实践(长期练习)
1.找出数组最小的k个数class Solution {public int[] smallestK(int[] arr, int k) {int[] vec = new int[k];Arrays.sort(arr);for (int i = 0; i < k; ++i) {vec[i] = arr[i];}return vec;}}这里可以用Arrays.sort()对数组进行排序2.两数之和(有视频讲解)暴力class Solution {public int[]
2021-02-28 11:59:38 176
原创 hadoop、hive优化、hive数据倾斜面试必备
hadoop优化分mr,yarn1.yarn小文件处理:har归档,CombineTextInputFormat:切片角度,把很多小文件当成一个切片,jvm归档2mr1.Map阶段(1)增大环形缓冲区的大小。由100m扩大到200m(2)增大环形缓冲区的溢写比例。有80%扩大到90%(3)减少对溢写文件的merge次数.(10个文件,一次20个merge)(4)不影响实际业务的前提下,采用Combiner提前合并,减少IO2.3)Reduce阶段(1)合理设置Map和Reduce
2021-02-25 16:16:20 167
原创 org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark client for Spark session 0354
1、Spark没有正常启动2、Spark和Hive版本不匹配3、资源不足,导致Hive连接Spark客户端超过设定时长hadoop的resourcemanage起不来?为什么只要两个节点?我都hive复杂查询解决了。yarn原来没起来,脚本没有修改,应该在hadoop103启动resourcemanager,start-yarn.sh我的问题好像不是最上面的三个问题。...
2021-02-02 20:33:12 1233
原创 jvm性能调优
目的:较小的内存获得高的吞吐量或者低延迟;jvm问题:cpu load过高,请求延迟,tps降低,内存泄漏;CAP原则:同时内存小,延迟低,高吞吐不可能;调优的依据:系统运行日志,堆栈错误信息,gc日志,线程快照,堆转储快照。堆栈错误信息:outofmemoryerror:java heap space,堆内存溢出,stackoverflowerror栈溢出,outofmemoryerror:PermGen space方法区溢出当老年代内存过小时可能引起频繁Full GC,当内存过大时Full G
2021-01-29 20:32:43 129
原创 数据库SQL调优
一.创建索引1.避免全表扫表,首先考虑在where及order by涉及的列建立索引2.在经常需要进行检索的字段上创建索引,一个表的索引最后不要超过6个。提高了select的效率,但同时也降低了insert及update的效率。二.避免在索引上使用计算如果索引列是计算或者函数的一部分,DBMS的优化器将不会使用索引而是全表查询。效率低:select * from user where salary*22>11000(salary是索引列)效率高:select * from salar
2021-01-29 19:08:56 147
原创 hadoop性能优化(调优)
用户角度:hadoop参数调优:core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,根据实际应用场景对参数进行配置,比如io.seqfile.compress.blocksize(块压缩时块的最小块大小),dfs.block.size(每个文件块的大小,默认是64M,对于大型文件可以设置为128M)。常用参数设置:(1).reduce个数设置:A.如果reduce个数设置太小,单个reducetask执行速度很慢,出错重新调试的时间比较多B.如果r
2021-01-29 13:48:04 1480 1
原创 离线数仓整体流程(面试必备)
系统数据流通过程:电商数据来源分为两部分:(1)第一部分在网站做埋点,用户点击产生的日志数据,通过nginx,springboot将数据分发到日志服务器,logfile保存在日志服务器上。(2)第二部分是网站的业务数据,一般保存在mysql数据库。数据传输日志数据通过flume收集,然后保存到kafka,再通过flume传输到hdfs。业务数据直接通过sqoop导入到hdfs。数据处理编写hql以及脚本程序,放在azkaban上作为每日定时任务,将最后结果导入到mysql数据库。数据展示.
2021-01-28 11:35:33 2080 1
原创 Remote Host双击shift
双击两次shift,搜索remote host,输入主机名,用户和密码,连接完成idea集成的工具把jar包上传到集群上那个
2021-01-20 21:02:09 102
原创 自我介绍
链接:https://www.nowcoder.com/discuss/581786来源:牛客网1、基本信息:姓名+手机号+邮箱地址。这一部分请一定在简历上显著标识出来!HR很忙很忙,需要一眼看见你的联系方式!2、照片方面:如果你的证件照能加分,可以去认真拍一张证件照,否则其实可以不用放。3、学校学历:你的毕业院校+你的学历。这一部分非常重要,有些公司的特定岗位会对学校学历有硬性要求,比如只要985/211,只要研究生等。如果你是本科生,写你本科的院校就好;如果你是研究生,请写上你的研究生毕业院
2021-01-20 17:48:41 184 3
原创 stop-hbase.sh关不掉一直点点点......
1重启zookeeper2到对应的hbase安装目录,执行命令 ./bin/hbase-daemons.sh stop regionserver注意:在启动hadoop的过程中,需要确保三台主机启动之后离开安全模式才能再开启hbase,不然hbase的相关进程hmaster,hregionserver可能有的节点可能起不来,本人试了三次,第一次只有一台起了hreginserver,后面hmaser没起来,又试了一下,数据终于从ods,到dwd,到dws有了数据,一开始以为是代码的问题,不明所以,实时项目
2021-01-19 18:51:55 4244
原创 大数据面试准备
1.给你一个场景写sql题2.对java基础的掌握arraylist和hashmap的区别:内部元素:Arraylist储存的是单个对象,HashMap储存的是一组一组的key和value内部结构:ArrayList是有序的,HashMap无序3.算法题:两个有序队列合成一个有序队列 (有没有其他方法)算法题:两个有序队列合成一个有序队列 import java.util.Arrays;class Solution { public static void main(String[
2021-01-16 17:02:17 233
原创 clickhouse客户端起不来connection refused
之前有些问题解决了,但是没有进行一个记录总结,导致可能后面出现相同的问题可能还是会花很多时间。我的密码是aaaaaa本人起clickhouse客户端出现了如下问题:1这时候是服务器没有启动,查看服务器启动没有用:ps -ef | grep clickhouse这时候发现没有启动(启动服务器需要查看才能保证真正启动)2.接下来需要去/var/log/查看日志信息,发现在配置/etc/clickhouse-server/config.d/metrika.xml首行出现了空行,于是修改完,重新启动cli
2021-01-16 16:42:25 3316
原创 实时
广播变量还是分区为单位流经过分区为什么变成迭代器放维度数据为什么要初始化?这样才能把之前的数据采集过来toJsonString把java对象转化为json格式的字符串parseObject把字符串-》json对象toJavaObject把json对象转化为java对象es(全文检索),hbase,clihouse根据需求(OLAP库)...
2021-01-15 08:41:46 100
原创 实时问题总结
1.sparkstreaming不仅要从kafka读数据然后根据表的性质写数据到kafka的不同topic中之前没搞清楚了,kafka存储的是ods层的数据2.local[?] ?表示多少个分区,设置为*会导致资源浪费3foreachRDD是行动算子
2021-01-12 21:23:39 164
原创 canal采集数据到mysql
为什么gmall没有消费到数据难道canal配置有问题?在这里插入图片描述这里的serverMode没有改为kafka在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20210111165148942.png老师怎么可以不用看,直接配试了好久终于可以了?不知道问题出在哪?...
2021-01-11 17:23:55 270
原创 数据仓库ODS层23张表建模认识
1.订单表(增量及更新)drop table if exists ods_order_info;create external table ods_order_info(id string comment ‘订单号’,final_total_amount decimal(16,2) comment ‘订单金额’,order_status string comment ‘订单状态’,user_id string comment ‘用户id’,out_trade_no string comment
2020-12-29 20:37:05 1576
原创 hive如何在配置文件中修改分区的非严格模式
azkaban调度的时候显示没有设置非严格模式,原来是我修改的是错的配置文件,原先我以为是hive-site.xml,实际上是hive-default.xml解决方法:修改conf中的hive-default.xml.template:cp hive-default.xml.template hive-default.xmlvi hive-default.xml找到hive.exec.dynamic.partition.mode 将值:strict改为nonstrict,重启hive使之生效即可.
2020-12-18 14:42:19 358
原创 启动hive不成功namenode处于安全模式
启动hive出错,namenode is in safe mode.1.一开始以为是装虚拟机的磁盘满了,所以把没有的东西删了,腾出空间。2.然后执行hadoop dfsamin -safemode leave问题解决了!经验:装虚拟机的磁盘空间要够大100g,不然后续可能出现很多磁盘满的乱七八糟的问题。...
2020-12-12 09:34:34 1037
原创 自定义累加器实现wordcount
第一种写法:object Scala3_ACC { def main(args: Array[String]): Unit = { val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("acc") val sc = new SparkContext(sparkConf) val rdd= sc.makeRDD(List("spark hadoop", "scala", "ja
2020-12-03 11:24:09 281
原创 namenode挂了的解决方案
1.问题:namenode怎么不知不觉挂掉了。。。。无语之前还好好的hadoop102:9870页面打不开如下图所示:不能加载FSImage文件,2.如何解决?首先遇到问题要学会查日志错误信息,到hadoop根目录的logs查看namenode的错误信息、格式化namenode :hdfs namenode -format 格式化之前要关闭集群,并且删除根目录下hdfs下的文件,并删除hadoop的logs和data,可能还要删别的,我只删除了这俩。然后重启集群,发现datanode没有日志
2020-11-27 18:25:04 2409
原创 scala变量类型没有自动生成ctrl+alt+v解决方案
这里没有生成变量的类型,原因是这里的Specify type没有默认勾选,需要设置一下点击setting,然后勾选Location definition问题解决!
2020-11-27 11:04:26 224
原创 从海量数据中找到原始请求数(企业级需求)
import com.alibaba.fastjson.JSONimport org.apache.commons.httpclient.HttpClientimport org.apache.commons.httpclient.methods.GetMethodimport scala.io.Sourceobject $03_Home { def getProvinceCityByIp(ip:String):(String,String) = { //1、创建HttpClie.
2020-11-25 19:07:39 141
原创 需求: 分析用户每次会话的行为轨迹(标记)
val list = List[(String,String,String)]( ("1001","2020-09-10 10:21:21","home.html"), ("1001","2020-09-10 10:28:10","good_list.html"), ("1001","2020-09-10 10:35:05","good_detail.html"), ("1001","2020-09-10 10:42:55","cart.html"),
2020-11-25 18:06:37 360
原创 需求: 统计每个用户一小时内的最大登录次数
a,2020-07-11 10:51:12a,2020-07-11 11:05:00a,2020-07-11 11:15:20a,2020-07-11 11:25:05a,2020-07-11 11:45:00a,2020-07-11 11:55:36a,2020-07-11 11:59:56a,2020-07-11 12:35:12a,2020-07-11 12:58:59b,2020-07-11 14:51:12b,2020-07-11 14:05:00b,2020-07-11 1
2020-11-25 15:13:03 254
原创 scala需求: 每个区域的平均等客时间
司机ID 上车区域ID 下次区域ID 上车时间 下车时间A 龙华区 宝安区 2020-07-15 10:05:10 2020-07-15 10:25:02B 宝安区 福田区 2020-07-15 11:43:22 2020-07-15 11:55:45A 龙岗区 宝安区 2020-07-15 11:55:55 2020-07-15 12:12:23B 福田区 宝安区 2020-07-15 12:05:05 2020-07-15 12:22:33A 龙岗区 龙华区 2020-07-15 11:02:
2020-11-24 21:10:31 423 3
原创 scala高阶函数练习(非常重要)
1、定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作比如: val arr = ArrayString对集合中每个元素进行操作,得到集合每个元素的长度val result = ArrayInt2、定义一个高阶函数,按照指定的规则对集合中的所有元素进行聚合val arr =ArrayInt求得集合中的所有元素的和val result = xx3、定义一个高阶函数,按照指定的规则获取指定元素val arr = Array[String](“zhangsan 20 3000”,“li
2020-11-24 21:07:33 1147
原创 scala农贸市场需求
import scala.io.Sourceobject $16_Home { /* 1、求出哪些省份没有农产品市场 * 2、获取菜的种类最多的三个省份 * 3、获取每个省份菜的种类最多的三个农贸市场 */ def main(args: Array[String]): Unit = { val allprovinces = Source.fromFile("data/allprovince.txt","utf-8").getLines().toList
2020-11-23 20:46:53 289
原创 大数据知识点复习(2)
Flumesource:taildir source(断点续传)taildir挂了怎么办?不会丢数字;断点续传channel:filechannel/memorychannel/kafkachannelfilechannel:数据存储于磁盘,优势:可靠性高;劣势:传输速度低memorychannel:数据存储于内存,优势:传输速度快;劣势:可靠性差kafkachannel:数据存储于kafka,基于磁盘;优势:可靠性高;传输速度快kafkachannel》memory channel+k
2020-11-18 21:31:57 273
原创 对象与json字符串的转换(工作中常用)
package com.atguigu.azkaban;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class JsonUtil {public static void main(String[] args) { //1、**对象转json字符串**Student student = new Student(“lisi”, 20); String json =
2020-11-06 16:59:16 108
原创 Kafka命令操作
2.2 Kafka命令操作2.2.1 查看当前服务器中的所有topickafka-topics.sh --bootstrap-server hadoop102:9092 --list选项说明:–list :查看kafka所有的topic–bootstrap-server : 连接kafka集群–hadoop102:9092:hadoop102是指连接kafka任意一台机器,9092:kafka内部通信的端口2.2.2 创建topickafka-topics.sh --bootst
2020-11-03 09:58:20 359
原创 kafka群起脚本
#! /bin/bash#1、判定是否输入参数if [ $# -lt 1 ]thenecho “必须输入参数…”exitfi#2、根据参数匹配动作case $1 in“start”)for host in hadoop102 hadoop103 hadoop104doecho “===start $host kafka=”ssh $host “/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/
2020-11-02 11:21:28 171 1
原创 flume复制和多路复用
命令容易忘bin/flume-ng agent -n a1 -c conf/ -f job/f1.conf -Dflume.root.logger=INFO,consoleflume1配置:1.定义agent,source,channel,sink的名称a1.sources=r1a1.channels=c1 c2a1.sinks=k1 k22描述sourcea1.source.r1.type=execa1.source.r1.command=tail -F /opt/module/flum
2020-10-30 16:36:55 210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人