oozie4.1.x 执行hive(废弃)

说明

基于 hive2 运行

准备

登录 hadoop1

启动hadoop

/program/bin/hadoop.sh start

启动 mysql

hive 元数据保存在mysql中,需要启动 mysql,执行下面命令:

service start mysql

启动 hive

启动 hive metastore 和 hiveserver2

/program/bin/hiveservices.sh start

创建目录

在 /program/oozie-4.1.0-cdh5.14.0/oozie_apps/ 创建 std2_mr,用于存放相关文件

cd /program/oozie-4.1.0-cdh5.14.0
mkdir oozie_apps

在 oozie_apps 目录下创建 lib文件夹,存放 mr jar包

cd oozie_apps

编写 job.properties

nameNode=hdfs://hadoop1:8020
jobTracker=hadoop1:8032
queueName=default
jdbcURL=jdbc:hive2://hadoop1:10000/default
examplesRoot=oozie_apps

oozie.use.system.libpath=true

# hdfs上的文件路径
oozie.wf.application.path=${nameNode}/${examplesRoot}/hive2

编写 workflow.xml

<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns="uri:oozie:workflow:0.5" name="hive2-wf">
    <start to="hive2-node"/>

    <action name="hive2-node">
        <hive2 xmlns="uri:oozie:hive2-action:0.1">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <prepare>
                <delete path="${nameNode}/${examplesRoot}/output-data/hive2"/>
                <mkdir path="${nameNode}/${examplesRoot}/output-data"/>
            </prepare>
            <configuration>
                <property>
                    <name>mapred.job.queue.name</name>
                    <value>${queueName}</value>
                </property>
            </configuration>
            <jdbc-url>${jdbcURL}</jdbc-url>
            <script>script.q</script>
            <param>INPUT=/user/${wf:user()}/${examplesRoot}/input-data/table</param>
            <param>OUTPUT=/user/${wf:user()}/${examplesRoot}/output-data/hive2</param>
        </hive2>
        <ok to="end"/>
        <error to="fail"/>
    </action>

    <kill name="fail">
        <message>Hive2 (Beeline) action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>

上传到 hdfs

cd /program/oozie-4.1.0-cdh5.14.0/
hadoop fs -put oozie_apps/std2_mr /oozie_apps

重新上传

重新上传需要先删除 hdfs 的相关文件夹

hadoop fs -rm -r /oozie_apps/std2_mr

执行

cd /program/oozie-4.1.0-cdh5.14.0
bin/oozie job -oozie http://hadoop3:11000/oozie -config oozie_apps/std2_mr/job.properties -run

解释:

  • oozie_apps/std2_mr/job.properties:本机 job.properties 所在的路径
    写绝对路径也可以:
    /program/oozie-4.1.0-cdh5.14.0/oozie_apps/std2_mr/job.properties

原文出处:/show_1IX2GhS6vquT.html