Oozie安装部署

本文档详细介绍了Oozie的安装与配置步骤,包括下载oozie包、解压安装包、配置Hadoop版本、设置数据库连接及执行安装脚本等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[size=large]1.oozie包的下载[/size]
3.0.*版本或者之前的版本是可以离线安装的(例如oozie-3.0.2-distro.tar.gz),在往上的版本(例如
oozie-3.3.2-distro.tar.gz和oozie-4.0.0-distro.tar.gz等)都是在线安装的版本,需要用到MAVEN工具,在安装过程中可能会碰到依赖问题,可以修改相关的POM文件。
[size=large]2.解压相关tar包[/size]
tar -xzvf oozie-3.3.2-distro.tar.gz
[size=large]3. 进入到解压好的目录下面,编辑 bin/addtowar.sh文件,修改相应的hadoop版本支持,4.0.0可以不用修改。[/size]
if [ "${version}" = "0.20.1" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar"
elif [ "${version}" = "0.20.2" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar"
elif [ "${version}" = "0.20.104" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar:jackson-core-asl-*.jar:jackson-mapper-asl-*.jar"
elif [ "${version}" = "1.2.1" ]; then
#List is separated by ":"
hadoopJars="hadoop*core*.jar:jackson-core-asl-*.jar:jackson-mapper-asl-*.jar:commons-configuration-*.jar"
修改成需要匹配的hadoop版本
[size=large]4. 修改conf/oozie-site.xml文件中的数据库配置,修改相关JPAService选项,也可不修改,使用自带的derby数据库。[/size]
<property>
<name>oozie.service.JPAService.create.db.schema</name>
<value>true</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.url</name>
<value>jdbc:mysql://192.168.9.156:3306/oozie</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.username</name>
<value>oozie</value>
</property>
<property>
<name>oozie.service.JPAService.jdbc.password</name>
<value>oozie</value>
</property>
[size=large]5.在oozie-3.3.2下新建文件夹libext,将mysql驱动包放入其中[/size]
[size=large]6. oozie-3.3.2下执行./bin/oozie-setup.sh -hadoop 1.2.1 ${HADOOP_HOME} -extjs ../ext-2.2.zip,命令会拷贝hadoop、ext相应的包到oozie的war中,4.4.0的版本是把相关的hadoop、ext包拷贝到libext下,
执行./bin/oozie-setup.sh prepare-war 命令即可 [/size]
[size=large]7.启动oozie
./bin/oozie-run.sh 或者用 ./bin/oozied.sh run[/size]
在浏览器中查看 http://namenode:11000/oozie 看到相关页面则表示安装成功
如果在访问过程中报访问拒绝异常,查看hadoop conf/core-site.xml文件是否有以下内容
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>namenode</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>hadoop</value>
</property>
### 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 OozieHadoop[^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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值