大数据小细节、小经验

2023-10-27

1,把操作hive的sql写在sh脚本里,用 bin/hive -f 执行脚本,不用登陆hive命令行界面,这样可以脚本自动化执行某些任务
2,expect脚本

先安装expect插件

yum  -y install expect
#!/bin/expect
spawn beeline 
set timeout 5
expect "beeline>"
send "!connect jdbc:hive2://node3:10000\r"
expect "Enter username for jdbc:hive2://node3:10000:"
send "root\r"
expect "Enter password for jdbc:hive2://node3:10000:"
send "123456\r"
interact
3,hive强制删除数据库,包含数据库下面的表一起删除,加关键字cascade
drop  database  myhive2  cascade; 
4,hive内外部表的区别

内部表删除时会删除元数据和真实数据;
外部表删除时会删除元数据,不会删除真实数据;

5,hive默认分隔符是\001
6,如何将hdfs中的现有数据转由hive操作

根据hdfs中数据结构创建表,指定分隔符(row format delimited fields terminated by '\t'),然后将已有数据复制到hive在hdfs中对应的表目录下

7,创建内部表 加载数据

创建表之后,通过insert插入,或者把文件导入到表对应的hdfs目录下

8,创建外部表,加载数据
8.1 load data

创建表之后用load data 命令将数据从文件系统导入到表中;

# 从linux文件系统加载数据,相当于把数据copy/put到hdfs
load data inpath '/hivedatas/student.csv' overwrite into table student;


# 从hdfs加载数据,相当于把数据从一个hdfs文件目录剪切到另一个文件目录
load data local inpath '/hivedatas/student.csv' overwrite into table student;

通过load data加载的数据,会在响应的表目录下创建文件;

8.2 location指定数据文件位置

内外部表都可以通过location指定文件位置,不同的是内部再删表时一定会将表对应的hdfs目录删掉,而外部表不会删除hdfs数据

 create table teacher_inner(tid string,name string) row format delimited fields terminated by '\t' location '/hivedatas';
9,hive集合元素分隔符

如果有多个集合字段,每个字段分隔符不一致,要统一分隔符,即hive一个表只能指定一个分隔符;

分隔符只能是一个字符,比如’##'不能用作分隔符,要么在入表之前处理为单字符分隔符,要么重选TextInputFormat,在建表时指定该类。

10,分桶

分桶就是MapReduce的分区,将一个大文件分到多个小文件

向分桶表加载数据时需要先把所有数据加载到一张中间表,然后再加载到分桶表。

应用:抽样,提高join

11,加载数据
insert into t values
load data
location
Insert overwrite table t_user_order_wide partition(dt='2020-04-12') select 
11.1区分insert into 和 insert overowrite:
#insert into 语句
 insert into table account select id,age,name from account_tmp;

#insert overwrite语句
 insert overwrite table account2 select id,age,name from account_tmp;
11.2两者的区别:

insert overwrite 会覆盖已经存在的数据。

insert into 只是简单的插入,不考虑原始表的数据,直接追加到表中,最后表的数据包括原始数据和新插入。

12,union all 和 join的区别
13,hive排序时只能有一个reduce
14,sort by对每一个reduce的结果排序,结果是局部有顺序;order by对一个reduce进行排序,结果是整体有序;
15,sort by 和distributed by

这两个通常是配合在一起用

distributed by是分区

select * from score distribute by sid sort by sscore;

16,cluster by

cluster by id 相当于 sort by id distributed by id

对同一个字段进行分区和分区内排序,而且只能升序排序;

17,设置本地模式
SET hive.exec.mode.local.auto=true;
18,hive parse_url
19,自定义函数在这里插入图片描述
20,hive行储存和列储存的区别

在建表时选择储存方式,列存储的加载数据方式不能是load data,必须是insert into,所以需要中间表,把数据load到中间表,然后insert into 到列存储表。

列存储用orc,空间小,文件压缩比:
在这里插入图片描述
查询速度也是orc最快,所以建表最好用orc格式存储

21,hive建表时选择储存方式和压缩方式
22,hive优化

