9.27学习笔记

  1. 今日速览
  2. 环境拓扑(安全开启后)
    表格
    节点 新增角色 Principal 样例
    node1 KDC (kerberos) kadmin/admin@HADOOP.COM
    node2 YARN RM + Queue Mgmt yarn/node2@HADOOP.COM
    node3 Phoenix RS hbase/node3@HADOOP.COM
  3. 关键知识点
    3.1 Kerberos 流程
    Client → AS 获取 TGT
    TGT → TGS 获取 Service Ticket
    Service Ticket → Hadoop NameNode 完成 SASL 握手
    3.2 YARN Capacity 调度器
    层级队列:root → prod/dev → 子队列 spark/flink
    抢占:当 prod 空闲资源 < 10 % 且 dev 占用 > 20 % 时触发
    用户限额:yarn.scheduler.capacity.root.dev.maximum-user-limit-factor=0.5
    3.3 Phoenix 索引
    全局索引(Global Index)= 新表,覆盖列减少回表
    本地索引(Local Index)= 同 Region,前缀过滤高效
    写放大:WAL + Index 表双写,可调 phoenix.index.wal.disabled=true(容忍宕机丢数据)
    3.4 数据仓库拉链表
    关链 end_date = 当天-1,开链 start_date = 当天
    Hive SQL 用 row_number() over (partition by user_id order by ts) 去重
  4. 实操流水
    4.1 Kerberos 安装
    bash

node1

yum -y install krb5-server krb5-workstation
vim /var/kerberos/krb5kdc/kdc.conf # realms = HADOOP.COM
kdb5_util create -s
systemctl enable --now krb5kdc kadmin

创建主体

kadmin.local -q "addprinc -randkey hdfs/node1@HADOOP.COM"
kadmin.local -q "xst -k /etc/security/keytabs/hdfs.service.keytab hdfs/node1@HADOOP.COM"

分发 keytab 并 chmod 400

4.2 Hadoop 开启安全
xml

hadoop.security.authenticationkerberos hadoop.security.authorizationtrue xmldfs.block.access.token.enabletrue dfs.datanode.data.dir.perm700 启动顺序: kinit -kt /etc/security/keytabs/hdfs.service.keytab hdfs/node1@HADOOP.COM start-dfs.sh 验证:无 ticket 时 hdfs dfs -ls / → Permission denied (user=root, code=401) 4.3 YARN Capacity 队列yarn.scheduler.capacity.root.queuesprod,devyarn.scheduler.capacity.root.prod.capacity70yarn.scheduler.capacity.root.dev.capacity30yarn.scheduler.capacity.root.dev.maximum-allocation-vcores4yarn.scheduler.capacity.root.prod.user-limit-factor1yarn.scheduler.capacity.root.prod.stateRUNNINGyarn.scheduler.capacity.root.dev.stateRUNNINGyarn.scheduler.capacity.root.prod.acl_submit_applicationsprodyarn.scheduler.capacity.root.dev.acl_submit_applicationsdev 刷新: yarn rmadmin -refreshQueues 提交到 dev: spark-submit --master yarn --queue dev --class ... 4.4 Phoenix 索引实验 sql -- 建订单主表 CREATE TABLE ORDERS (id VARCHAR PRIMARY KEY,user_id VARCHAR,amount DECIMAL,ts BIGINT ) SALT_BUCKETS=6;

-- 写 1000 w 行
upsert into orders select ...

-- 无索引查询
select * from orders where user_id='u1234'; -- 14.2 s 全表

-- 建全局索引
CREATE INDEX idx_user ON ORDERS(user_id) INCLUDE(amount);

-- 同样查询 1.1 s,Explain 显示 RANGE SCAN OVER idx_user
写入 10 w 行测试:
– 无主索引 6.8 s
– 有主索引 7.3 s
吞吐下降 ≈ 7 %,可接受。
4.5 数据仓库分层
ODS 层(原始)

CREATE EXTERNAL TABLE ods.user_log(
user_id STRING,
event_type STRING,
ts BIGINT,
json STRING
) STORED AS TEXTFILE
LOCATION '/data/ods/user_log/';
load data inpath '/tmp/user_log_20250924.txt' into table ods.user_log;
DWD 层(清洗拉链)
sql

