#!/bin/sh sleep 180 hive -e "select day_id, regexp_replace(work_order_id, '\\\\t', ''), regexp_replace(order_assess_id, '\\\\t', ''), regexp_replace(contact_type, '\\\\t', ''), regexp_replace(scene_type, '\\\\t', ''), regexp_replace(assess_mode, '\\\\t', ''), regexp_replace(join_mode, '\\\\t', ''), regexp_replace(mobile_phone, '\\\\t', ''), regexp_replace(complaint_phone, '\\\\t', ''), regexp_replace(check_assess_result, '\\\\t', ''), regexp_replace(date_format(assesssendtime, 'MM/dd/yyyy HH:mm:ss'), '\\\\t', ''), regexp_replace(date_format(usersubtime, 'MM/dd/yyyy HH:mm:ss'), '\\\\t', ''), regexp_replace(is_evaluation, '\\\\t', ''), regexp_replace(issolve, '\\\\t', ''), regexp_replace(check_assess_score, '\\\\t', ''), regexp_replace(reason, '\\\\t', '') from db_dws_jt.dws_jscp_result_bus43032 where day_id='${begin_date}';" > /data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat sed -i 's/NULL//g' /data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat sed -i 's/\t/|@|/g' /data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat sleep 120 ftp -i -n<<! open 10.7.6.118 user infaope Dc27-Fhna bin cd /ftpdata/receive/eda_in/in_2010/ lcd /data1/u_eda_lx_grp01/wwd/in_2010 prompt put dws_db_dws_in_2012_touch_10000_d.dat close bye ! 这段代码什么意思
时间: 2024-04-21 21:24:10 浏览: 12
这段代码是一个Shell脚本,功能类似于上面的例子。它将从Hive表中查询指定日期的数据,并将结果导出到文件,然后通过FTP上传到远程服务器。
首先,脚本暂停执行180秒。
接下来,使用Hive命令从表`db_dws_jt.dws_jscp_result_bus43032`中查询指定日期的数据,并将结果输出到文件`/data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat`。
在查询结果中,使用`regexp_replace`函数对各个字段进行处理,将其中的制表符替换为空格。
然后,使用`sed`命令对文件进行处理,将其中的NULL字符串替换为空格,并将制表符替换为特殊字符串"|@|"。
然后,脚本再次暂停执行120秒。
最后,使用FTP命令连接到远程服务器,通过用户名和密码进行验证。然后切换到指定目录`/ftpdata/receive/eda_in/in_2010/`,设置本地目录为`/data1/u_eda_lx_grp01/wwd/in_2010`,启用被动模式。接着,将文件`dws_db_dws_in_2012_touch_10000_d.dat`上传到远程服务器。最后,关闭FTP连接。
这段代码的作用是将Hive表中指定日期的数据导出到文件,并通过FTP上传到远程服务器。
相关问题
$HIVE_HOME/bin/hive --service hiveserv补全命令
$HIVE_HOME/bin/hive --service hiveserver是启动HiveServer2的命令。在启动HiveServer2时,可以添加一些参数来控制其行为,这些参数的完整列表可以通过在命令行中输入$HIVE_HOME/bin/hive --service hiveserver2 --help来查看。其中一些常用的参数包括:
- -p 或 --port 指定HiveServer2监听的端口号,默认为10000
- -H 或 --hostname 指定HiveServer2绑定的主机名,默认为0.0.0.0
- --hiveconf key=value 设置Hive配置属性,例如--hiveconf hive.server2.authentication=LDAP可以启用LDAP认证
- --hivevar key=value 设置Hive变量,例如--hivevar database=my_db可以在HQL语句中引用${hivevar:database}来代替my_db
同时,还可以通过添加--hiveconf hive.server2.thrift.port=<port_number>来启动HiveServer1。在这种情况下,端口号需要设置为9083。
Missing Hive Execution Jar: /opt/module/apache-hive-1.2.1-bin/lib/hive-exec-*.jar
### 回答1:
这个错误通常意味着Hive不能找到所需的执行jar包。你可以尝试以下几个步骤:
1. 检查Hive的配置是否正确,并确保`hive-exec-*.jar`文件存在于`/opt/module/apache-hive-1.2.1-bin/lib/`目录中。如果不存在,你可能需要重新安装Hive。
2. 检查你的环境变量是否正确设置。确保`HIVE_HOME`指向正确的Hive安装目录,并将`$HIVE_HOME/bin`添加到`$PATH`中。
3. 如果你正在使用Hadoop集群,请确保Hive和Hadoop的版本兼容。不同版本的Hive可能需要不同版本的Hadoop支持。
4. 如果你正在使用远程Hive服务器,请确保你的客户端能够访问Hive服务器,并且Hive服务器上的配置正确。
如果以上步骤都没有解决问题,你可能需要查看Hive的日志文件,以确定更具体的错误信息。
### 回答2:
在Hive中执行任务时,可能会遇到"Missing Hive Execution Jar"错误,表示Hive无法找到所需的hive-exec-*.jar文件。这个问题通常发生在缺少Hive的执行文件或文件位置错误的情况下。
要解决这个问题,可以按照以下步骤进行操作:
1. 首先,确保在指定的路径/opt/module/apache-hive-1.2.1-bin/lib/中存在hive-exec-*.jar文件。如果文件确实存在,那么可能是权限问题导致Hive无法读取该文件。可以使用chmod命令修改文件权限,确保Hive可以访问该文件。
2. 如果文件确实存在,并且权限设置正确,但Hive仍然无法找到该文件,可以尝试重新设置Hive的环境变量。在Hive的配置文件中(通常是hive-env.sh或hive-site.xml),检查hive.exec.jar路径的设置。确保该路径正确地指向hive-exec-*.jar文件所在的位置。
3. 最后,可以通过重新安装Hive来解决该问题。在重新安装之前,确保彻底卸载Hive,并删除掉相关的文件和目录,然后重新安装最新版本的Hive。
总之,解决"Missing Hive Execution Jar"错误的关键是确保hive-exec-*.jar文件存在且位置正确,并检查Hive的环境变量和配置文件中的设置是否正确。如果问题仍然存在,可以尝试重新安装Hive来解决该问题。
### 回答3:
缺少Hive执行Jar包:/opt/module/apache-hive-1.2.1-bin/lib/hive-exec-*.jar。
这个错误表示在指定的路径中缺少Hive执行Jar包。Hive使用这个Jar包来执行Hive查询和任务。
要解决这个问题,首先需要确认是否正确安装了Hive,并且路径设置正确。如果路径不正确,可以在Hive的配置文件中更正路径。
另外,还需要确认是否存在这个Jar包,并且该Jar包的版本与Hive的版本兼容。需要确保Hive执行Jar包与所使用的Hive版本匹配,否则可能会出现兼容性问题。
如果确保了路径和版本都是正确的,但依然缺少该Jar包,可以尝试重新下载并安装Hive。在安装过程中,确保将Hive执行Jar包正确地放置在指定的路径下。
如果还是无法解决问题,可能需要查看Hive的日志文件以获取更多详细的错误信息。根据日志中的具体错误,可以进一步排查可能的原因,并采取相应的解决措施。
总结来说,缺少Hive执行Jar包的错误是由于路径设置不正确或Jar包版本不兼容引起的。通过检查路径配置、重新下载安装和查看日志文件等步骤,可以解决这个问题。