【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
相关推荐
小湘西2 小时前
在 Hive 中NULL的理解
数据仓库·hive·hadoop
牛奶咖啡133 小时前
zabbix实现监控Hadoop、Docker、SSL证书过期时间应用的保姆级实操流程
hadoop·zabbix·docker-ce引擎安装·监控docker容器·监控ssl证书的过期时间·监控hadoop·安装配置agent2
小鹿学程序9 小时前
搭建hadoop集群
大数据·hadoop·分布式
没有口袋啦10 小时前
《云原生基础设施》
云原生·容器·kubernetes·华为云
John Song12 小时前
用zookpeer搭建Hadoop的HA集群,组件启动的启动顺序是什么?
大数据·hadoop·debian
天机玄正12 小时前
AWS helmchart包适CCE
华为云·云计算·aws
jiuweiC1 天前
hive常用命令
hive
hweiyu001 天前
Hive 技术深度解析与 P7 数据分析架构师多行业全场景实战课程合集(视频教程)
hive·数据分析
qq_12498707532 天前
基于hadoop的电商用户行为分析系统(源码+论文+部署+安装)
大数据·hadoop·分布式·毕业设计
临风赏月2 天前
Hadoop、Kafka、Flink、Spark、Hive五大组件运维常用操作命令
hadoop·flink·kafka