22.1 数据量小,开启本地模式
22.2 空key转换
在这里插入图片描述
进一步优化
在这里插入图片描述

3,某些场景下,开启hadoop combiner
在这里插入图片描述
4,开启多个job,避免一个reduce承担过多任务

在这里插入图片描述
5,并行模式

6,严格模式:笛卡尔积必须加on条件
在这里插入图片描述

22,服务器上报自定义的mr出现两个错误

1,input路径写错
2,hadoop jar 执行的jar应该在当前目录下
3,JobMain方法没有调用job.setJar()

23,hbase高可用搭建

在hbase/conf 新增backup-masters文件

24,hbase体系结构

在这里插入图片描述

25,store是对表的垂直划分,region是对表的水平划分
26,hbase适合写多读少的场景
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据小细节、小经验 的相关文章

  • c#排列组合算法

    Combinatorics cs代码清单 using System using System Collections using System Data
  • 二叉树所有节点转换成大于该节点的平均值,没有最大值就转换成0

    import java util ArrayList import java util List import java util function ToIntFunction import java util stream Collect
  • CUnit(单元测试框架)

    CUnit是一个用C语言编写 管理和运行单元测试的轻量级系统 它为C程序员提供了具有灵活多样用户界面的基本测试功能 CUnit是作为一个静态库构建的 它与用户的测试代码链接在一起 它使用一个简单的框架来构建测试结构 并为测试公共数据类型提供
  • Buildroot制作根文件系统过程(基于MYD-AM335X开发板)

    buildroot的功能很强大 可以利用它制作交叉编译工具链 根文件系统 甚至可以构建多种嵌入式平台的bootloader linux 下面以米尔科技的MYD AM335X平台为例展示如何利用buildroot制作自己所需的根文件系统 一
  • 柔性OLED拼接屏有哪些场景化应用?

    柔性OLED拼接屏是一种新型的显示技术 它采用了柔性OLED屏幕 可以实现多个屏幕的拼接 形成一个大屏幕显示 这种技术可以应用于各种场合 如商业展示 广告宣传 会议演示等 柔性OLED屏幕是一种新型的显示技术 它采用了柔性材料作为基底 可以
  • java基于ssm+vue的共享充电宝管理系统 elementui

    随着时代的发展 人们的生活越来越离不开手机 但是因为技术水平等原因的限制 手机的电池并没有人们想象中的那么耐用 很多时候人们在外出的时候 很可能会遇到手机没电的情况发生 作为日常通讯的必备工具 如果没电了 很可能会影响一些重要的事情 尤其是
  • 3D相机调研

    最近因为自己实验需要配置一个3D相机 安装在机械臂上实现eye in arm的自动化引导过程 调研结果记录如下 3D相机又称为深度相机 即通过该相机能检测出拍摄空间的景深距离 与普通相机 2D的最大区别 普通彩色相机 2D相机 拍摄到的图片
  • JS -- input输入框只能输入正整数

    摘自文章 input输入框只能输入正整数 半城烟沙的技术博客 51CTO博客 one
  • 最大比例

    X星球的某个大奖赛设了M级奖励 每个级别的奖金是一个正整数 并且 相邻的两个级别间的比例是个固定值 也就是说 所有级别的奖金数构成了一个等比数列 比如 16 24 36 54 其等比值为 3 2 现在 我们随机调查了一些获奖者的奖金数 请你
  • 面试题深入思考01-----Arrays.sort()与Collections.sort()

    面试题深入思考01 Arrays sort 与Collections sort 1 Collections sort Collections本质是关于集合的一种工具类 其中包含对集合的各种api 例如排序 反转 交换和复制等 其中sort方
  • word怎么恢复保存前的文件,word文件恢复

    我们在使用word编辑文档时偶尔会有误删除文档的经历 word要怎么恢复保存前的文件呢 本文为你提供了五种解决思路 你可以通过搜索word文档的备份文档 自动恢复文件 临时文件 回收站 第三方数据恢复软件找到文档 方法一 搜索 Word 备
  • katex

    Katex Accents Accent functions inside text Delimiters Delimiter Sizing Environments Letters and Unicode Other Letters Un
  • Android ----蓝牙架构

    蓝牙 1 fromwork 2 service 3 driver Bluetooth apk bluedroid 芯片厂家 fromwork到service直接调用 service到driver利用service调用 fromwork到dr
  • 【机器学习 - 4】:线性回归算法

    文章目录 线性回归 线性回归的理解 损失函数 简单线性回归 封装线性回归算法 线性回归算法 在sklearn中调用线性回归算法 向量化运算 线性回归模型中的误差 均方误差 MSE 均方根误差 平均绝对误差 调用sklearn中的均方根误差和
  • 位置式和增量式PID控制

    PID控制是一个二阶线性控制器 定义 通过调整比例 积分和微分三项参数 使得大多数的工业控制系统获得良好的闭环控制性能 优点 a 技术成熟 b 易被人们熟悉和掌握 c 不需要建立数学模型 d 控制效果好 e 鲁棒性 通常依据控制器输出与执行
  • 测试管理之测试过程

    测试过程 以此文来阐述自己对于测试过程的认识 目录 文章目录 目录 过程分类 测试过程主要分为测试前 测试中 测试完成 发布后 测试前 测试前注意事项 需求评审 参与评审 了解需求背景 需求详情以及需求价值 初步评估需求覆盖面 需求测试工作

