云服务器内容精选

  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“Loader”按钮,将其拖到操作区中。 在弹出的“Loader”窗口中配置“Job id”的值,例如“1”。然后单击“添加”。 “Job id”是需要编排的Loader作业的ID值,可从Loader页面获取。 创建需要调度的Loader作业,并获取该作业ID,具体操作请参见使用Loader相关章节。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Loader-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • Oozie作业执行失败常用排查手段 根据任务在Yarn上的任务日志排查,首先把实际的运行任务,比如Hive SQL通过beeline运行一遍,确认Hive无问题。 出现“classnotfoundException”等报错,排查“/user/oozie/share/lib”路径下各组件有没有报错的类的Jar包,如果没有,添加Jar包并执行HDFS上更新了Oozie的share lib目录但没有生效。如果执行了更新“share lib”目录依然报找不到类,那么可以查看执行更新“share lib”的命令打印出来的路径“sharelibDirNew”是否是“ /user/oozie/share/lib”, 一定不能是其他目录。 出现NosuchMethodError,排查“/user/oozie/share/lib”路径下各组件的Jar包是不是有多个版本,注意业务本身上传的Jar包冲突,可通过Oozie在Yarn上的运行日志打印的加载的Jar包排查是否有Jar包冲突。 自研代码运行异常,可以先运行Oozie的自带样例,排除Oozie自身的异常。 寻求技术人员的支持,需要收集Yarn上Oozie任务运行日志、Oozie自身的日志及组件的运行的日志,例如使用Oozie运行Hive报异常,需收集Hive的日志。 父主题: Oozie常见问题
  • 前提条件 Oozie组件及客户端已经安装,并且正常运行。 已创建或获取访问Oozie服务的人机用户账号及密码。 Shell任务: 该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并确保Shell脚本在每个nodemanager节点都有执行权限。 SSH任务: 该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并完成互信配置。 其他任务: 该用户需要从属于hadoop、supergroup组,添加Oozie的角色操作权限,并具备对应任务类型所需的权限。 用户同时还需要至少manager_viewer权限的角色。 获取运行状态的Oozie服务器(任意实例)URL,如“https://10.1.130.10:21003/oozie”。 获取运行状态的Oozie服务器主机名,如“10-1-130-10”。 获取Yarn ResourceManager主节点IP,如10.1.130.11。
  • 操作步骤 以客户端安装用户,登录安装Oozie客户端的节点。 执行以下命令,获取安装环境信息。其中“/opt/client”为客户端安装路径,该操作的客户端目录只是举例,请根据实际安装目录修改。 source /opt/client/bigdata_env 判断集群认证模式。 安全模式,执行kinit命令进行用户认证。 例如,使用oozieuser用户进行认证。 kinit oozieuser 普通模式,执行4。 根据提交任务类型,进入对应样例目录。 表1 样例目录列表 任务类型 样例目录 Mapreduce任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/map-reduce Java任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/java-main Shell任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/shell Streaming任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/streaming SubWorkflow任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/subwf SSH任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/ssh 定时任务 客户端安装目录/Oozie/oozie-client-*/examples/apps/cron 其他任务样例中已包含HDFS任务样例。 样例目录下需关注文件如表2所示。 表2 文件说明 文件名称 描述 job.properties 工作流的参数变量定义文件。 workflow.xml 工作流的规则定制文件。 lib 工作流运行依赖的jar包目录。 coordinator.xml “cron”目录下存在,定时任务配置文件,用于设置定时策略。 oozie_shell.sh “shell”目录下存在,提交Shell任务需要的Shell脚本文件。 执行以下命令,编辑“job.properties”文件。 vi job.properties 修改如下内容: 更改“userName”的参数值为提交任务的人机用户名,例如“userName=oozieuser”。 执行oozie job命令,运行工作流文件。 oozie job -oozie https://oozie角色的主机名:21003/oozie -config job.properties文件所在路径 -run 例如: oozie job -oozie https://10-1-130-10:21003/oozie -config /opt/client/Oozie/oozie-client-*/examples/apps/map-reduce/job.properties -run 命令参数解释如下: -oozie 实际执行任务的Oozie服务器URL -config 工作流属性文件 -run 运行工作流 执行完工作流文件,显示job id表示提交成功,例如:job: 0000021-140222101051722-oozie-omm-W。登录Oozie管理页面,查看运行情况。 使用oozieuser用户,登录Oozie WebUI页面:https://oozie角色的ip地址:21003/oozie 。 Oozie的WebUI界面中,可在页面表格根据jobid查看已提交的工作流信息。
  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“HiveServer2 脚本”按钮,将其拖到操作区中。 在弹出的“HiveServer2 Script”窗口中配置HDFS上的脚本路径,例如“/user/admin/examples/apps/hive2/script.q”,然后单击“添加”。 单击“参数+”,添加输入输出参数。 例如输入参数为“INPUT=/user/admin/examples/input-data/table”,输出参数为“OUTPUT=/user/admin/examples/output-data/hive2_workflow”。 单击右上角的配置按钮。在打开的配置界面中,单击“删除+”,添加删除目录,例如“/user/admin/examples/output-data/hive2_workflow”。 配置“作业 XML”,值为“客户端安装目录/Oozie/oozie-client-*/examples/apps/hive/hive-site.xml”上传至HDFS目录中所在路径,例如“/user/admin/examples/apps/hive2/hive-site.xml”。HiveServer2 URL”及其他参数无需配置。 如果以上的参数和值在使用过程中发生了修改,可在“Oozie客户端安装目录/oozie-client-*/conf/hive-site.xml”文件中查询。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Hive2-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“子Workflow”按钮,将其拖到操作区中。 在弹出的“Sub workflow”窗口中配置“Sub-workflow”的值,例如从下拉列表中选取“Java-Workflow”(这个值是已经创建好的工作流之一),然后单击“添加”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“Subworkflow-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 参数解释 “coordinator.xml”中包含的各参数及其含义,请参见表1。 表1 参数含义 参数 含义 frequency 流程定时执行的时间间隔 start 定时流程任务启动时间 end 定时流程任务终止时间 workflowAppUri Workflow流程任务在HDFS上的存放路径 resourceManager MapReduce ResourceManager地址 queueName 任务处理时使用的MapReduce队列名 nameNode HDFS NameNode集群地址 “${变量名}”表示:该值来自job.properties所定义。 例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见配置Oozie作业运行参数)
  • 参数解释 “coordinator.xml”中包含的各参数及其含义,请参见表1。 表1 参数含义 参数 含义 frequency 流程定时执行的时间间隔 start 定时流程任务启动时间 end 定时流程任务终止时间 workflowAppUri Workflow流程任务在HDFS上的存放路径 resourceManager MapReduce ResourceManager地址 queueName 任务处理时使用的MapReduce队列名 nameNode HDFS NameNode集群地址 “${变量名}”表示:该值来自“job.properties”所定义。 例如:${nameNode}表示的就是“hdfs://hacluster”。(可参见配置Oozie作业运行参数)
  • Oozie Java接口介绍 Java API主要由org.apache.oozie.client.OozieClient提供。 表1 接口介绍 方法 说明 public String run(Properties conf) 运行job public void start(String jobId) 启动指定的job public String submit(Properties conf) 提交job public void kill(String jobId) 删除指定的job public void suspend(String jobId) 暂停指定的job public void resume(String jobId) 恢复指定的job public WorkflowJob getJobInfo(String jobId) 获取job信息 父主题: 常用Oozie API接口介绍
  • 操作步骤 在Windows本地运行程序,需要配置https ssl证书。 登录集群任意节点,进入如下目录下载ca.crt文件。 cd ${BIGDATA_HOME}/om-agent_8.1.0.1/nodeagent/security/cert/subcert/certFile/ 将ca.crt文件下载到本地,以管理员的身份打开cmd。 输入如下命令: keytool -import -v -trustcacerts -alias ca -file "D:\xx\ca.crt" -storepass changeit -keystore "%JAVA_HOME%\jre\lib\security\cacerts" 其中“D:\xx\ca.crt”是实际ca.crt文件存放路径;“%JAVA_HOME% ”为JDK安装路径。 在开发环境中(例如IDEA中),右击OozieRestApiMain.java,单击“Run 'OozieRestApiMain.main()'”运行对应的应用程序工程。 使用Oozie客户端执行以下命令运行样例程序: oozie job -oozie https://Oozie业务IP:21003/oozie -config job.properties -run 其中需要提前将待使用样例工程目录“src\main\resources”中的“job.properties”文件复制到Oozie客户端所在目录。
  • 前提条件 HDFS和Oozie组件安装完成且运行正常,客户端安装成功。 如果当前客户端为旧版本,需要重新下载和安装客户端。 已创建或获取访问Oozie服务的人机用户账号及密码。 该用户需要从属于hadoop、supergroup、hive组,同时添加Oozie的角色操作权限。如果使用Hive多实例,该用户还需要从属于具体的Hive实例组,如hive3。 用户同时还需要至少有manager_viewer权限的角色。
  • 操作步骤 以客户端安装用户,登录安装Oozie客户端的节点。 执行以下命令,获取安装环境信息。其中“/opt/client”为客户端安装路径,该操作的客户端目录只是举例,请根据实际安装目录修改。 source /opt/client/bigdata_env 判断集群认证模式。 安全模式,执行kinit命令进行用户认证。 例如,使用oozieuser用户进行认证。 kinit oozieuser 普通模式,执行4。 执行以下命令,进入样例目录。 cd /opt/client/Oozie/oozie-client-*/examples/apps/sqoop/ 该目录下需关注文件如表1所示。 表1 文件说明 文件名称 描述 job.properties 工作流的参数变量定义文件。 workflow.xml 工作流的规则定制文件。 执行以下命令,编辑“job.properties”文件。 vi job.properties 修改如下内容: 更改“userName”的参数值为提交任务的人机用户名,例如“userName=oozieuser”。 执行以下命令,编辑“workflow.xml”文件。 vi workflow.xml 修改如下内容: “command”的值修改为需要调度的已有Loader作业ID,例如1。 将“workflow.xml”文件上传至 "job.properties" 文件中的HDFS路径。 hdfs dfs -put -f workflow.xml /user/userName/examples/apps/sqoop 执行oozie job命令,运行工作流文件。 oozie job -oozie https://oozie角色的主机名:21003/oozie/ -config job.properties -run 命令参数解释如下: -oozie 实际执行任务的Oozie服务器URL -config 工作流属性文件 -run 运行工作流 执行完工作流文件,显示job id表示提交成功,例如:job: 0000021-140222101051722-oozie-omm-W。登录Oozie管理页面,查看运行情况。 使用oozieuser用户,登录Oozie WebUI页面:https://oozie角色的ip地址:21003/oozie 。 Oozie的WebUI界面中,可在页面表格根据jobid查看已提交的工作流信息。
  • 前提条件 Loader和Oozie组件及客户端已经安装,并且正常运行。 已创建或获取访问Oozie服务的人机用户账号及密码。 该用户需要从属于hadoop、supergroup、hive组,同时添加Oozie的角色操作权限。如果使用Hive多实例,该用户还需要从属于具体的Hive实例组,如hive3。 用户同时还需要至少有manager_viewer权限的角色。 获取运行状态的Oozie服务器(任意实例)URL,如“https://10.1.130.10:21003/oozie”。 获取运行状态的Oozie服务器主机名,如“10-1-130-10”。 获取Yarn ResourceManager主节点IP,如10.1.130.11。 创建需要调度的Loader作业,并获取该作业ID。
  • 操作步骤 在外部节点上确保连接SSH时使用的用户存在,且该用户“~/.ssh”目录存在。 使用omm用户登录Oozie所在节点,查看“~/.ssh/id_rsa.pub”文件是否存在。 是,执行3。 否,执行以下命令生成公私钥: ssh-keygen -t rsa 以omm用户登录oozie实例所在节点,执行以下命令配置互信: ssh-copy-id -i ~/.ssh/id_rsa.pub 运行SSH任务的用户@运行SSH任务的节点的IP地址 执行该命令后需要输入运行SSH任务的用户的密码。 Shell所在节点(外部节点)的账户需要有权限执行Shell脚本并对于所有Shell脚本里涉及到的所有目录文件有足够权限。 如果Oozie具有多个节点,需要在所有Oozie节点执行2~3。 使用omm用户登录依次其他Oozie所在节点,重复执行2-3。
  • 前提条件 已安装Oozie、ZooKeeper服务,且服务正常运行。 没有任务正在运行。 如果当前集群不是安装最新的版本包,需要从“$BIGDATA_HOME/ FusionInsight _Porter_x.x.x/install/FusionInsight-Oozie-x.x.x/oozie-x.x.x/embedded-oozie-server/webapp/WEB-INF/lib”路径复制“curator-x-discovery-x.x.x.jar”包到“$BIGDATA_HOME/FusionInsight_Porter_x.x.x/install/FusionInsight-Oozie-x.x.x/oozie-x.x.x/lib”目录下。