hive脚本执行(python,shell)
python执行hive脚本#!/usr/bin/python#-*-coding:utf-8 -*-import subprocessimport tracebacksql = """select * from dim_table.tests_table where day="2021-10-12" limit 500"""cmd = 'hive -e """'+sql.replace('"',
·
python执行hive脚本
#!/usr/bin/python
#-*-coding:utf-8 -*-
import subprocess
import traceback
sql = """
select * from dim_table.tests_table where day="2021-10-12" limit 500
"""
cmd = 'hive -e """'+sql.replace('"', "\'")+'"""'
print(cmd)
try:
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
while True:
buff = p.stdout.readline()
print buff
if buff == '' and p.poll() != None:
break
except Exception as e:
print("message is:%s" %(str(re)))
traceback.print_exc();
shell 执行hive脚本(方式一)
echo "开始执行hvie脚本"
# shell 执行hive加载数据到hive表格命令
load data local inpath 'localpath' [overwrite] into table tablename
# shell 执行查询命令
hive -e """select * from dim_table.tests_table where day=\'2021-10-12\' limit 500"""
shell 执行hive脚本(方式二)
# 键入hive,进入hive交互模式。Set可以查看所有环境设置参数,并可以重设。
[root@nodez001 ~]# hive
Use database 选择库
quit/exit 退出Hive的交互模式
set –v 显示Hive中的所有变量
set <key>=<value> 设置参数
执行本地shell:!<cmd> 交互模式下可执行shell命令,例如(查看linux根目录下文件列表:"!ls -l /;")
操作云命令:dfs <command> 交互模式下直接操作hadoop命令如 dfs fs –ls
Hql语句 执行查询并输出到标准输出
add [FILE|JAR|ARCHIVE] <value> [<value>]* 增加一个文件到资源列表
list FILE 列出所有已经添加的资源
sql=$(cat <<!EOF
USE pmp;
set mapred.queue.names=queue3;
select * from dim_table.tests_table where day='2021-10-12' limit 500
!EOF)
hive -e "$sql"
shell执行hive脚本(方式三)
将hql语句保存为独立文件,后缀名不限制,可以用.q或者.hql作为标识:
A,这个文件在cli模式下,用source命令执行,如:source ./mytest.hql
B,在shell中执行命令,如:hive -f mytest.sql
Hive指定预执行文件命令“hive –i”(或叫初始化文件)
命令:hive -i hive-script.sql
在hive启动cli之前,先执行指定文件(hive-script.sql)中的命令。
即允许用户在cli启动时预先执行一个指定文件,一些常用的环境参数设置,频繁执行的命令,可以添加在初始化文件中,如下:
某些参数设置
set mapred.queue.names=queue5;
SET mapred.reduce.tasks=16;
添加udf文件
add JAR ./trans_data-hive-udf.jar;
设置Hive的日志级别
hive -hiveconf hive.root.logger=INFO;
更多推荐
已为社区贡献3条内容
所有评论(0)