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

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

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

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

1)压缩文件

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

shell 复制代码
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

shell 复制代码
/opt/obsutil/obsutil cp /home/test/20231127/test_20231127.zip obs://obs-tes/model_test/

3)crontab 定时压缩上传

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

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

shell 复制代码
obs://obs-test/model_test/test_20231127.zip cp /data/test/
unzip -d /data/test/ /data/test/test_20231127.zip

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

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

shell 复制代码
if [ -f /data/cdp/test_20231127.csv ]; then
    echo "该文件存在"
else
    echo "该文件不存在"
fi

6)上传至 HDFS 并 load 到 Hive

完整脚本如下:

shell 复制代码
/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 ]; then
    echo "文件下载完成"
    unzip -o -d /data/test/ /data/test/test_20231127.zip
    echo "解压缩完成"
    hdfs dfs -put -f /data/test/test_20231127.csv /tmp/test
    echo "上传hdfs完成"
	hive -e "load data inpath '/tmp/test/test_20231127.csv' overwrite into table test.test_table"
    echo "load完成"
else
    echo "该文件不存在"
    break
fi
相关推荐
熊猫钓鱼>_>1 天前
上架审核常见驳回与隐私合规清单:过审前先自查这 8 条【鸿蒙心迹】
开发语言·前端·华为·华为云·harmonyos·openharmony·ai制作
skywalk81631 天前
hive —— 多机 AI Agent 协同的任务总线:分布式,多节点同时运行,保障不会宕机
人工智能·hive·分布式
hyunbar2 天前
华为云 GaussDB(DWS) 和 PG 的谓词下推有何差异
华为云·gaussdb·dws
棣廷2 天前
初识Hive(2)
数据仓库·hive·hadoop
skywalk81632 天前
deepseek对skywalk163/hive 和hivecommons/hive 两个多机AI Agent任务调度项目的对比
人工智能·hive·agent
JoePotter2 天前
从零搭建华为云 EVS 每日自动快照:hcloud + PowerShell + 邮件报告实战
华为云·自动化运维·powershell·evs·koocli·快照备份·mailozaurr
father_12273 天前
【ambari管理下hdp2.6.5升级hive1.2.1-2.1.0-2.3.3】
hive·hadoop·ambari
magic_kid_20103 天前
HDFS 故障复盘:千万级 block 导致 FBR 超过 128 MiB,DataNode 被判定为 dead
大数据·hadoop·hdfs·hadoop 故障
Linux界最忧郁之人3 天前
OpenStack Victoria双节点实战|Packstack一键部署(CentOS‑Stream‑8)+华为云ECS实操
linux·运维·服务器·centos·华为云·openstack
小刘在重生~3 天前
Servlet_day2 (上)|Servlet 整合 JDBC|请求转发 forward|Request 作用域
hive·hadoop·servlet