我有一个shell脚本代码,可以自动执行beeline命令。 该代码能够连接到JDBC,但是它位于那儿,似乎不执行Shell脚本中的其他代码,即。 它不会截断表,不会加载数据,不会插入。 下面是整个代码:

#! /bin/bash

timestamp=$(date +%Y-%m-%d-%H:%M:%S:%N)
unix_time=$(date +%Y-%m-%d-%H:%M:%S)

export 

BEELINE_PREFIX='"jdbc:hive2://server:port,server:port,server:port/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveser

ver2;principal=hive/server@hello.COM"'

beeline -u $BEELINE_PREFIX -e use next;

echo "truncating the staging table tbl1..."
beeline -u $BEELINE_PREFIX -e  "TRUNCATE TABLE next.tbl1;"

echo "Loading the data in stating table tbl1"
beeline -u $BEELINE_PREFIX -e "LOAD DATA LOCAL INPATH 'path_to/tbl1.txt' INTO TABLE next.tbl1;"

echo "Appending the data into history table tbl1.."
beeline -u $BEELINE_PREFIX -e "insert into table next.hist_tbl1 select *,'$unix_time' from next.tbl1;"

When I execute ./tbl1.sh

我可以看到以下输出:

Connecting to 

jdbc:hive2://jdbc:hive2://server:port,server:port,server:port/;serviceDiscoveryMode=zookeeper;zookeeperNamespace=hiveserver2

;principal=hive/server@hello.COM
Connected to: Apache Hive
Driver: Hive JDBC
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.2.1000.2.6.5.0-292 by Apache Hive

该代码似乎只执行veru第一个“ beeline -u”,即仅执行JDBC连接。 我已经注意到,当我使用ctrl + c时,它将前进并抛出错误以下

Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. File file:/usr/ibmpacks/current/bigsql/hive/lib/hive-hbase-handler.jar does not exist (state=08S01,code=1)

任何想法,这是什么错误?

#1楼 票数:0

该问题已解决。 在使用配置单元数据库"use database".之前,我在原始代码中使用beeline -u $BEELINE_PREFIX额外行"use database". 我把它注释掉了。 脚本正常运行。

  ask by learner translate from so

未解决问题?本站智能推荐:

1回复

使用Beeline的Oozie外壳动作

我正在创建一个oozie工作流,在其中执行她将编写的脚本。 该shell脚本使用beeline调用一个“ .hql”文件。 hql文件正在从表1中选择并插入表2中,表1和表2都已分区。 当我运行Oozie作业时,直线操作正在正确执行,但是数据没有插入表二中。 在beeline终端上执行时
2回复

如何从 bash shell 脚本运行 beeline 和 hive 查询

登录到 unix bash shell 后,我可以按顺序手动运行以下步骤。 echo "Connecting beeline" beeline !connect jdbc:hive2://a301-1234-1234.stm.XXX.com:10000/default;;ssl=true;ssl
1回复

如何自动将beeline命令发送给各种配置单元查询?

我必须像在HIVE CLI中执行的操作一样,自动完成直线上的几个活动。 以下是用于HIVE自动化任务的运行示例外壳脚本: 我想对beeline做类似的事情。 我是直线的入门者。 因此,我提出了以下内容。 ++++++++++++++++++++++++++ 新语法
1回复

从脚本中传递的Beeline / Hive2变量被截断

我有一个脚本,我将参数传递给hive变量。 整个流程如下所示。其中一个hive变量被截断。 cat << script.sh 除了被截断的列变量(SRC_CLMN)之外,所有变量都被正确传递 SRC_CLMN是从文件中获取的,如下所示。 输出SRC_CL
1回复

如何动态使用shell脚本在beeline中创建一堆数据库?

如何通过传递变量使用shell脚本在Beeline中创建一堆数据库? 我现在有像abc,abcd,abcd3,abcd4这样的列表数据库,我想通过传递变量使用Shell脚本创建此数据库?
1回复

将从 Beeline 生成的表重定向到没有网格的文本文件(Shell 脚本)

我目前正在尝试找到一种方法,将标准输出从直线 shell 重定向到没有网格的文本文件。 我现在面临的最大问题是我的列有负值,当我使用正则表达式删除“-”时,它会影响列值。 这是我在做什么: 我正在尝试清理此文件,以便将所有数据读入变量。
2回复

哪个用户正在连接到beeline?

当我连接到beeline数据库时,不需要输入用户名和密码,只需按Enter即可访问该数据库。 但是,当我想写到数据库时,出现权限拒绝错误: 我会知道应该使用哪个default user来连接数据库,以便向其中添加策略。 我以为是蜂巢,但似乎不是。
1回复

无法通过beeline连接到hive服务器

我启动了hiveserver2。 我正在尝试通过beeline连接到服务器 然后,我输入一个空白的用户名和密码,并得到此错误: 请有人帮我联系