文档章节

Hive执行方式及结合shell脚本

i
 iamchenli
发布于 01/21 11:50
字数 552
阅读 5
收藏 0

Hive可以在CLI命令行中执行,但是对于不懂的hive的人会比较麻烦,所以就想能否通过shell去执行hive的语句呢,封装起来只要执行一条shell命令就可以了,每次执行只要自己传入不同参数就可以了,并且如果以后需要做定时器任务crontab也是需要调用shell的,于是就有了下面的学习

1、直接在命令行中执行

hive -e 'create table yz_jfzws.cl_a(a string);create table yz_jfzws.cl_b(b string);'

2、把需要执行的hql单独保存成文件,然后通过linux的命令行执行

hive -f hive-script.sql

也可在Hive shell中执行

source /路径/文件名.hql;

 

hive-script.sql文件代码如下

use yz_jfzws;
drop table cl_a;
--create table cl_a(a string);

3、结合1、2,把他们放到shell文件中(.sh文件),sh文件等同于在命令行,sh hivesh-test.sh

hivesh-test.sh文件代码

hive -f hive-script.sql
hive -e 'create table yz_jfzws.cl_a(a string);create table yz_jfzws.cl_b(b string);'

4、进阶,比如我在执行sh的时候,想传入参数

(1)通过shell参数传入

hivesh-test.sh文件代码

db=$1
echo ${db}
hive -e 'use yz_jfzws;create table yz_jfzws.'${db}'(a string);create table yz_jfzws.cl_b(b string);'

linux命令行执行如下

sh hivesh-test2.sh cl_a

注意,这种方式不能传参数到一个单独的.sql文件,那怎么办?请往下看,通过下面两种方式可以传入参数

(2)通过hiveconf,hiveconf属于hive-site.xml下面配置的环境变量

hivesh-test.sh文件代码

tb_name=$1
echo ${tb_name}
hive --hiveconf db=${tb_name} -f hive-script.sql

hive-script.sql代码如下

use yz_jfzws;
drop table ${hiveconf:db};
--create table cl_a(a string);

命令行执行的命令如下

sh hivesh-test.sh cl_a

 

(3)hivevar,hivevar为用户自定义变量

hivesh-test.sh文件代码

tb_name=$1
echo ${tb_name}
hive --hivevar db=${tb_name} -f hive-script.sql

hive-script.sql代码如下

use yz_jfzws;
drop table ${db};

命令行执行如下

sh hivesh-test.sh cl_a

 

 

 

© 著作权归作者所有

i
粉丝 11
博文 54
码字总数 22119
作品 0
广州
程序员
私信 提问
Hive结合shell脚本实现自动化业务

【案例】hive脚本加载数据到hive分区表 access_logs/20170610/2017061000.log 2017061001.log 2017061002.log ...... 2017061023.log 二级分区:天/小时 crontab+shell 实现自动调度。 建库:...

weixin_40652340
2017/12/13
0
0
004.hive命令的3种调用方式 | ApacheCN(apache中文网)

ApacheCN apache中文网 hive命令的3种调用方式 官网地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli(可参考) 方式1:hive –f /root/shell/hive-script.sql......

片刻
2014/01/13
29.8K
0
hive(02)、数据仓库Hive的基本使用

在上篇《 hive(01)、基于hadoop集群的数据仓库Hive搭建实践 》一文中我们搭建了分布式的数据仓库Hive服务,本文主要是在上文的基础上结合Hadoop分布式文件系统,将结构化的数据文件映射为一张...

MaxBill
2018/01/10
245
0
crontab 执行环境变量的问题

记录一下一个折磨我N天的crontab的问题 问题是这样的 我写了个php脚本run.php ,脚本里面调用了一下hive命令(hadoop相关的东西)生成hive_result.txt,同时在hive命令执行前和执行后都会用php...

loveczp
2013/12/17
5.5K
3
hadoop 里执行 MapReduce 任务的几种常见方式

说明: 测试文件: echo -e "aatbb tccnbbtcctdd" > 3.txt hadoop fs -put 3.txt /tmp/3.txt 全文的例子均以该文件做测试用例,统计单词出现的次数(WordCount)。 1、原生态的方式:java 源...

大数据之路
2012/10/14
10.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

Archiva 不小心删掉了管理员权限怎么办

Archiva 的界面和 UI 比较容易出问题。 在添加用户和为用户进行权限修改的时候,不小心连 admin 这个用户的权限都删掉了。 这个时候应该如何恢复 admin 这个用户的权限? 这个时候你可以尝试...

honeymoose
29分钟前
4
0
Java8新特性之空指针异常的克星Optional类

Java8新特性系列我们已经介绍了Stream、Lambda表达式、DateTime日期时间处理,最后以“NullPointerException” 的克星Optional类的讲解来收尾。 背景 作为开发人员每天与NullPointerExceptio...

程序新视界
42分钟前
4
0
OSChina 周四乱弹 —— 福布斯终身秃头奖

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享如是我闻的单曲《地藏经上卷》: 如是我闻#今日歌曲推荐# 《地藏经上卷》- 如是我闻 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
45分钟前
152
8
Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
6
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部