<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[QiSorry]]></title><description><![CDATA[正在努力学习大数据的萌新]]></description><link>https://blog.youkuaiyun.com/QiSorry</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; QiSorry]]></copyright><item><title><![CDATA[大数据场景下的AB-Test]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/126325785</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/126325785</guid><author>QiSorry</author><pubDate>Sun, 14 Aug 2022 23:24:35 +0800</pubDate><description><![CDATA[想要了解 AB Test？不知道从哪里入手？Come on，I’am here！]]></description><category></category></item><item><title><![CDATA[干掉leetcode买卖股票系列问题，这篇文章足够了！！]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/119292853</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/119292853</guid><author>QiSorry</author><pubDate>Mon, 02 Aug 2021 21:56:50 +0800</pubDate><description><![CDATA[文章目录前言01 动态规划解决该类问题的通用思路02 leetcode121(买卖一次)02 leetcode122(买卖多次)02 leetcode 714(买卖多次且含手续费)02 leetcode123(买卖两次)02 leetcode188(买卖k次)02 leetcode309(买卖多次且含冻结期)总结

前言
之前就做过leetcode的买卖股票系列的题，被他们折磨的够呛，今天决定写一篇自己关于买卖股票系列问题的理解，用动态规划的基本思路带你逐层理解并解决这类问题，争取干掉买卖股票问题。


