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

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

1)压缩文件

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

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

/opt/obsutil/obsutil cp /home/test/20231127/test_20231127.zip obs://obs-tes/model_test/

3)crontab 定时压缩上传

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

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

obs://obs-test/model_test/test_20231127.zip cp /data/test/
unzip -d /data/test/ /data/test/test_20231127.zip

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

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

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

6)上传至 HDFS 并 load 到 Hive

完整脚本如下:

/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. 对象存储】SpringBoot集成华为OBS对象存储

    2023-12-15 16:24:02       14 阅读
  2. 华为】SpringBoot + OBS 上传文件

    2023-12-15 16:24:02       43 阅读
  3. 华为OBS-文件上传

    2023-12-15 16:24:02       36 阅读
  4. Hive on Spark、Spark on Hive异同

    2023-12-15 16:24:02       7 阅读
  5. Hive on Tez 作业优化参数

    2023-12-15 16:24:02       7 阅读
  6. Hive和Spark生产搭建(spark on doris)

    2023-12-15 16:24:02       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 16:24:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 16:24:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 16:24:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 16:24:02       20 阅读

热门阅读

  1. SpringBoot 源码解析

    2023-12-15 16:24:02       43 阅读
  2. 解决子组件没有渲染完出现的报错

    2023-12-15 16:24:02       39 阅读
  3. WordPress任务计划异步执行(WordPress后台速度优化

    2023-12-15 16:24:02       39 阅读
  4. Audio signal (MATLAB)代码学习-常见问题2

    2023-12-15 16:24:02       31 阅读
  5. 【Go语言分析 select case 】

    2023-12-15 16:24:02       39 阅读
  6. docker 安装mysql容器

    2023-12-15 16:24:02       35 阅读
  7. python中qt5的入门

    2023-12-15 16:24:02       37 阅读