【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
相关推荐
顧棟12 小时前
HDFS元数据与auditlog结合Hive元数据统计分析
hive·hadoop·hdfs
z***897114 小时前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
Kevinyu_15 小时前
责任链模式
java·hadoop·责任链模式
yumgpkpm18 小时前
腾讯云TBDS与CDH迁移常见问题有哪些?建议由CDH迁移到CMP 7.13 平台(类Cloudera CDP,如华为鲲鹏 ARM 版)
hive·hadoop·zookeeper·flink·spark·kafka·hbase
yumgpkpm2 天前
数据可视化AI、BI工具,开源适配 Cloudera CMP 7.3(或类 CDP 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)值得推荐?
人工智能·hive·hadoop·信息可视化·kafka·开源·hbase
二进制_博客2 天前
使用datax将mysql数据抽取到hive分区表无数据
数据库·hive·mysql
干就完事了2 天前
Hive视图
数据仓库·hive·hadoop
Linux Huang2 天前
【Dinky】IDEA运行出现HistoryServer异常
java·hadoop·flink·intellij idea
A尘埃2 天前
Hive基于Hadoop的数据仓库工具
数据仓库·hive·hadoop
Macbethad3 天前
使用WPF编写一个多维度伺服系统的程序
大数据·hadoop·wpf