我有一个自动执行直线命令的shell脚本代码。代码能够连接到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条答案
按热度按时间enxuqcxy1#
这个问题已经解决了。我用的是多余的线
beeline -u $BEELINE_PREFIX
在使用配置单元数据库之前的原始代码中"use database".
我把它注解掉了。脚本运行正常。