随机推荐

  • CSS背景:背景色/背景图像/背景重复/背景附着/简写背景属性(一文搞懂)

    目录 CSS背景 CSS 背景色 实例 其他元素 实例 不透明度 透明度 实例 使用 RGBA 的透明度 实例 CSS 背景图像 实例 实例 实例 CSS 背景重复 实例 实例 CSS background repeat no repeat
  • 程序员版孔乙己

    互联网的格局 是和别处不同的 都是格子衫 稀疏的头发 双肩包 男 写代码的人 傍午傍晚散了工 每每三两人 背着手 沿着软件园溜达一圈 倘肯花点钱 便还会走到星巴克 买一杯咖啡 那样便能再多摸几分钟的鱼 我从十九岁起 便在软件园的星巴克打工
  • Vim 键盘贴纸(打印用)

    Vim是一个类似于Vi的著名的功能强大 高度可定制的文本编辑器 在Vi的基础上改进和增加了很多特性 vim学习过程中需要记住好多键位的使用 下面分享一下vim键位图 打印后贴在键盘上 原版下载地址 密码 ultv 注 作者纯手工打造 难免有
  • 数据相关知识点(数据资产、业务底座、业务中台、企业数仓、即席查询)

    业务底座 企业数仓所提供的支撑能力 业务中台 企业在经营过程中积累起来的 具有一定规模的且能够快速适应变化 能够支撑器企业数字化转型升级的能力 企业数仓 又名企业数据仓库 是一个面向主题的 集成的 非易失的且随时间变化的数据集合 用来支持管
  • 微信小程序自定义弹窗实现详解(可通用)

    本文为自定义弹窗 该内容可满足如下需求 自定义各种布局弹窗 点击弹窗布局外消失弹窗 弹出弹窗时背景阴影半透明 各方向弹出效果 本文为自下而上弹出 wxml 文件中 直接放到wxml的最底部就行了 十分简练
  • Unity之实现拖拽UI功能

    一 unity 图片切割 先把图片导入到Unity中 选中图片你会看到上边的Inspector界面 然后 选择Texture Type类型为Advanced 将Read Write Enabled选上 然后Sprite Mode选择Mult
  • [ Matlab ] 遗传算法求最短路径

    打包下载源代码 实例描述 配送中心数为 1 客户数 k 为 8 车辆总数 m 为 2 车辆载重皆为 8 吨 各客户点需求为 g i 1 2 8 单位为吨 已知客户点与配送中心的距离如表 1 其中 0 表示中心仓库 要求合理安排车辆的运输路线
  • 服务计算——web 技术 - 处理 Request 与 Response

    基于Negroni框架的cloudgo应用 本次实验是基于Negroni框架的应用 我设计了一个简单的四则运算应用 这个应用设计主要分为两部分 中间件设计 以及 main函数的设计 接下来就分别对这两个部分进行介绍 中间件设计 printF
  • VS2017配置Qt开发环境

    VS2017配置Qt开发环境 安装Qt5 12 11 安装Qt插件 在VS2017中进行设置 参考教程 安装Qt5 12 11 安装Qt插件 在VS2017中进行设置 参考教程 Qt下载地址 https download qt io Qt安
  • 前端拖拽自动生成代码_我的前端布局自动化——开始,布局自动生成(一)

    在web前端工作的这些年 历经多次技术变革 不过依然只是一个追随大牛们的小白 此时此刻 尤其加班时 最想做的就是干掉自己职业的东西 做一个可代替前端工作的工具 由此开始了前端自动化探索 这篇文章就是自己的旗子吧 先举起一面变革之旗 不论自己
  • 关于Number.toFixed()的总结

    关于Number toFixed 函数的总结 前言 今天工作中遇到了一个需求 需要将类似于 1 99999 这样的数字格式化为 2 00 这样的两位小数 本来打算自己实现一个类似的功能函数 但是没想到看起来容易 实际实现起来却还是有点复杂的
  • Windows server 2016 云主机创建虚拟机

    Windows server 2016 云主机创建虚拟机 Hyper V 安装失败 处理器没有所需要的虚拟化功能 vmvare workstation play 17 安装 vmvare ok https customerconnect v
  • 【毕设教程】深度学习经典网络 CNN模型:ResNet

    文章目录 0 简介 1 ResNet 介绍 2 深度网络的退化问题 3 残差学习 4 ResNet的网络结构 5 ResNet的TensorFlow实现 6 最后 0 简介 Hi 大家好 这里是丹成学长的毕设系列文章 对毕设有任何疑问都可以
  • HTML-CSS笔记_0424

    HTML CSS 学习笔记源码 链接 https pan baidu com s 1PRorRSlAW0PSHM4grOoapg 提取码 fnr2 HTML 一 网页的基本结构和基础 1 html基础
  • qt 实现UDP通信简单案例

    实现效果 实现功能 创建两个界面 可以通过udp进行通信 并显示通信内容 界面部分由代码实现 并使用qss简单美化 udp通信由创建套接字 绑定端口号 发送和接收数据函数完成 代码实现 创建第一个通信对象 ud1 h ifndef UDPU
  • 【CV学习笔记】onnx篇之DETR

    1 摘要 本次学习内容主要学习了DETR的网络结构 损失函数等知识 明白了DETR是如何做到了端到端的检测 确实是一个十分优雅的框架 同时将DETR利用onnxtime进行推理 对于transformer的理解进一步加深了 DETR学习链接
  • Vue中关于组件的封装复用

    我们在写前端代码时常常会有一些控件或者HMTL代码片段在许多页面都需要 并且内容几乎一样 只是数据的不同而已 此时 我们就可以把这些代码封装成组件 以供我们重复使用 组件化 是一种思想 解决对复杂问题简单化的思想 将我们的程序开发成一个个独
  • 【持续更新】近期C++开发Modbus通讯接口小结

    项目需求 对PLC上存储的数据进行读取 并转存到数据库 语言 C DDL 所需知识点 Socket通信 Modbus帧结构 C 中数据库的操作 多线程 Linux 项目进度拆解记录 不会做就是困难 管它简不简单 1 Socket通信 由于之
  • mysql 配置文件-----【MySQL][5.1][.ini][5] MySQL my-innodb-heavy-4G.ini

    开始配置信息 描述 4GB 内存 只有 InnoDB ACID 几个连接数 繁重的查询 类型 系统 结束配置信息 这是一个针对 4G 内存系统 主要运行只有 InnoDB 表的 MySQL 并使用几个连接数执行复杂的查询 的 MySQL 配
  • 大数据小细节、小经验

    1 把操作hive的sql写在sh脚本里 用 bin hive f 执行脚本 不用登陆hive命令行界面 这样可以脚本自动化执行某些任务 2 expect脚本 先安装expect插件 yum y install expect bin exp