WITH tmp AS (
SELECT *, row_number() over (partition by user_id order by ts desc) rn
FROM ods.user_log
)
INSERT OVERWRITE TABLE dwd.user_log_chain
SELECT user_id, event_type, ts, '2025-09-24' start_date, '9999-12-31' end_date
FROM tmp WHERE rn=1;
DWS 层(日活宽表)

CREATE TABLE dws.user_daily (
dt STRING,
user_id STRING,
first_event STRING,
last_event STRING,
event_cnt INT
) STORED AS ORC;

INSERT OVERWRITE TABLE dws.user_daily PARTITION(dt='2025-09-24')
SELECT '2025-09-24', user_id, min(event_type), max(event_type), count(*)
FROM dwd.user_log_chain
WHERE start_date<='2025-09-24' AND end_date>='2025-09-24'
GROUP BY user_id;
结果:1 GB 原始 → 350 MB 宽表。
4.6 差异快照 & 滚动删除
bash

基于 last snapshot 做差异

$VMRUN snapshot node1.vmx "diff_$(date +%F)" -memory false -quiesce true

查询上次完整快照

LAST=$(find /backup -name "full_*.vmsn" -printf '%T@ %p\n' | sort -n | tail -1 | awk '{print $2}')

7 天前

find /backup -name "*.vmsn" -mtime +7 -delete
节省空间:
full_20Sep 37 GB
diff_25Sep 14 GB(仅增改)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么网站做兼职最好平台经济是什么意思

首先&#xff0c;我的结论是&#xff0c;如果是对对象进行 操作的话&#xff0c;传的是地址&#xff0c;如果是对基本数据类型进行操作的话&#xff0c;传的是值!下面&#xff0c;我再用一个小的实例来测试我的结论&#xff1a;class Person {int age;public void setAge(int a…

开学日记

dse好玩的dse好玩 我选了M2/物理/化学,物理和M2老师允许我不听课,所以理论上我可以偶尔去隔壁中国文学&&历史客串一下,好玩的 M2目前就是在学代数入门,感觉学的东西和深度不是很牛,但是我们神秘的M2老师说…

生活随笔

