HiveSQL基础
创建表
123456create [external] table [if not exists] test( id int [comment 'id primary key'] name)[row format delimited,fields terminated by '指定分隔符'];
添加external,则创建的是外部表
内部表(MANAGED_TABLE):默认创建内部表,托管表,管理表
分区表
分桶表
删除内部表时,会删除数据本身和元数据信息
外部表(EXTERNAL_TABLE):关联表,需要搭配location
分区表
分桶表
数据不是hive拥有和管理的,而只管理元数据生命周期,可以访问实际数据
区别
内部表适合数据临时处理转换等操作,及对数据进行清洗、统计分析、计算等
外部表适用于数据的长期存储、备份和共享
Hive对内部表有绝对控制权
删除内部表时,会从Metastore中删除表元数据,还会从HDFS中删除其所有数据和文件
删除外部表时,只会从MetaStore ...
复杂类型、查询知识回顾
分桶:把具有海量数据的数据文件拆分成多个文件
语法:clustered by (字段名) into 桶数 buckets;
导入数据:查询HDFS页面数据效果:多个文件
hsahcode % 桶数=? 相同的放在同一个桶
SerDe机制
什么是SerDe机制
序列化:对象或数据转换为字节码
反序列化:字节码转换为对象或数据
作用
在hive中,支持的复杂数据类型有:
数据类型
表示
定义类型
示例
array
数组
array
[1,2,3]
struct
结构
struct<子列名 类型,子列名 类型,……>
{“张三”,18}
map
map集合
map<key类型,value类型>
{“name”:”zhangshan”, “age”:18}
3. 使用
字段之间分割符:row format delimited fields terminated by “,”;
集合/数组之间分割符:collection items terminated by “,”;
m ...
Hive语法函数Hive语法
排序
cluster by
12# 先分桶再排序
distribute by + sorted by
1
正则
12# select * from 表名 where 字段名 rlike "正则表达式"在线测试网站: ip138.com/zhengze
匹配单个字符
https://www.runoob.com/regexp/regexp-metachar.html
匹配多个字符
匹配开头或结尾
union、CTE
UNION
123select id,name from test1union [all]select id,name from test2
CTE
1234567891011121314151617181920# 临时结果集,可以再from中使用with 别名 as (select 语句) [别名 as (select 语句)]select 语句;-- 年龄>=20with tmp_age_stu as (select * ...
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Clear old pages1$ hexo clean or hexo cl
Run server1$ hexo server or hexo s
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
Linux
未读Linux基础
常用快捷键
123计算器 : calc画图:mspaint查看电脑配置:dxdiag
计算机
硬件
主机
存储器:实现记忆存储(ROM、RAM、内存条、硬盘、cd\dvd、磁盘)
运算器:负责算术运算、逻辑运算
控制器:对信号进行控制
外接设备
输入设备:键盘、鼠标、麦克风、摄像头等
输出设备:显示器、音响、打印机
软件
系统软件
操作系统
驱动程序
应用软件
SSH原理用户名密码验证方式
客户端发起ssh请求
服务器将公钥发送给客户端
客户端输入用户名密码,通过服务器给的公钥进行加密,发送给服务器
服务器通过自己的私钥对客户端发送的数据进行解密,然后与本地存储的用户名密码进行比对
密钥验证
客户端先生成一对密钥
客户端将公钥复制一份发送给服务器并重命名为authorized_keys
客户端发送一个请求给服务器端,包括用户名和IP
服务器端收到后,就会到authorized_keys中查找,如果有对应的用户明和IP,会随机生成一个字符串,
通过公钥对字符串进行加密,发送给客户端
客户端收到后,会通过私钥对消息进行解密,然后将 ...
Linux
未读Linux 常用命令
rm
123rm -r 递归目录 -f 强制删除 -l 提示用户确认
mv
移动文件或目录,重命名文件或目录
1234mv [-选项] 原路径 目标路径 -f 目标文件存在时,覆盖 -l 用户确认 -v 显示移动路径
进程
12345678910111213141516PID 进程号PPID 父进程号每个进程对应唯一的一个端口号ps:查看当前窗口正在运行的进程 -ef :系统正在运行的进程kill:杀死进程 -9 :强制终止 动态进程通过杀死父进程,杀死该进程eg: kill -9 66666reboot :重启shutdown :关机 -h now :立即关机# 用户名密码root 123456
hostname、which
12345hostname: 查看主机名find:查找指定字符串是否存在(全匹配) find 目录 -name "查找的内容"which:查看命令在Linux系统所处于的具体位置或路径 which 命令名
grep
123456grep :模糊查找 -n "字符串" 文件名 -n ...
Linux
未读Linux快捷键
强制停止:ctrl+c
退出:CTRL+D(退出登录)
历史命令搜索:history
光标移动:
ctrl+a
ctrl+e
ctrl+左箭头
ctrl+右箭头
清屏:ctrl+L
包管理器yum1234yum -y(自动下载) install 软件名 # 安装 remove # 卸载 search #搜索yum install wget
rpm12345rpm -q query -a all -i info -l list -f file
文件上传下载12341、利用SSH工具2、安装lrzsz 1、rz:上传 2、sz:下载
systemctl控制服务123456789101112systemctl stop 停止服务 start 开启服务 # restart 重启服务 status 查看服务状态 enable 开机自启动 disable 禁用开机自启动 NetworkMananger 主网络服务network 副网络服务fillwalld 防火墙服务sshd ssh服务
软连接123ln -s 被链接文件或目录 生成的链 ...
窗口函数什么是窗口函数?
OLAP,对数据库数据进行实时分析处理
select 窗口函数() over (partition by xx ordder by xx) from 表名;
聚合:
partition by:
order by:
窗口函数不改变数据的行数,有时需要去重(在使用聚合函数时)
聚合函数是对当前记录及以上记录求和、最大、最小值等
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051drop table test1;CREATE TABLE test1 ( userId varchar(50), visitDate varchar(50), visitCount INT );INSERT INTO test1VALUES( 'u01', '2017/1/21', 5 ),( 'u02', '2017/1/23', 6 ),( ...
Linux集群搭建
用户操作
1234567891011创建用户useradd node1删除用户userdel node1sudo adduser -g wheel username # 添加有管理员权限用户sudo usermod -G wheel username # 追加管理员权限passwd hadooppasswd node1passwd node2
修改用户权限
12345chmod 0640 /etc/sudoers 将sudoers改为可写sudo vim /etc/sudoers# root下面添加下列语句,实现普通用户不用输入密码直接使用sudonode1 ALL=(ALL) NOPASSWD: ALLchmod -v u-w /etc/sudoers
防火墙操作
1234567891011121314151617# 停止防火墙sudo systemctl stop firewalld.service# 启动防火墙sudo systemctl start firewalld.service# 禁用开机自启动防 ...
单服务器单域名部署多个不同博客项目
配置文件server
1234567891011121314151617181920212223server{ listen 80; server_name Your Domain; # docsify博客 location / { root /www/wwwroot/default/myblog; index index.html; }}server{ listen 4000; server_name Your Domain; # hexo博客 location / { root /www/wwwroot/default/hexoblog; index index.html; }}
打开VPS端口
打开防火墙 ...