0]]></description><category></category></item><item><title><![CDATA[一文带你理解并掌握Hive窗口函数]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/118613935</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/118613935</guid><author>QiSorry</author><pubDate>Fri, 09 Jul 2021 21:55:19 +0800</pubDate><description><![CDATA[文章目录一、窗口函数是什么？二、over(窗口的范围)的理解2.1 窗口的范围2.2 窗口函数使用示例2.2.1 查询在 2017 年 4 月份购买过的顾客及总人数2.2.2 查询顾客的购买明细及顾客的月购买总额2.2.3 将每个顾客的 cost 按照日期进行累加2.2.4 查询每个顾客上次的购买时间2.2.5 根据时间先后将购买明细分为5组2.3 经典案例求分组TopN总结

一、窗口函数是什么？
个人理解窗口函数的格式是：
聚合函数(如sum/count/…) / rank() / lag() / l.]]></description><category></category></item><item><title><![CDATA[解决spark-sql中Class com.hadoop.compression.lzo.LzoCodec not found]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/118416801</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/118416801</guid><author>QiSorry</author><pubDate>Fri, 02 Jul 2021 15:33:06 +0800</pubDate><description><![CDATA[将 hadoop-lzo-0.4.20.jar 拷贝到 spark家目录下的jars目录后可以解决此问题
[bigdata@worker-13 common]$ pwd
/opt/app/hadoop-3.1.3/share/hadoop/common
[bigdata@worker-13 common]$ cp hadoop-lzo-0.4.20.jar /opt/app/spark-3.0.0-bin-hadoop3.2/jars/


...]]></description><category></category></item><item><title><![CDATA[《HBase原理与实践》LSM树读书笔记]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/115609853</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/115609853</guid><author>QiSorry</author><pubDate>Mon, 12 Apr 2021 09:44:48 +0800</pubDate><description><![CDATA[提示：文章写完后，目录可以自动生成，如何生成可参考右边的帮助文档

文章目录前言一、简介二、KeyValue 存储格式LSM的数据写入操作LSM的数据查询操作总结

前言
提示：这里可以添加本文要记录的大概内容：
例如：随着人工智能的不断发展，机器学习这门技术也越来越重要，很多人都开启了学习机器学习，本文就介绍了机器学习的基础内容。

提示：以下是本篇文章正文内容，下面案例可供参考
一、简介
在大数据场景下，HBase的存储引擎选择的是LSM树（日志结构合并树Log-Structured Merge-Tre]]></description><category></category></item><item><title><![CDATA[反射与注解的基本使用]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/115387929</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/115387929</guid><author>QiSorry</author><pubDate>Fri, 02 Apr 2021 13:42:52 +0800</pubDate><description><![CDATA[文章目录一、反射对于反射的理解获取Class实例的三种方式调用Class静态方法：forName(String classPath)通过运行时类的对象调用getClass()调用运行时类的属性 .class反射之Constructor获取构造器创建运行时类对象反射之Field反射之Method获取运行时类的方法唤醒方法：invoke()反射之类型擦除私有变量/私有方法能否被外界访问？二、注解对于注解的理解定义注解获取注解总结

一、反射
对于反射的理解
JAVA反射机制是在运行状态中，对于任意一个类，都能够]]></description><category></category></item><item><title><![CDATA[Sqoop导入导出模板]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/115256176</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/115256176</guid><author>QiSorry</author><pubDate>Fri, 26 Mar 2021 22:16:35 +0800</pubDate><description><![CDATA[从mysql导入hdfs
/opt/module/sqoop/bin/sqoop import \
--\connect jdbc:mysql://worker-13:3306/$APP \
--username root \
--password 123456 \
--target-dir /origin_data/$APP/db/$1/$do_date \
--delete-target-dir \
--query "$2 and  \$CONDITIONS" \
--num-mappers 1 \
-]]></description><category></category></item><item><title><![CDATA[Azkaban从安装到使用小计]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/115201039</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/115201039</guid><author>QiSorry</author><pubDate>Fri, 26 Mar 2021 14:03:43 +0800</pubDate><description><![CDATA[1 安装
1.1 上传并解压tar包
[bigdata@worker-13 software]$ ll
-rw-rw-r--. 1 bigdata bigdata      6433 3月  13 09:51 azkaban-db-3.84.4.tar.gz
-rw-rw-r--. 1 bigdata bigdata  16175002 3月  13 09:51 azkaban-exec-server-3.84.4.tar.gz
-rw-rw-r--. 1 bigdata bigdata  20239974]]></description><category></category></item><item><title><![CDATA[Yarn的Tool接口实现MR程序走指定的队列]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/114839943</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/114839943</guid><author>QiSorry</author><pubDate>Mon, 15 Mar 2021 17:29:23 +0800</pubDate><description><![CDATA[文章目录前言一、创建 Maven 项目，添加依赖二、创建 WordCount 类实现 Tool 接口三、创建 WordCountDriver 类四、打包上传到集群测试

前言
有时我们自己编写的MR程序需要传入一些参数比如指定任务提交到哪个队列，这时就需要实现Tool接口

一、创建 Maven 项目，添加依赖
&lt;dependencies&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.hadoop&lt;/groupId&g.]]></description><category></category></item><item><title><![CDATA[电商数仓DWD层用户行为日志解析]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/114661217</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/114661217</guid><author>QiSorry</author><pubDate>Thu, 11 Mar 2021 16:08:03 +0800</pubDate><description><![CDATA[文章目录前言一、页面埋点日志、启动日志结构二、日志解析的流程2.1 启动日志表解析（包括注意事项）2.1.1 解析思路2.1.2 建表语句2.1.3 数据导入2.1.4 注意事项2.2 页面日志表解析2.2.1 解析思路2.3 启动日志表解析2.3.1 解析思路2.3.2 建表语句2.3.3 自定义 UDTF 函数2.3.4 数据导入2.4 曝光日志表解析2.4.1 解析思路2.5 错误日志表解析2.5.1 解析思路DWD层用户行为数据加载脚本总结

前言
学习尚硅谷电商数仓项目笔记，以下是自己记录的DW.]]></description><category></category></item><item><title><![CDATA[Hive自定义UDTF函数]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/114650015</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/114650015</guid><author>QiSorry</author><pubDate>Thu, 11 Mar 2021 10:53:36 +0800</pubDate><description><![CDATA[导入必要的 Hive 依赖
&lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.hive&lt;/groupId&gt;
            &lt;artifactId&gt;hive-exec&lt;/artifactId&gt;
            &lt;version&gt;3.1.2&lt;/version&gt;
        &lt;/dependency&gt;]]></description><category></category></item><item><title><![CDATA[增加容量调度器队列]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/114368138</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/114368138</guid><author>QiSorry</author><pubDate>Thu, 04 Mar 2021 14:53:21 +0800</pubDate><description><![CDATA[修改 capacity-scheduler.xml
[bigdata@worker-13 ~]$ vim $HADOOP_HOME/etc/hadoop/capacity-scheduler.xml

增加一个名为 hive 的队列，并添加相应的配置
 &lt;property&gt;
     &lt;name&gt;yarn.scheduler.capacity.root.queues&lt;/name&gt;
     &lt;value&gt;default,hive&lt;/value&gt;
 ]]></description><category></category></item><item><title><![CDATA[Hadoop完全分布式搭建]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/114273135</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/114273135</guid><author>QiSorry</author><pubDate>Tue, 02 Mar 2021 08:59:51 +0800</pubDate><description><![CDATA[文章目录前言一、虚拟机准备1. 可以正常上网2. ip为静态ip3. 安装必要的环境4. 关闭防火墙以及防火墙开机自启动5. 修改主机名及添加映射6. 创建用户7. 克隆另外两台虚拟机：hadoop102 hadoop103克隆 hadoop102更改 hadoop102 相关信息测试三台虚拟机是否可以相互通信二、Hadoop安装及相关配置1.引入库2.读入数据总结

前言
必备条件：

电脑内存最好8G以上
虚拟机ip为静态ip且可以 ping 通外网


提示：若满足以上条件，下面案例可供参考
一、虚.]]></description><category></category></item><item><title><![CDATA[Linux 完全卸载 MySQL]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/114114019</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/114114019</guid><author>QiSorry</author><pubDate>Fri, 26 Feb 2021 09:51:37 +0800</pubDate><description><![CDATA[文章目录前言一、卸载系统自带的 MySQL-libs二、删除遗留的 MySQL 文件1.查看遗留 MySQL 文件2.删除相关文件总结

前言

最近在 Centos7 系统重新安装了一遍 MySQL，安装完成后发现初始化的密码没有生成，应该是没有将原来的 MySQL 文件卸载干净导致。


提示：以下是本篇文章正文内容，下面案例可供参考
一、卸载系统自带的 MySQL-libs
rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --no]]></description><category></category></item><item><title><![CDATA[LZO创建索引支持切片操作]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/114022254</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/114022254</guid><author>QiSorry</author><pubDate>Wed, 24 Feb 2021 14:50:15 +0800</pubDate><description><![CDATA[查看测试文件大小
[bigdata@worker-13 data]$ ll -h
总用量 215M
-rw-rw-r--. 1 bigdata bigdata 215M 12月 13 18:54 bigtable.lzo

将测试文件上传到hdfs
[bigdata@worker-13 data]$ hadoop fs -put bigtable.lzo /input

为测试文件创建索引
[bigdata@worker-13 data]$ hadoop jar /opt/module/hadoop-3.1]]></description><category></category></item><item><title><![CDATA[MapJoin原理]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/113001811</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/113001811</guid><author>QiSorry</author><pubDate>Fri, 22 Jan 2021 20:51:10 +0800</pubDate><description><![CDATA[MapJoin流程图

使用场景
MapJoin通常用于一个很小的表和一个大表进行join的场景，具体小表有多小，由参数hive.mapjoin.smalltable.filesize来决定，该参数表示小表的总大小，默认值为25000000字节，即25M。
Hive0.7之前，需要使用hint提示 /*+ mapjoin(table) */才会执行MapJoin,否则执行Common Join，但在0.7版本之后，默认自动会转换Map Join，由参数hive.auto.convert.join来控制，默认]]></description><category></category></item><item><title><![CDATA[Hive窗口函数]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/112986893</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/112986893</guid><author>QiSorry</author><pubDate>Fri, 22 Jan 2021 18:15:35 +0800</pubDate><description><![CDATA[Hive窗口函数
一般格式为：function + over(范围)
个人理解开窗函数就是对每一行开一个窗口，窗口的范围可以自己指定，然后在这个窗口范围中进行一些统计
over()
指定分析函数工作的窗口大小，这个窗口大小可能随着行的变化而改变
over()中可以指定窗口的范围

current row：当前行
n preceding：往前n行数据
n following：往后n行数据
unbounded：起点
unbounded preceding：从前面的起点
unbounded following：从]]></description><category></category></item><item><title><![CDATA[Hive行转列、列转行实现]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/111300580</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/111300580</guid><author>QiSorry</author><pubDate>Fri, 22 Jan 2021 15:39:39 +0800</pubDate><description><![CDATA[Hive函数
条件判断函数


nvl(value,default_value) - 如果value为null，返回default_value ；如果value不为null，返回value

hive (ddl_create)&gt; select nvl(null, 2);
2
Time taken: 0.343 seconds, Fetched: 1 row(s)
hive (ddl_create)&gt; select nvl(1, 2);
1
Time taken: 0.505 seconds, F]]></description><category></category></item><item><title><![CDATA[Hive中join语法总结]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/112984361</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/112984361</guid><author>QiSorry</author><pubDate>Fri, 22 Jan 2021 15:16:43 +0800</pubDate><description><![CDATA[HQL中7种join的实现

只包含A表中的数据

select 查询内容 from A left join B on A.key = B.key
只包含B表中的数据


select 查询内容 from A right join A on B.key = A.key
select 查询内容 from B left join A on B.key = A.key

A表与B表都有的数据

select 查询内容 from A join B on A.key = B.key
包含A但不含B的数据

selec]]></description><category></category></item><item><title><![CDATA[Hive调优小记]]></title><link>https://blog.youkuaiyun.com/QiSorry/article/details/112981895</link><guid>https://blog.youkuaiyun.com/QiSorry/article/details/112981895</guid><author>QiSorry</author><pubDate>Fri, 22 Jan 2021 14:19:06 +0800</pubDate><description><![CDATA[Hive调优
Fetch抓取


Fetch抓取是指能不走MapReduce任务就不走MapReduce任务
eg：select * from A，在这种情况下，Hive可以直接读取A表的存储目录下的文件


参数设置
 hive (qi)&gt; set hive.fetch.task.conversion=more;



join优化
小表 join 大表
即数据量小的表放在 join 的左边，大表放在join的右边。这样可以 map join可以让小表先进内存，大表的数据从文件读取。（Hive已实现]]></description><category></category></item></channel></rss>