2025.9.27 今天不用上课(开心 做了一些题水了会洛谷一天就结束了!

网站免费建站广告机创新的南昌网站制作

目录 1 填算式 2 提取子串 3 机器人行走 4 地址格式转换 5 排日程 前言&#xff1a;以下代码仅供参考&#xff0c;若有错误欢迎指正哦~ 1 填算式 【结果填空】 (满分11分)看这个算式&#xff1a;☆☆☆ ☆☆☆ ☆☆☆如果每个五角星代表 1 ~ 9 的不同的数字。这个算式有多少种…

西宁商城网站建设公司免费解析素材网站

制造执行系统MES是一种应用于制造工厂的实际操作系统&#xff0c;它通过实时监控和控制生产流程&#xff0c;为生产过程提供全面的管理和优化。在MES管理系统解决方案中&#xff0c;设备管理功能是非常重要的一部分&#xff0c;它可以实现设备实时监控、故障预警、维护保养等功…

NOIP模拟赛 十八

DP/生成函数+博弈论+构造/倍增+根号重构A. 神秘 DP 的神秘做法。 先考虑朴素 DP ,发现最短路是可以钦定的,具体的,设 \(1\) 到其最短路为 \(d\) ,则称其为第 \(d\) 层。 要求,每一层如果存在点,一定要向上一层连…

网站建设与设计毕业设计西安加盟代理网站建设

转自&#xff1a;http://xilinx.eetrend.com/content/2019/100042384.html xilinx7系列FPGA主要包括&#xff1a;Spartan-7、Artix-7、Kintex-7、Virtex-7。其性能/密度/价格也随着系列的不同而提升。 Spartan7系列是7系列中的屌丝青年&#xff0c;拥有最低的价格、最低的功耗…

UNIQUE VISION Programming Contest 2024 Autumn (AtCoder Beginner Contest 425)

A - Sigma Cubes点击查看代码 #include <bits/stdc++.h>using i64 = long long;void solve() {int n;std::cin >> n;int ans = 0;for (int i = 1; i <= n; ++ i) {ans += (i % 2 ? -1 : 1) * i * i * …

WPF Canvas draw circle,triangle,rectangle such as mark

//Window.xaml <Window x:Class="WpfApp15.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml&quo…

论文解读-《Less is More on the Over-Globalizing Problem in Graph Transformers》 - zhang

1. 论文介绍 论文题目:Less is More on the Over-Globalizing Problem in Graph Transformers 论文领域:图神经网络,graph transformer 论文发表: ICML 2024 论文代码:https://github.com/null-xyj/CoBFormer 论文…

发布软文网站济南建设工程交易中心

在互联网的世界中&#xff0c;不同应用程序的数据传输方法各异。P2P文件共享&#xff08;Peer-to-Peer File Sharing&#xff09; 作为一种高效的文件传输方式&#xff0c;使得用户可以在没有中央服务器的情况下直接进行文件交换。本文将详细介绍P2P文件共享的基本原理、优势及…

网站规范建设学校网站集群建设

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Hash索引和B+树区别是什么?在设计索引怎么选择? 在MySQL中,Hash索引和B+树索引是两种常见的索引类型,他们有以下区别: 数据结构:Hash索引:…

loguru 日志库快速入门

1.loguru 1.1 loguru 介绍loguru是一个功能强大且非常容易使用的第三方开源Python日志管理库。它建立在Python标准库中的logging模块之上,并提供了更加简洁直观、功能丰富的接口。github仓库地址:https://github.com…

MATLAB工具箱

MATLAB工具箱一、一维离散数据微分、积分求解 1. 离散积分 function result = integral(x,y,c)result = [];for i=1:1:length(y)c=y(i)*(x(2)-x(1))+c ; result(end+1) = c;end end2. 离散微分 function result = diff…

内存访问流程

*假设执行 int a=0x1234(分配一块逻辑地址,0x56789999)32位系统 *CPU会将逻辑地址拆分为两部分 V=56789() 页内偏移=0x999 *由MMU使用0x56789变量,查进程表找到值为0xabcde *拼接物理地址:0xabcde 999 *有内存…

网站推广洛阳wordpress插件中文版下载

C# 中的字符串类型&#xff08;string&#xff09;是不可变的&#xff0c;这意味着一旦创建了一个字符串对象&#xff0c;就不能再对其进行修改。 当对一个字符串进行拼接、替换、删除等操作时&#xff0c;实际上是创建了一个新的字符串对象&#xff0c;而原始的字符串对象保持…

.NET操作Word实现智能文档处理 - 内容查找替换与书签操作

如何在Word大量文档中查找并替换特定内容?如何在文档的特定位置自动插入动态内容?如何创建能够自动生成报告的智能文档系统?本文介绍的查找替换和书签操作技术,将能够轻松实现这些功能,大大提高文档处理的效率和准…

day19_添加 修改

day19_添加 修改 1添加场景分析1使用弹出框 承载添加界面 2弹出框输入菜单信息 提交到添加接口 3添加接口处理完毕 反馈信息 弹窗处理结果 关闭弹出框 刷新table数据 2sql分析 -- 逻辑主键 一般不加自增 由使用人员维…

day18_查询功能 合并servlet

day18_查询功能 合并servlet 1.sql分析 -- 分页+条件 查询 select am1.*,IFNULL(am2.menuname,无) as pname from admin_menu am1 left join admin_menu am2 on am1.pid = am2.mid-- 动态查询条件 where am1.menuna…

NOIP模拟赛 十七

倍增+DP+DP+可持久化平衡树A. 对于一个 \(x\) ,如果 \(x\bmod a < x\) ,称其为有效的。我们断言,有效次取模只会发生 \(\log\) 次。 如果发生有效取模,则 \(a<x\) 。\(a\le \frac{x}{2}\) 则 \(x\bmod a <…