Oozie4.2 安装部署、以及example测试

本文详细介绍了Oozie 4.2在Hadoop 2.6.0环境下的安装步骤,包括环境配置、oozie-site.xml的修改、Hadoop配置更新、jar包处理、数据库创建、oozie-sharelib安装以及客户端配置。通过实例展示了Oozie的使用,如将examples上传到HDFS,并执行oozie job命令。

编译:

使用的环境是:Hadoop2.6.0、Spark1.4.0、Hive0.13.1、Sqoop1.4.4

编译Oozie的命令./mkdistro.sh -Phadoop-2 -Dhadoop.auth.version=2.6.0 -Ddistcp.version=2.6.0 -Dsqoop.version=1.4.4 -Dhive.version=0.13.1 -Dpig.version=0.15.0

(突然发现,编译时没有指定Spark的版本)

经过艰难漫长的编译过程,最后得到了oozie-4.2.0-distro.tar.gz。

 

Oozie4.2 Server安装

所需环境:

Unix (tested in Linux and Mac OS X)

Java 1.6+

Hadoop(tested with 1.0.0 & 0.23.1)

ExtJS library (可选, 用于Oozie webconsole,本文档中使用)

mysql(可选,本文档中使用)

 

开始安装:

将编译好的oozie-4.2.0-distro.tar.gz解压到/opt下

1、修改环境变量

vim /etc/profile,加入OOZIE_HOME这个环境变量,并在PATH中加入$OOZIE_HOME/bin,保存退出,然后执行source  /etc/profile

2、修改/opt/oozie-4.2.0/conf下的 oozie-site.xml文件,在oozie-site.xml中增加以下配置信息:

<!--mysql作为元数据存放的数据库-->
<property>
    <name>oozie.service.JPAService.jdbc.driver</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>
        JDBC driver class.
    </description>
</property>
<property>
    <name>oozie.service.JPAService.jdbc.url</name>
    <value>jdbc:mysql://192.168.127.11:3306/oozie</value>
    <description>
        JDBC URL.
    </description>
</property>
<property>
    <name>oozie.service.JPAService.jdbc.username</name>
    <value>root</value>
    <description>
        DB user name.
    </description>
</property>
<property>
    <name>oozie.service.JPAService.jdbc.password</name>
    <value>123456</value>
    <description>
        DB user password.
        IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value,
        if empty Configuration assumes it is NULL.
    </description>
</property>
<!--设置Hadoop的配置文件的路径-->
<property>
    <name>oozie.service.HadoopAccessorService.hadoop.configurations</name>
    <value>*=/opt/hadoop-2.6.0/etc/hadoop</value>
    <description>
        Comma separated AUTHORITY=HADOOP_CONF_DIR, where AUTHORITY is the HOST:PORT of
        the Hadoop service (JobTracker, YARN, HDFS). The wildcard '*' configuration is
        used when there is no exact match for an authority. The HADOOP_CONF_DIR contains
        the relevant Hadoop *-site.xml files. If the path is relative is looked within
        the Oozie configuration directory; though the path can be absolute (i.e. to point
        to Hadoop client conf/ directories in the local filesystem.
    </description>
</property>
<!--设置Spark的配置文件的路径-->
<property>
    <name>oozie.service.SparkConfigurationService.spark.configurations</name>
    <value>*=/opt/spark-1.4.0-bin-hadoop2.6-hive/conf</value>
    <description>
        Comma separated AUTHORITY=SPARK_CONF_DIR, where AUTHORITY is the HOST:PORT of
        the ResourceManager of a YARN cluster. The wildcard '*' configuration is
        used when there is no exact match for an authority. The SPARK_CONF_
### Oozie 的容器化部署 #### 使用 Docker 部署 Oozie 为了实现 Oozie 的容器化,Docker 提供了一个轻量级的虚拟化解决方案。通过创建自定义镜像来封装 Oozie 及其依赖项,可以在任何支持 Docker 的环境中运行。 ```dockerfile FROM openjdk:8-jdk-alpine LABEL maintainer="admin@example.com" ENV OOZIE_VERSION=5.2.0 \ HADOOP_VERSION=3.2.1 RUN apk add --no-cache bash tini curl && \ mkdir /oozie && \ cd /oozie && \ curl -fsSL https://archive.apache.org/dist/oozie/${OOZIE_VERSION}/apache-oozie-${OOZIE_VERSION}-distribution.tar.gz | tar xvz --strip-components=1 && \ rm -rf share/doc/* && \ sed -i 's|${name-node}|hdfs://namenode:8020|g' conf/hadoop-config.xml && \ sed -i 's|${job-tracker}|resourcemanager:8032|g' conf/hadoop-config.xml COPY entrypoint.sh / ENTRYPOINT ["/sbin/tini", "--", "/entrypoint.sh"] CMD ["catalina.sh", "run"] ``` 此 `Dockerfile` 创建了一个基于 OpenJDK 8 的基础映像,并安装了必要的软件包以及特定版本的 Apache Oozie 和 Hadoop[^1]。 #### 将 Oozie 应用于 Kubernetes 中 一旦有了可用的 Docker 映像之后,在生产环境中通常会考虑使用更高级别的调度框架如 Kubernetes 来管理这些容器实例。下面是一个简单的 YAML 文件例子,它描述了如何配置一个名为 oozie-deployment 的 Deployment 资源对象: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: oozie-deployment spec: replicas: 1 selector: matchLabels: app: oozie-server template: metadata: labels: app: oozie-server spec: containers: - name: oozie-container image: my-docker-repo/my-oozie-image:latest ports: - containerPort: 11000 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: oozie-service spec: type: NodePort selector: app: oozie-server ports: - port: 11000 targetPort: 11000 nodePort: 30001 ``` 上述清单文件定义了一组 Pod 实例(由副本控制器控制),每个 Pod 运行着之前构建好的 Oozie 容器;同时还暴露了一个服务端口以便外部访问该应用的服务接口。 #### 整合云服务平台资源 考虑到现代数据中心架构越来越倾向于采用混合或多云端策略,因此有必要探讨一下怎样让 Oozie 更好地适应这种趋势。对于 AWS 用户来说,可以通过 CloudFormation 模板自动化整个基础设施搭建过程,包括但不限于 VPC 设置、安全组规则制定等前置条件准备;而 Batch 或 SageMaker 则可用于执行批处理任务或是训练机器学习模型等工作流组件[^2]。 另外值得注意的是 PaaS 平台所提供的便捷特性——它们往往已经集成了多种常用中间件和服务选项,使得开发者能够专注于业务逻辑本身而不必过多关心底层细节问题。例如 Heroku 支持一键式部署流程简化操作难度;Azure DevOps Server 不仅能帮助团队高效协作完成 CI/CD 流水线建设工作,还提供了丰富的 API 接口方便二次开发定制需求[^3]。
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值