针对cdh的组件oozie适合apache版本的hadoop组件一起使用么

针对cdh的组件oozie适合apache版本的hadoop组件一起使用么,第1张

  CDH53 Oozie服务搭建

  编写人:胡旻 版本:V_05 修改时间:20150215(Oozie版本CDH53组件V400)

  版权所有转载请注明

  一Oozie简介

  Oozie是一个管理Hdoop作业(job)的工作流程调度管理服务。

  1 Oozie的工作流是一系列动作的直接周期图(Directed Acyclical Graphs)。这些动作是典型的Hadoop任务(MapReduce,Streaming, Pipes, Pig, Hive, Sqoop, etc)2 Oozie协调作业就是通过时间(频率)和有效数据触发当前的Oozie工作流程3 Oozie可以将一系列协调作业捆绑作为一个任务进行管理4 Oozie 是一个可扩展,数据感知的服务,允许你在Hadoop上使用运行一系列独立的任务二.软件包

  Oozie采用服务器客户端模式,对于安装Oozie有两种包选择,针对Oozie服务器(oozie)和客户端(oozie-client)的独立的RPM包。

  三.安装需求

  安装Oozie服务器需要满足

  1 操作系统的支持(如:支持CDH5的操作系统)2 Oracle JDK的支持

  3 如果不想用自带的derby还需要一个可以支持的数据库安装Oozie Client需要满足

  Oracle JDK的支持

  四.安装Oozie

  Oozie包含两个独立包;一个是客户端包(oozie-client)另一个是服务包(oozie)。选择你需要的合适的包进行安装。

  使用yum方式安装Oozie服务包

  $ sudo yum install oozie

  使用yum方式安装Oozie客户端包

  $ sudo yum install oozie-client

  五.配置Oozie

  1配置Hadoop任务的使用版本

  Oozie客户端不会和HadoopMapReduce任务进行直接的交互,所以其不需要任何MapReduce的设置Oozie服务能够对接使用MRv1或YARN,但是不能同时使用。

  文件类型

  安装路径

  二进制包

  /usr/lib/oozie/

  配置信息

  /etc/oozie/conf/

  文档

  /usr/share/doc/oozie-400+cdh530+334

  例子

  /usr/share/doc/oozie-400+cdh530+334

  数据

  /usr/share/doc/oozie-400+cdh530+334

  日志

  /var/log/oozie

  临时文件

  /var/tmp/oozie/

  PID文件

  /var/run/oozie/

  2 使用MySQL配置Oozie

  安装和启动mysql,使用mysql命令台工具,创建Oozie数据库和Oozie的mysql用户$ mysql -u root -p

  Enter password:

  mysql> create database oozie;

  Query OK, 1 row affected (003 sec)

  mysql> grant all privileges on oozie to 'oozie'@'localhost' identified by 'oozie';Query OK, 0 rows affected (003 sec)

  mysql> grant all privileges on oozie to 'oozie'@'%' identified by 'oozie';Query OK, 0 rows affected (003 sec)

  mysql> exit

  Bye

  3配置Oozie使用MySQL,编辑oozie-sitexml中属性文件如下,配置oozie-sitexml$ sudo vim /etc/oozie/conf/oozie-sitexml

  <property>

  <name>oozieserviceJPAServicejdbcdriver</name>

  <value>commysqljdbcDriver</value>

  </property>

  <property>

  <name>oozieserviceJPAServicejdbcurl</name>

  <value>jdbc:mysql://localhost:3306/oozie</value>

  </property>

  <property>

  <name>oozieserviceJPAServicejdbcusername</name>

  <value>oozie</value>

  </property>

  <property>

  <name>oozieserviceJPAServicejdbcpassword</name>

  <value>oozie</value>

  </property>

  

  4 添加MySQL JDBC 驱动包(JAR文件)给Oozie

  拷贝或软连接mysql的JDBC驱动JAR文件到/var/lib/oozie/ 文件夹5 建立Oozie数据库模式

  在设置完Oozie 数据库信息和创建相应的数据库,创建Oozie数据库模式,Oozie为这个目的提供了一个数据库工具运行Oozie数据库工具

  $ sudo -u oozie /usr/lib/oozie/bin/ooziedbsh create -run你应该看到以下输出

  Validate DB Connection

  DONE

  Check DB schema does not exist

  DONE

  Check OOZIE_SYS table does not exist

  DONE

  Create SQL schema

  DONE

  DONE

  Create OOZIE_SYS table

  DONE

  Oozie DB has been created for Oozie version '400-cdh530'

  The SQL commands have been written to: /tmp/ooziedb-5737263881793872034sql6 允许Oozie Web Console

  为了允许Oozie webconsole, 下载添加ExtJS库到 Oozie服务器步骤1:下载库

  从http//archiveclouderacom/gplextras/misc/ext-22zip下载ExtJS版本22库文件并将其放在合适的位置。

  步骤2:安装库文件

  提取文件ext-22zip并将其放在/var/lib/oozie下 并解压说明:1以前同事何敏在测试机上安装oozie 时,将ext-22zip直接放到该目录下即可。但是现在clouderamanger 中不行2 同事以前aparch 正式使用的ext-22zip 在cloueramanger 下放到/var/lib/oozie下,解压后也不能正常。后来网友世界提供的解压后正常步骤3 在Hadoop的HDFS上安装Oozie Shared Libraryoozie安装绑定了Oozie的分享库,包含了所有允许工作流任务运行的动作(streaming, DistCp, Pig, Hive, Sqoop)

  步骤4oozie安装绑定了两个共享库,一个是MRv1 另一个是 YARN。请确保你安装了合适你使用的MapReduce版本The shared library file for MRv1 isoozie-sharelib-mr1targz

  The shared library file for YARN isoozie-sharelib-yarntargz

  (我系统是运行在YARN上运行MapReduce,所以注意)$ sudo -u hdfs hadoop fs -mkdir /user/oozie$ sudo -u hdfs hadoop fs -chown oozie:oozie /user/oozie$ sudo oozie-setup sharelib create -fs <FS_URI> -locallib /usr/lib/oozie/oozie-sharelib-yarntargz其中FS_URI是文件系统HDFS URI分享库应该安装的位置(例如 hdfs://<HOST>:<PORT>)

  7 设置支持Oozie的Uber JARs

  为了使集群支持uber Jars我们设定oozie-sitexml以下属性

  <property>

  <name>oozieactionmapreduceuberjarenable</name>

  <value>true</value>

  

  六 启动、停止和访问Oozie

  1启动Oozie服务器

  $ sudo service oozie start

  如果能看见消息Oozie系统ID[oozie-oozie] 开始在oozielog日志文件中,说明系统已经成功开始2停止Oozie服务器

  $ sudo service oozie stop

  3通过Oozie客户端访问Oozie服务器

  Oozie客户端是一个命令行单元可以通过Oozieweb-services API和Oozie 服务器进行交互$ oozie admin -oozie http//localhost:11000/oozie -statusSystem mode: NORMAL

  为了方便使用这个组件,设置环境变量OOZIE_URL指向Oozie服务器的URL后续你能跳过-oozie 选项$ export OOZIE_URL=http//localhost:11000/oozie$ oozie admin -version

  Oozie server build version: 400-cdh5304通过Web浏览器访问Oozie服务器

  如果你添加了ExtJS库,允许了Oozie web控制台,你可以通过http//<OOZIE_HOSTNAME>:11000/oozie

  oozie is not allowed to impersonate oozie问题的解决在主控节点(NameNode和ResourceManage)中修改hdfs-sitexml文件添加如下属性<!-- OOZIE -->

  <property>

  <name>hadoopproxyuserooziehosts</name>

  <value></value>

  </property>

  <property>

  <name>hadoopproxyuserooziegroups</name>

  <value></value>

  </property>

  <!-- -->

  然后更新

  主控节点:NameNode

  hdfs dfsadmin -fs hdfs://hcdream1:8020 -refreshSuperUserGroupsConfigurationhdfs dfsadmin -fs hdfs://hcdream2:8020 –refreshSuperUserGroupsConfiguration主控节点:ResourceManager

  yarn rmadmin -refreshSuperUserGroupsConfiguration

1如何使得apache监听在特定的端口

修改httpdconf里面有关Listen的选项,例如:

Listen 8000

是使apache监听在8000端口

而如果要同时指定监听端口和监听地址,可以使用:

Listen 19217021:80

Listen 19217025:8000

这样就使得apache同时监听在19217021的80端口和19217025的8000端口

当然也可以在httpdconf里面设置:

Port 80

这样来实现类似的效果

2apache中如何限制http请求

消息主体的大小

在httpdconf里面设置:

LimitRequestBody n

n是整数单位是byte

cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理所以现在消息主体的大小在使用cgi的时候很有用比如使用cgi来上传文件,如果有设置:

LimitRequestBody 102400

那么上传文件超过100k的时候就会报错

3如何使得apache对客户端进行域名验证

可以在httpdconf里面设置:

HostnameLookups on|off|double

如果是使用on,那么只有进行一次反查,如果用double,那么进行反查的后还要进行次正向解析,只有两次的结果互相符合才行,而off就是不进行域名验证

如果为了安全,建议使用double;为了加快访问速度,建议使用off

4如何在apache中设置session持续时间

在apache12以上的版本中,可以在httpdconf里面设置:

KeepAlive on

KeepAliveTimeout 15

这样就能限制每个session的保持时间是15秒session的使用可以使得很多请求都可以通过同个tcp连接来发送,节约了网络资源和系统资源

5如何使得apache只监听在特定的ip

修改httpdconf,在里面使用

BindAddress 19216801

这样就能使得apache只监听外界对19216801的http请求如果使用:

BindAddress

就表明apache监听所有网络接口上的http请求

当然用防火墙也可以实现

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 针对cdh的组件oozie适合apache版本的hadoop组件一起使用么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情