码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • hive数据load到redis


    使用shell脚本来实现,脚本如下:

    1. #!/bin/bash
    2. # 定义变量
    3. pwd=/root
    4. day=$(date +%Y%m%d)
    5. before_day=$(date -d -1day +%Y%m%d)
    6. log_file=$pwd/load_redis_$day.log
    7. # 创建目录
    8. mkdir -p $pwd/$day && echo "$(date '+%Y-%m-%d %H:%M:%S')----$pwd/$day 目录已创建" > $log_file
    9. # 导出hive数据
    10. function export_hive(){
    11. echo "导出数据为 insert overwrite local directory '$pwd/$day/' row format delimited fields terminated by '|' select a,b,c,d from dw_wangxinqing_yyyymmdd1 where day_id=$day;" >> $log_file
    12. echo "$(date '+%Y-%m-%d %H:%M:%S') -------开始从hive导出数据--------" >> $log_file
    13. hive -e "insert overwrite local directory '$pwd/$day/' row format delimited fields terminated by '|' select a,b,c,d from dw_wangxinqing_yyyymmdd1 where day_id=$before_day;" && mv $pwd/$day/000000* $pwd/$day/hive_$before_day.txt
    14. if [ $? -ne 0 ]; then
    15. echo "$(date '+%Y-%m-%d %H:%M:%S')-----导出失败-----" >> $log_file
    16. exit 1
    17. else
    18. echo "$(date '+%Y-%m-%d %H:%M:%S')-----导出成功-----" >> $log_file
    19. fi
    20. }
    21. # 清理hive数据
    22. function Clear_hive(){
    23. rm -f $pwd/$day/redis_$before_day.txt
    24. awk -F "|" '{print "HMSET asiainfo:"$1" telnum "$1" region "$2" crowd "$3" activeType "$4"\nEXPIRE asiainfo:"$1" 300"}' $pwd/$day/hive_$before_day.txt > $pwd/$day/redis_$before_day.txt
    25. unix2dos $pwd/$day/hive_$before_day.txt
    26. echo "$(date '+%Y-%m-%d %H:%M:%S')-----格式转换成功-----" >> $log_file
    27. scp $pwd/$day/redis_$before_day.txt hadoop1:$pwd/
    28. if [ $? -ne 0 ]; then
    29. echo "$(date '+%Y-%m-%d %H:%M:%S')-----传输到目标服务器失败-----" >> $log_file
    30. exit 1
    31. else
    32. echo "$(date '+%Y-%m-%d %H:%M:%S')-----传输到目标服务器成功-----" >> $log_file
    33. fi
    34. }
    35. # 加载到redis
    36. function Load_redis(){
    37. echo "-------------可以load到redis------------" >> $log_file
    38. ssh hadoop1 "time cat $pwd/redis_$before_day.txt | /usr/bin/redis-cli --pipe -a 'password'" >> $log_file
    39. }
    40. # 开始执行
    41. function start(){
    42. export_hive
    43. Clear_hive
    44. Load_redis
    45. }
    46. start

    在原文基础上做了优化,怕忘了,所以写个文章记录下,原文链接如下:

     两种方式用Shell实现把Hive表数据导入到redis_shell脚本 hive加载到doris_刘先生我在呀的博客-CSDN博客

  • 相关阅读:
    【MQTT从入门到提高系列 | 01】从0到1快速搭建MQTT测试环境
    一套轻量、安全的问卷系统基座,提供面向个人和企业的一站式产品级解决方案
    Spring 编程常见问题之一(专栏学习笔记)
    UTF-8字符串操作方法
    Spring核心与设计思想
    K8S-1.18.20高可用集群之部署集群监控系统kube-prometheus插件
    Linux下多线程的操作
    【设计模式】Java设计模式 - 状态模式
    常用软件静默安装参数
    c#中switch常用模式
  • 原文地址:https://blog.csdn.net/weixin_36630761/article/details/133378242
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号