【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
相关推荐
BD_Marathon6 小时前
Hadoop组成
大数据·hadoop·分布式
邀星月为媒9 小时前
正式迁移 Gitee:core-site-hive 与 core-hive-agent 后续更新只认这两个地址
hive·hadoop·gitee
BD_Marathon9 小时前
Hadoop常用端口号
java·大数据·hadoop
聚搜云——JuSouClouD11 小时前
重庆华为云代理商:GPU加速云服务器和普通ECS有什么区别?AI、渲染和计算场景怎么选
服务器·人工智能·华为云
fastjson_1 天前
Hive 复杂数据类型
数据仓库·hive·hadoop
爱吃面的猫1 天前
大数据Hadoop之——集群环境搭建(了解)
大数据·hadoop·flume
一路向北finish1 天前
《Hadoop 高可用集群与 OpenStack Mitaka 控制节点部署全流程实操排坑指南》
大数据·linux·运维·服务器·hadoop·openstack
insertYam1 天前
[hadoop高可用架构]
大数据·hadoop·架构
hopsky1 天前
《Hive性能调优实战》核心内容详细解读
数据仓库·hive·hadoop
-今昭-3 天前
Hadoop HDFS 高可用实战指南
运维·hadoop·hdfs·负载均衡