当前位置: 首页 > news >正文

【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive

【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive

  • 1)压缩文件
  • 2)上传文件到 OBS 存储对象
  • 3)crontab 定时压缩上传
  • 4)从 obs 上拉取下来文件后解压缩
  • 5)判断对应文件是否存在
  • 6)上传至 HDFS 并 load 到 Hive

本次需求:想将一个集群上的 csv 文件 load 到另一个集群的 Hive 表中,由于两个集群的网络不通,所以利用华为云存储对象 OBS 作为中间栈,从而实现。

1)压缩文件

服务器A上 /home/test/ 目录下找到测试文件进行压缩,实际生产中不排除单个文件很大,导致上传至存储对象速度慢,所以压缩后效率更高。

zip -r /home/test/20231127/test_20231127.zip test_20231127.csv

2)上传文件到 OBS 存储对象

上传压缩文件到 obs,这里我们已经安装了obsutil-Liunx工具,如果没有安装的话要安装。

安装地址:https://support.huaweicloud.com/utiltg-obs/obs_11_0003.html

/opt/obsutil/obsutil cp /home/test/20231127/test_20231127.zip obs://obs-tes/model_test/

3)crontab 定时压缩上传

实际生产中可以定时进行压缩上传。

4)从 obs 上拉取下来文件后解压缩

obs://obs-test/model_test/test_20231127.zip cp /data/test/
unzip -d /data/test/ /data/test/test_20231127.zip

5)判断对应文件是否存在

拉下来后最好在脚本中自动进行判断文件是否存在,如果有异常的情况可以帮助我们尽快发现异常。

if [ -f /data/cdp/test_20231127.csv ]; thenecho "该文件存在"
elseecho "该文件不存在"
fi

6)上传至 HDFS 并 load 到 Hive

完整脚本如下:

/opt/obsutil/obsutil config -i=****************** -k=**************************** -e=huaweiyun.cloud.com
echo 123 | kinit hive
sh /opt/obsutil/config.sh
/opt/obsutil/obsutil cp obs://obs-test/model_test/test_20231127.zip /data/test/test_20231127.zip
if [ -e /data/test/test_20231127.zip ]; thenecho "文件下载完成"unzip -o -d /data/test/ /data/test/test_20231127.zipecho "解压缩完成"hdfs dfs -put -f /data/test/test_20231127.csv /tmp/testecho "上传hdfs完成"hive -e "load data inpath '/tmp/test/test_20231127.csv' overwrite into table test.test_table"echo "load完成"
elseecho "该文件不存在"break
fi
http://www.lryc.cn/news/262511.html

相关文章:

  • 直线检测算子
  • 如何在本地Docker中部署MinIO服务并实现远程访问管理界面
  • 逛商场。。。
  • RTrPPG
  • web应用开发技术的一些概念
  • 智能优化算法应用:基于乌燕鸥算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 超聚变服务器(原华为服务器)网站模拟器
  • Linux常见压缩指令小结
  • OpenSSL的源码在哪里下载?
  • 使用create-react-app脚手架创建react项目
  • 【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火
  • JVM基础扫盲
  • SpringBoot基于gRPC进行RPC调用
  • 浏览器的事件循环机制(Event loop)
  • THEMIS---Beta Sprint Summary Essay Blog
  • Vue中实现分布式动态路由的基本实现步骤介绍
  • 【Leetcode】计算器
  • 巧妙的使用WPF中的资源
  • 多维时序 | MATLAB实现RIME-CNN-BiLSTM-Multihead-Attention多头注意力机制多变量时间序列预测
  • 【AIGC重塑教育】AI大模型驱动的教育变革与实践
  • 【力扣100】2.两数相加
  • 算法leetcode|93. 复原 IP 地址(多语言实现)
  • TOGAF—架构(Architecture)项目管理
  • MVVM前端设计模式的发展与应用
  • redis:二、缓存击穿的定义、解决方案(互斥锁、逻辑过期)的优缺点和适用场景、面试回答模板和缓存雪崩
  • php的Url 安全的base64编码解码类
  • 安全CDN有什么作用,安全CDN工作原理是什么?
  • Mysql高可用|索引|事务 | 调优
  • 电机驱动开发
  • 基于PaddleNLP的深度学习对文本自动添加标点符号(一)