moonbox在hdp的基础上使用独立spark2.2安装遇到的问题记录

目录

前言

问题描述

moonbox的配置项说明

moonbox-evn.sh配置

moonbox-defaults.conf配置

slaves配置项

Spark2.2的安装及部署

spark-env.sh

spark-defaults.conf

slaves

遇到的问题


前言

使用CDH6.0.0搭建的集群环境,虽然默认选择的spark2.2,但是依然是无法直接使用moonbox,此spark2.2非apache原生2.2,是经过CDH重构过得,所以在对接moonbox的时候,总是有问题,后来使用了暂缓方案,通过替换jar的方式实现了moonbox的链接(参考这里),但是spark-shell不能使用,而且zeppline也不能正常使用。对于前期的技术调研和学习,使用这种方式可以凑合,但是如果真是到生产或者正式使用的时候,这样做肯定不妥。为了完美兼容moonbox,经过调研,最终选择使用Ambari进行集群环境的安装和管理,相关大数据组件选择使用HDP进行安装,HDP据说是使用的原生apache组件。

ps:开源未编译的使用的原生apache组件,但是编译好的hdp对应的相关组件并非是原生。

版本信息:

ambari-2.6.1.0/HDP-2.6.5.0

问题描述

按照预期设想,我们使用了HDP进行集群环境的搭建,使用的是原生的Spark2.2版本,照理说应该可以无缝对接moonbox了,但事实没有这么顺利,经过测试发现moonbox还是启动失败。经过和moonbox的研发人员进行沟通交流,确认可以自己单独部署一个spark2.2的环境,和HDP的spark共存,但是yarn还是使用一套。相关配置参考如下。

moonbox的配置项说明

moonbox-evn.sh配置

#JDK安装目录
export JAVA_HOME=/usr/java/jdk1.8.0_221
#spark的安装目录
export SPARK_HOME=/home/app/moonbox/spark/spark-2.2.0-bin-hadoop2.7
#yarn的conf目录(chd的可以在spark目录下找到,hdp的再hadoop-yarn目录下)
export YARN_CONF_DIR=/usr/hdp/2.6.4.0-91/hadoop-yarn/etc/hadoop
export MOONBOX_SSH_OPTS="-p 22"
#moonbox的安装目录
export MOONBOX_HOME=/home/app/moonbox
#master的主机名
export MOONBOX_MASTER_HOST=master
#master的对应moonbox通讯的端口
export MOONBOX_MASTER_PORT=2551

moonbox-defaults.conf配置

moonbox {
    deploy {
        catalog {
            implementation = "mysql"
            url = "jdbc:mysql://192.168.1.123:3306/moonbox?createDatabaseIfNotExist=true"
            user = "root"
            password = "tydic0815"
            driver = "com.mysql.jdbc.Driver"
        }
        rest {
            enable = true
            port = 9191
            request.timeout = "600s"
            idle.timeout= "600s"
        }
        tcp {
            enable = true
            port = 10010
        }
        timer {
            enable = true
        }
    }
    mixcal {
        pushdown.enable = true
        column.permission.enable = true
        spark.sql.cbo.enabled = true
        spark.sql.constraintPropagation.enabled = false
        spark.sql.catalogImplementation = "in-memory"



        cluster = [{
          #yarn所在主节点的主机名
          spark.hadoop.yarn.resourcemanager.hostname = "master"
          #这个8050端口在yarn-site.xml文件的yarn.resourcemanager.address配置项找到
          spark.hadoop.yarn.resourcemanager.address = "master:8050"
          #这个8020端口在hdfs-site.xml文件的dfs.namenode.rpc-address配置项找到
          spark.yarn.stagingDir = "hdfs://master:8020/tmp"
          spark.yarn.access.namenodes = "hdfs://master:8020"
          #下面两行配置是使用hdp安装的时候需要配置的项,指定hdp的版本,否则moonbox启动失败
          spark.driver.extraJavaOptions =  "-Dhdp.version=2.6.5.0-292"
          spark.executor.extraJavaOptions = "-Dhdp.version=2.6.5.0-292"
          spark.loglevel = "ERROR"
          spark.cores.max = 2
          spark.driver.memory = "512m"
          spark.driver.cores = 1
          spark.executor.instances = 2
          spark.executor.cores = 1
          spark.executor.memory = "2g"
        }]
    }
}

slaves配置项

master
slave1

以上配置好之后,拷贝整个安装包到对应指定的目录去就行了。

Spark2.2的安装及部署

如上配置,单独拷贝了一个spark2.2的安装包放到moonbox的目录中(非必须放置该位置),然后对spark2.2的相关参数进行配置和调整,如下:

(1)解压压缩包

(2)切换到conf目录下,执行以下命令

cp spark-env.sh.template spark-env.sh
cp spark-defaults.conf.template spark-defaults.conf
cp slaves.template slaves

(3)对以上三个配置文件进行调整

spark-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_221
export SCALA_HOME=/usr/share/scala
export HADOOP_HOME=/usr/hdp/2.6.4.0-91/hadoop
export HADOOP_CONF_DIR=/usr/hdp/2.6.4.0-91/hadoop/etc/hadoop

spark-defaults.conf

#8020就是hadoop的dfs.namenode.rpc-address配置项,这一项不要配置,否则出错。
#spark.yarn.jars=hdfs://master:8020/spark_jars/*

注意配置文件中注释,这是重点。单独列出这个配置项,是想说不要配置这个,不然会出现moonbox启动成功后,等几十秒就自动挂掉的情况。

slaves

master
slave1
slave2

遇到的问题

(1)启动报错,截图如下:

解决办法,拷贝这两个jar包放到spark的jars目录下。

(2)启动成功,但是在yarn上建立application失败,报错如下:

解决办法:
 
          spark.driver.extraJavaOptions =  "-Dhdp.version=2.6.4.0-91"
 
          spark.executor.extraJavaOptions = "-Dhdp.version=2.6.4.0-91"
 
这两行配置项到moonbox-defaults.conf配置文件的cluster配置项中,其中后面数字是dhp的版本号。
 
Dhdp.version的版本号确认,可以到hdp的安装目录去看,例如我在集群中的安装目录为/usr/hdp/2.6.4.0-91。
 
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值