`
qindongliang1922
  • 浏览: 2182338 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117467
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125858
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59865
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71252
社区版块
存档分类
最新评论

Bug死磕之hue集成的oozie+pig出现资源任务死锁问题

阅读更多


这两天,打算给现有的Apache Hadoop2.7.1的集群装个hue,方便业务人员使用hue的可视化界面,来做一些数据分析任务,这过程遇到不少问题,不过大部分最终都一一击破,收获经验若干,折腾的过程,其实也是一个学习的过程,一个历练的过程,我相信优秀的人,都是经历过无数磨难成就的,并且有着坚持不放弃的心态,迎接各种挑战,如果你总是遇到困难就放弃,那么你永远也不能成为最优秀的人,废话不多说了,下面开始进入正题:


框架版本如下:
Centos6.5
Apache Hadoop2.7.1
Apache Hbase0.98.12
Apache Hive1.2.1
Apache Pig0.15.0
Apache oozie4.2.0
Apache Spark1.6.0
Cloudrea Hue3.8.1

(一)安装hue

1,到官网下载   http://gethue.com/category/release/
2,解压到某个目录hue
3,安装依赖:yum install -y asciidoc cyrus-sasl-devel cyrus-sasl-gssapi gcc gcc-c++ krb5-devel  libtidy  libxml2-devel libxslt-devel make mysql mysql-devel openldap-devel python-devel   sqlite-devel openssl-devel  gmp-devel
4,进入hue目录,运行make apps编译
5,配置desktop/conf/hue.ini
6,启动build/env/bin/supervisor 杀死脚本(ps -ef | grep hue-  | gawk '{print $2}' | xargs kill -9)


如果你的hue只是用来操作hive的,那么没必要安装oozie了,那么整个流程就简单了,进入hive目录启动memstore和hiveserver2服务即可:
bin/hive --service metastore
bin/hiveserver2
一个使用hue查询的hive的查询如下:




很漂亮,用来调试sql非常方便,如果你想使用工作流或者pig功能,那么就需要安装oozie了
oozie安装编译比较坑,这里需要注意一下,目前最新的版本oozie的最新版本是4.2.0,但是依赖的
hive只支持0.13.1
hbase支持到0.94.2
spark,hadoop,pig均可支持当然最新版本
而且pom文件里面用到的codehash镜像已经失效,如果不去掉,则会编译失败:

 <repository>
            <id>Codehaus repository</id>
            <url>http://repository.codehaus.org/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>



(二) 安装oozie
1,下载oozie
wget  http://archive.apache.org/dist/oozie/4.2.0/oozie-4.2.0.tar.gz

2,解压至某个盘符,修改其根目录下的pom文件里面的pig(加载类是h2,代表hadoop2.x),hadoop,hbase,hive,spark等版本,hbase和hive使用最新的可能会编译失败,这一点需要注意,经测试hbase0.94.2和hive0.13.1可正常编译通过,

3,修改完毕后,执行编译
bin/mkdistro.sh -P hadoop-2 -DskipTests

mvn clean package assembly:single -P hadoop-2 -DskipTests
4,执行成功后,拷贝oozie-4.2.0/distro/target/oozie-4.2.0-distro.tar.gz 至安装目录,
具体请参考我的这篇文章:
http://qindongliang.iteye.com/blog/2212503


(三)在hue里面测试pig脚本:

写一个简单的pig脚本:





点击运行,发现oozie会启动两个任务,一个是launcher,一个pig脚本,lancher任务一直卡着95%进度,不再有任何变化,而主体的pig脚本,则一直在初始化阶段,不能被执行,看日志log无任何错误,就是一直打印
Heart beat
Heart beat
Heart beat
......

经过查资料,发现在集群小的时候,如果集群资源不充足,导致RM无法分配多个MR的资源,就会一直等待,然后整个任务就会处于假死状态,一直死锁不运行,其实就是多个MR任务,抢占资源,导致最后谁也运行不了造成的,如何解决?

方案一:
切换haodop集群默认使用的容量调度器为公平调度器,允许当前队列最多只能运行一个MR任务,多了就阻塞等待。
方案二:
切换haodop集群默认使用的容量调度器为公平调度器,创建多个队列把任务提交到不同的队列里面,避免资源抢占

 <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
  </property>


  <property>
  <name>yarn.scheduler.fair.allocation.file</name>
  <value>file:/%HADOOP_HOME%/etc/hadoop/fair-scheduler.xml</value>
</property>

fair-scheduler.xml配置:
<?xml version="1.0"?>
<allocations>
  <queue name="test">
    <minResources>1000 mb, 1 vcores</minResources>
    <maxResources>5000 mb, 1 vcores</maxResources>
    <maxRunningApps>1</maxRunningApps>
    <aclSubmitApps>webmaster</aclSubmitApps>
    <weight>2.0</weight>
    <schedulingPolicy>fair</schedulingPolicy>
    <queue name="test-sub">
        <aclSubmitApps>webmaster</aclSubmitApps>
        <minResources>500 mb, 1 vcores</minResources>
    </queue>
  </queue>
  <user name="root">
    <maxRunningApps>1</maxRunningApps>
  </user>
 <user name="webmaster">
    <maxRunningApps>1</maxRunningApps>
  </user>
<!--
  <user name="gpadmin">
    <maxRunningApps>5</maxRunningApps>
  </user>-->
  <userMaxAppsDefault>1</userMaxAppsDefault>
 <fairSharePreemptionTimeout>30</fairSharePreemptionTimeout>
</allocations>


关于hadoop的资源调度,请参考下面的链接:

https://support.pivotal.io/hc/en-us/articles/201999117-How-to-Configure-YARN-Capacity-Scheduler-on-a-PHD-Cluster


修改完成后同步分发所有的hadoop节点,并拷贝一份到oozie/conf/hadoop-conf/下面一份,重启hadoop集群和oozie服务,再次执行脚本,发现运行没有问题:






如果还想配置,solr,hbase,只要在hue.ini里面配置即可,注意hbase的服务,需要启动hbase的thrift端口才行,
bin/hbase-daemon.sh start thrift
然后在hue.ini里面配置: hbase_clusters=(Cluster|h1:9090),必须是这种格式,否则hue不会识别





配置solr比较简单,支持写上solr的url即可:





扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!




  • 大小: 52.2 KB
  • 大小: 20.6 KB
  • 大小: 48.3 KB
  • 大小: 42.1 KB
  • 大小: 29 KB
1
1
分享到:
评论

相关推荐

    大数据框架Sqoop+Flume+Oozie+Hue视频教程

    《大数据框架Sqoop+Flume+Oozie+Hue视频教程》Sqoop+Flume+Oozie+Hue整合大数据视频教程 经典之作 值得珍藏的大数据视频教程。

    大数据框架Sqoop+Flume+Oozie+Hue视频教程(59讲)

    大数据框架Sqoop+Flume+Oozie+Hue视频教程(59讲) 内含百度云地址

    hue平台oozie工作流操作sqoop,把mysql.pdf

    Oozie工作流由一系列的action节点组成,每个节点代表执行一个特定任务,比如Hadoop作业、Pig作业、Hive作业或者Sqoop任务等。 2. Sqoop工具的使用: Sqoop是一个开源工具,用于在Hadoop和关系数据库之间高效传输...

    Hue-oozie运行spark

    Hue是Cloudera开发的一个开源Web用户界面,主要用于与Hadoop集群进行交互。Hue可以用来运行Spark作业,提供了界面化的方式来编写和提交Spark工作流。接下来,我们将详细解读使用Hue编辑workflows提交Spark程序的过程...

    oozie+spark2结合

    在当今的大数据处理领域,Apache Oozie 是一个用于管理Hadoop作业的工作流调度系统,而 Apache Spark 是一个快速的分布式计算系统,它可以构建在Hadoop之上,用于数据处理。CDH(Cloudera's Distribution including ...

    maven,oozie,pig LINUX 环境搭建.docx

    ### Maven、Oozie、Pig在Linux环境下的搭建指南 #### Maven的安装与配置 1. **下载与解压Maven** 首先根据官方文档的要求下载Maven压缩包,并进行解压。确保下载的是适用于当前操作系统的版本。 2. **配置环境...

    Apache Hue 2小时轻松搞定大数据可视化终端视频教程

    第四章:Hue与RDBMS、Oozie、Impala集成 1.Hue配置集成RDBMS 2.Hue集成MySQL实战案例 3.Hue配置集成Oozie 4.Hue集成Oozie实战案例 5.Hue配置集成Hbase 6.Hue集成ThriftServer实战案例 7.Hue配置集成Impala-...

    Oozie大数据调度系统从入门到精通视频教程

    从零开始讲解大数据调度系统构成,集成大数据计算任务构建大数据工作流,基于Oozie构建实现企业级自动化任务开发 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为简,讲解...

    ext-2.2.zip

    根据描述中的关键词“Hue”和“Oozie”,我们可以推断这可能与Hue集成Oozie的工作流管理工具相关。Hue是Cloudera提供的一款开源Web界面,用于操作Hadoop生态系统中的各种服务,包括HDFS、HBase、Impala等。Oozie则是...

    Ambari2.7.4集成Hue4.6.0

    而 Hue 是一个开源的 Hadoop 用户界面系统,它允许用户通过浏览器进行数据处理和分析,如执行 HDFS 操作、MapReduce 任务、Hive 查询以及浏览 HBase 数据。 集成 Hue 4.6.0 到 Ambari 2.7.4 的过程是为 Hadoop 集群...

    hue-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm

    hue-3.9.0 rpm

    Hue 常见问题解决方案,大数据平台的hue/hive常见问题总结 免费下载

    Hue集成了多个大数据组件,如HDFS、Hive、Pig、Spark等,使得数据分析师和开发人员可以方便地进行数据浏览、查询和分析。本文将围绕“Hue常见问题解决方案”这一主题,详细阐述Hue与Hive在大数据平台中可能遇到的...

    oozie的控制台用ext依赖

    在IT行业中,Oozie是Apache Hadoop生态系统中的一个工作流调度系统,它用于管理和调度Hadoop相关的任务。Hue则是一个用户界面套件,旨在提供对Hadoop生态系统的友好操作界面,包括对Oozie的工作流进行可视化操作。当...

    EXT-2.2.zip Oozie的web界面安装所需要的包

    在Hadoop生态系统中,Oozie可以帮助用户协调和调度MapReduce、Pig、Hive、Sqoop等任务,提供了一种集中管理和监控工作流的方式。 描述中的"参考安装链接:http://blog.csdn.net/jethai/article/details/52345065"...

    Apache Hadoop---Oozie.docx

    Oozie 由Cloudera公司贡献给Apache社区,它是一个基于工作流引擎的系统,能够帮助用户自动化复杂的分布式任务流程。 Oozie 的核心特性包括: 1. 它是专门为Hadoop平台设计的,能够有效地管理和调度MapReduce、Pig、...

    大数据技术之CM6.3.1+CDH6.3.2配置Hue+Sentry权限管理.pdf

    大数据技术之CM6.3.1+CDH6.3.2配置Hue+Sentry权限管理 本文档主要介绍了CDH6.3.2配置Hue+Sentry权限管理的步骤,旨在帮助读者了解大数据技术中的权限管理机制。 一、Sentry概述 Sentry是Apache开源组件,提供了细...

    hue提交spark jar任务的使用文档

    ### Hue 提交 Spark Jar 任务使用指南 #### 前言 随着大数据处理需求的日益增长,Apache Hue 作为一款优秀的 Web 界面工具,在大数据生态中扮演着越来越重要的角色。它不仅支持 Hadoop 文件系统、Hive 数据库等操作...

    大数据Hue架构原理.pdf

    Hue组件包括HDFS、Hive、Solr、Impala、Spark、Pig、Oozie、Hbase、MR(MR1/MR2-Yarn)、Sqoop2、Zookeeper等,提供了一个完整的大数据解决方案。 Hue的使用 Hue提供了多种使用方式,包括文件浏览、Job浏览、Beeswax...

    hue-3.8.1.tgz

    5. **Oozie工作流**:Hue还提供了Oozie工作流设计器,用户可以创建、编辑和管理由各种Hadoop任务组成的工作流程,如MapReduce、Pig、Hive等。 6. **Solr搜索**:Hue支持配置和使用Solr搜索服务,允许用户在Hadoop...

Global site tag (gtag.js) - Google Analytics