如何在网站做引流,今天最新的新闻头条新闻,企业展厅怎么设计,网上开店铺【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive 1#xff09;压缩文件2#xff09;上传文件到 OBS 存储对象3#xff09;crontab 定时压缩上传4#xff09;从 obs 上拉取下来文件后解压缩5#xff09;判断对应文件是否存在6#xff0… 【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive 1压缩文件2上传文件到 OBS 存储对象3crontab 定时压缩上传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.csv2上传文件到 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/3crontab 定时压缩上传
实际生产中可以定时进行压缩上传。
4从 obs 上拉取下来文件后解压缩
obs://obs-test/model_test/test_20231127.zip cp /data/test/
unzip -d /data/test/ /data/test/test_20231127.zip5判断对应文件是否存在
拉下来后最好在脚本中自动进行判断文件是否存在如果有异常的情况可以帮助我们尽快发现异常。
if [ -f /data/cdp/test_20231127.csv ]; thenecho 该文件存在
elseecho 该文件不存在
fi6上传至 HDFS 并 load 到 Hive
完整脚本如下
/opt/obsutil/obsutil config -i****************** -k**************************** -ehuaweiyun.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_tableecho load完成
elseecho 该文件不存在break
fi