- 博客(61)
- 收藏
- 关注
原创 hive 排序取中间60%数据
NTILE(n),用于将分组数据按照顺序切分成n片,返回当前切片值。将一个有序的数据集划分为多个桶(bucket),并为每行分配一个适当的桶数(切片值,第几个切片,第几个分区等概念)。它可用于将数据划分为相等的小切片,为每一行分配该小切片的数字序号。NTILE不支持ROWS BETWEEN,比如NTILE(2) OVER(PARTITION BY dept_no ORDER BY salary ROWS BETWEEN 3 PRECEDING - AND CURRENT ROW)。
2023-01-14 16:20:37
1840
1
原创 hive sql 不等于 和 not in 踩坑
clo_name字段 取不等于某个值或者not in 某个(些)值的时候,类似上面这种sql写法,是取不到clo_name字段为null的记录的,如果需要取到clo_name字段为null的记录,需要做null值处理
2022-10-14 18:34:14
2096
转载 Hive bigint类型和string类型关联可能导致数据异常
在hive中,两个表进行join,on条件两表的字段含义一致(都是整数),但数据类型不一致:string和bigint。join后发现如果数值过大则匹配的记录会出现问题:一条记录会匹配出多条记录(explain可以发现都转换为double)如:190000000002778025,就会错误的匹配上*8023 ,*8025a)原因:Java中精度只有15至16位,当数据超过精度就会不准——也就会出现超过精度的记录join上许多不一致的记录。bigint和string比较时会隐式地都转换成doubl
2022-03-29 21:10:45
3486
原创 hive sql 多字段关联注意
多个关联键 需要注意只要其中一个字段为null 整个记录是关联不上的。如果需要关联上,要nvl或coalesce处理下。select * from (select 1 as id1,null as id2,3 as x) as a left join (select 1 as id1,null as id2,4 as y) as b on a.id1=b.id1 and a.id2=b.id2select * from (select 1 as id1,null.
2022-01-21 17:58:36
2617
原创 Hive on Spark 小文件问题
总所周知,hadoop namenode会对hdfs上的每个文件在内存中都会维护一份元数据信息。如果集群产生大量小文件而不处理,长期下去,必将给namenode造成巨大压力。同时,对于hive,spark计算时,小文件意味着需要更多的task和资源,影响计算速度,同样也可能将节点弄挂掉。因此,小文件问题,需要引起重视,在日常开发和日常监控中需要额外注意。Hive on Spark 关闭hive.merge.sparkfiles,shuffle会产生大量小文件,因此写入hdfs存在小文件问..
2021-12-30 19:59:09
3192
原创 【数据仓库】数据漂移的处理
本文摘自《大数据之路:阿里巴巴大数据实践》。数据漂移的处理通常我们把从源系统同步进人数据仓库的第一层数据称为ODS或者staging层数据,阿里巴巴统称为ODS。数据漂移是ODS数据的一个顽疾,通常是指ODS表的同一个业务日期数据中包含前一天或后一天凌晨附近的数据或者丢失当天的变更数据。由于ODS需要承接面向历史的细节数据查询需求,这就需要物理落地到数据仓库的ODS表按时间段来切分进行分区存储,通常的做法是按某些时间戳字段来切分,而实际上往往由于时间戳字段的准确性问题导致发生数据漂移。通常
2021-11-23 18:56:21
3402
1
原创 hive函数get_json_object不支持含特殊字符的key
hive函数get_json_object不支持含特殊字符的key。例如,解析的json的key中包含’.‘,'@','#'等特殊字符。直接解析的话,结果为null。 select get_json_object(a.json,'$.ro\.boot\.serialn')asrbs--null 不支持转义 ,get_json_object(a.json,'$.\@serialNo')assn--null 不支持转义 ,get_json_object...
2021-11-22 18:47:56
4756
2
原创 excel批量生成sql代码
单元格介入:=",max(case when name = '"&D2&"' and colnm = '"&A2&"' then colval end) as "&C2&" -- "&F2&""ctrl + 左键双击
2021-11-12 16:14:53
142
原创 tez & spark 常用参数调优
1、tez -- 小文件相关 sethive.merge.mapfiles=true; sethive.merge.tezfiles=true; sethive.merge.mapredfiles=true; -- 控制小文件合并后文件大小 sethive.merge.size.per.task=268435456; sethive.merge.smallfiles.avgsize=134217728; -- hive控制map数量...
2021-07-15 21:28:19
1764
1
原创 hive explode(split(split_feild,‘split_char‘)) split_feild为null 整条数据会丢掉
hive explode(split(split_feild,''),'split_char')) split_feild为null 整条数据会丢掉例子:lateral view explode(split(key['i_sub'],',')) k_arry as k_adsenseid正确的写法是将key['i_sub']为null的数据转换成空字符串,可避免丢失数据:lateral view explode(split(coalesce(key['i_sub'],''),',')).
2021-04-14 19:39:55
361
原创 格林威治时间转换
格林威治时间转换类型为 "Wed Oct 21 14:16:35 +0800 2020";对应掩码为 "EEE MMM dd HH:mm:ss Z yyyy";21/Oct/2020:14:16:35 +0800 类似这个格式的 // 线程不安全 Date format = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z" , new Locale("ENGLISH", "CHIN...
2020-10-21 18:31:16
1352
1
原创 redisCluster集群搭建与扩容
redisCluster集群搭建RedisCluster最少需要三台主服务器,三台从服务器。1. 集群规划: hostname port master1 cluster119 6379 slave1 cluster137 6380 master2 cluster137 6379 slave2 cluster119 6380 master3 cluster51 6379 slave3 clust.
2020-09-02 23:48:08
365
原创 nginx整合kafka
nginx整合kafka1. nginx 1.12.2安装 安装nginx依赖包 nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法yum -y install pcre pcre-develnginx的各种模块中需要使用gzip压缩yum -y install zlib zlib-devel安全套接字层密码库yum -y install openssl openssl-devel 下载nginx包并解压 cd /usr/loc
2020-09-02 23:33:45
841
原创 纯真ip地址库解析hive udf实现
纯真ip地址库解析hive udf实现纯真IP地址库qqwry.dat解析代码https://github.com/difeng/qqwryhive udf实现,基于上述代码实现。利用该udf函数,方便做数据分析。pom.xml中添加hive,hadoop相关依赖<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifac
2020-08-20 15:38:31
821
原创 使用HBaseAPI本地执行时卡住不动的问题
使用HBaseAPI本地执行时卡住不动的问题程序不报错,一直卡住。我这的原因是因为,hbase配置项zookeeper.znode.parent的值和默认的不一致的原因,在代码中添加一行代码,指定配置的值和集群的配置值保持一致,即可。conf.set("zookeeper.znode.parent", "/hbase-unsecure");检查集群的配置:如果代码中不指定或未提供自己的配置文件hbase-site.xml指定。将使用默认的配置项。如下:zookeep.
2020-08-06 11:07:00
954
原创 hadoop 启动不了datanode ulimit -a for user root
启动hdfs datanode启动日志输出[root@linux128 hadoop]# cat /opt/lagou/servers/hadoop-2.9.2/logs/hadoop-root-datanode-linux128.outulimit -a for user rootcore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority .
2020-07-25 16:16:29
2914
2
原创 case when 配合 lateral view explode 实现不同维度指标的共同展示
select b.types,sum(show) as show ,sum(click) as click,sum(finish) as finishfrom ( select case when action = 'b_click' then '一' when action = 'c_click' then '二' when action = 'd_finish' then '三' when action = 'a' then '一,.
2020-07-10 18:20:42
452
原创 运行flink官网DataStream API例子报错ClassNotFoundException
今天在运行flink官网DataStream API例子(一个针对可疑信用卡交易行为的反欺诈检测系统的demo :https://ci.apache.org/projects/flink/flink-docs-release-1.10/getting-started/walkthroughs/datastream_api.html)报错:java.lang.ClassNotFoundException: org.apache.flink.streaming.api.functions.source.S.
2020-06-03 18:27:23
2127
1
转载 spark统一内存管理UnifiedMemoryManager
spark堆内内存模型分为两种:静态内存管理StaticMemoryManager和统一内存管理UnifiedMemoryManager。从1.6.0版本开始,Spark内存管理模型发生了变化。旧的内存管理模型由StaticMemoryManager类实现,现在称为“legacy(遗留)”。默认情况下,“Legacy”模式被禁用,这意味着在Spark 1.5.x和1.6.0上运行相同的代码会导致不同的行为。为了兼容,您可以使用spark.memory.useLegacyMode参数启用“旧”内存模型。
2020-06-03 16:21:15
448
原创 PXE无人值守批量安装系统
注意:二手虚拟机需要修改一些配置(),主要是ip与原来的不一致.也可以修改ip跟原来保持一致vim /etc/dhcp/dhcpd.conf vim /tftpboot/pxelinux.cfg/defaultsystem-config-kickstart 中ftp的ip项然后点击左上角的文件选择保存,选择下保存的路径,然后复制 ks.cfg 文件到/var/ftp/ 目录下: ...
2020-05-28 16:44:09
170
原创 spark streaming 更新广播变量的值
使用场景:在实时计算作业中,往往需要动态改变一些配置,如:实时日志ETL服务,需要在日志的格式、字段发生变化时保证正常解析; 实时NLP服务,需要及时识别新添加的领域词与停用词; 实时风控服务,需要根据业务情况调整触发警告的规则;通过spark的广播变量机制可以做到,配置的实时更新 ;不需要配置每次变化都去手动修改代码,然后重启作业。做到代码的灵活。那么该如何更新广播变量?我们知道广播变量是只读的,driver缓存一个只读的变量在每台worker上面,而不是每个任务保存一份拷贝。广播出
2020-05-28 16:21:14
1041
1
原创 spark streaming 启动报错 Exception in thread main java lang AbstractMethodError
Exception in thread "main" java.lang.AbstractMethodError at org.apache.spark.util.ListenerBus$class.$init$(ListenerBus.scala:34) at org.apache.spark.streaming.scheduler.StreamingListenerBus.<init>(StreamingListenerBus.scala:30)...
2020-05-28 13:50:22
587
原创 Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class xxx
使用java -cp xx.jar xxx类名 命令执行java程序报错:Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class com.guess.util.JdbcUtilsat com.guess.util.WordsUtils.truncateTable(WordsU...
2020-04-22 15:46:10
3608
原创 Spark RDD依赖关系
LineageRDD之间存在依赖关系,称为Lineage。便于容错。RDD依赖关系查看rdd.toDebugString 展示RDD的多级依赖关系,返回string。(2) MapPartitionsRDD[7] at mapValues at CityADTOP3.scala:37 [] | ShuffledRDD[5] at groupByKey at CityADTOP3...
2020-04-19 14:43:52
220
原创 Spark Driver与Executor
Driver创建sparkContext对象,初始化程序,分发计算给Executor。所有RDD算子的计算功能全部由Executor来执行。如果计算部分有对象,该对象需要序列化,才能在网络中传输。变量在driver中声明,算子中的计算逻辑需要分发给executor来执行。...
2020-04-19 14:37:28
405
原创 spark转换算子和行动算子的区别
转换算子和行动算子的区别:转换算子返回的是一个新的RDD。行动算子返回的不是RDD,可能是map,list,string等,也可以没有返回。 转换算子相当于逻辑的封装。行动算子调用sc.runjob执行作业,是对逻辑计算产生结果。 sortBy算子 既有转换又有行动的功能,产生一个job,返回一个新的RDD。...
2020-04-19 14:34:15
3924
原创 Mysql启动失败:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
记录下重装系统后,启动Mysql失败报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)的解决方法。操作系统:win10首先,将mysql的bin加入path。ctrl+R cmd 呼出 命令行。将mysql加入到Windows的服务中: mysqld --install...
2020-04-06 00:30:00
276
原创 集群问题复盘
1、服务端开发反馈,落hive表的spark-streaming任务,没有数据。2、查看对应spark-streaming任务,发现任务进程仍在运行,但未消费到数据。3、登录测试集群,准备测试生产和消费kafka数据看kafka是否正常。输入消费者命名,报错,zk拒绝连接。4、zookeeper-server status 查看zk状态,有个节点宕机。5、登录Ambari...
2020-03-26 22:07:12
174
转载 spark historyServer
作者:明翼(XGogo)出处:http://www.cnblogs.com/seaspring/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。不能用于商业用户,若商业使用请联系:-------------QQ:107463366微信:shinelife-------------*********...
2019-03-22 23:13:46
1087
原创 强制退出hadoop安全模式
[root@hadoop03 sbin]# hadoop fs -mkdir /directory19/03/22 21:55:09 WARN retry.RetryInvocationHandler: Exception while invoking class org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslato...
2019-03-22 22:03:18
1579
1
原创 shell脚本的方式批量导出hive建表语句
最近遇到的一个工作任务。由于公司集群不支持使用hive命令,只能使用beeline命令。通过beeline -e 或 beeline -f 导出的结果,会包含一些其他多余的信息,不好过滤。同时beeline -e 只能跟一条sql语句。于是使用spark-sql来完成脚本编写。第一版spark-sql -e "use test ; show tables;" > table...
2019-03-22 16:19:21
3571
4
原创 hive2.3.4配置
将hive从1.2.0升级到2.3.4;下载,解压就忽略了,主要是配置,和原来hive的环境变量一定要记得修改. cp hive-log4j2.properties.template hive-log4j2.properties cp hive-default.xml.template hive-site.xml vim hive-site.xml或者用everEdit...
2019-03-04 23:07:43
855
原创 这两天搞sqoop1.x遇到的坑
简单分享下,我这两天搞sqoop1.x遇到的坑。先总体总结下,首先是1.4.4的import不支持as-parquetfile。好吧,换成1.4.6版本,倒是支持了,但是不支持--as-parquetfile和--query一起使用,报一个什么莫名的空指针异常,--as-parquetfile和--table是可以的。同时import也不支持parquetfile格式直接导入hive表,只...
2019-03-04 00:39:55
6797
3
原创 Sqoop 1.X配置
修改${SQOOP_HOME}/目录下的build.xml对应自己的hadoop版本,找到如下内容: <elseif> <equals arg1="${hadoopversion}" arg2="200" /> <then> <!-- <property name="hadoop.version&qu
2019-03-02 15:35:53
352
转载 centos的yum简介
Yum全称为Yellow dog Updater, Modified,它是一个在线的软件安装命令。 能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 例如我们需要安装一个软件A,而软件A又依赖B--...
2019-03-01 22:35:19
406
转载 /etc/resolv.conf文件
cat /etc/resolv.conf[root@hadoop03 software]# cat /etc/resolv.conf# Generated by NetworkManager# No nameservers found; try putting DNS servers into your# ifcfg files in /etc/sysconfig/network...
2019-03-01 21:53:30
778
原创 shell脚本实现一台机器控制多台机器
编写call.sh shell脚本#!/bin/bashfor((i=1;i<=3;i++));doecho ***************************hadoop0$i $@********************************ssh hadoop0$i "source /etc/profile ;$@"done添加执行权限:chmod a...
2019-03-01 21:30:29
1541
原创 Linux 将时间更新为CST时间(中国标准时间)
同步时间 : ntpdate -u time1.aliyun.com将时间更新为CST时间(中国标准时间)cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime[root@hadoop01 ~]# ntpdate -u time1.aliyun.com27 Feb 23:42:58 ntpdate[2258]: step time...
2019-02-27 23:47:57
2630
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人