Merge "Add MapR core 5.2"

This commit is contained in:
Jenkins 2016-09-07 14:07:20 +00:00 committed by Gerrit Code Review
commit 09ffd1ac2c
6 changed files with 141 additions and 0 deletions

View File

@ -0,0 +1,3 @@
---
features:
- MaR 5.2.0 is supported in MapR plugin.

View File

@ -38,6 +38,7 @@ class MapRPlugin(p.ProvisioningPluginBase):
return {
'plugin_labels': {'enabled': {'status': True}},
'version_labels': {
'5.2.0.mrv2': {'enabled': {'status': True}},
'5.1.0.mrv2': {'enabled': {'status': True}},
'5.0.0.mrv2': {'enabled': {'status': False},
'deprecated': {'status': True}}

View File

@ -202,8 +202,15 @@ class Hue(s.Service):
}
remote.execute_command(cmd % args, run_as_root=True, timeout=600)
def hue_syncdb_workround(remote):
cmd = 'printf "/opt/mapr/lib\n$JAVA_HOME/jre/lib/amd64/server\n"' \
' | tee /etc/ld.so.conf.d/mapr-hue.conf && ldconfig'
remote.execute_command(cmd, run_as_root=True)
with hue_instance.remote() as r:
LOG.debug("Executing Hue database migration")
# temporary workaround to prevent failure of db migrate on mapr 5.2
hue_syncdb_workround(r)
migrate_database(r, cluster_context)
self._copy_hive_configs(cluster_context, hue_instance)
self._install_jt_plugin(cluster_context, hue_instance)

View File

@ -0,0 +1,60 @@
# Copyright (c) 2015, MapR Technologies
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import sahara.plugins.mapr.base.base_cluster_context as bc
import sahara.plugins.mapr.services.yarn.yarn as yarn
class Context(bc.BaseClusterContext):
def __init__(self, cluster, version_handler, added=None, removed=None):
super(Context, self).__init__(cluster, version_handler, added, removed)
self._hadoop_version = yarn.YARNv270().version
self._hadoop_lib = None
self._hadoop_conf = None
self._cluster_mode = yarn.YARNv270.cluster_mode
self._node_aware = True
self._resource_manager_uri = "maprfs:///"
self._mapr_version = "5.2.0"
self._ubuntu_ecosystem_repo = (
"http://package.mapr.com/releases/ecosystem-5.x/ubuntu binary/")
self._centos_ecosystem_repo = (
"http://package.mapr.com/releases/ecosystem-5.x/redhat")
@property
def hadoop_lib(self):
if not self._hadoop_lib:
self._hadoop_lib = "%s/share/hadoop/common" % self.hadoop_home
return self._hadoop_lib
@property
def hadoop_conf(self):
if not self._hadoop_conf:
self._hadoop_conf = "%s/etc/hadoop" % self.hadoop_home
return self._hadoop_conf
@property
def resource_manager_uri(self):
return self._resource_manager_uri
@property
def configure_sh(self):
if not self._configure_sh:
configure_sh_template = "%(base)s -HS %(history_server)s"
args = {
"base": super(Context, self).configure_sh,
"history_server": self.get_historyserver_ip(),
}
self._configure_sh = configure_sh_template % args
return self._configure_sh

View File

@ -0,0 +1,70 @@
# Copyright (c) 2015, MapR Technologies
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import sahara.plugins.mapr.base.base_version_handler as bvh
from sahara.plugins.mapr.services.drill import drill
from sahara.plugins.mapr.services.flume import flume
from sahara.plugins.mapr.services.hbase import hbase
from sahara.plugins.mapr.services.hive import hive
from sahara.plugins.mapr.services.httpfs import httpfs
from sahara.plugins.mapr.services.hue import hue
from sahara.plugins.mapr.services.impala import impala
from sahara.plugins.mapr.services.mahout import mahout
from sahara.plugins.mapr.services.management import management as mng
from sahara.plugins.mapr.services.maprfs import maprfs
from sahara.plugins.mapr.services.oozie import oozie
from sahara.plugins.mapr.services.pig import pig
from sahara.plugins.mapr.services.sentry import sentry
from sahara.plugins.mapr.services.spark import spark
from sahara.plugins.mapr.services.sqoop import sqoop2
from sahara.plugins.mapr.services.swift import swift
from sahara.plugins.mapr.services.yarn import yarn
import sahara.plugins.mapr.versions.v5_2_0_mrv2.context as c
version = "5.2.0.mrv2"
class VersionHandler(bvh.BaseVersionHandler):
def __init__(self):
super(VersionHandler, self).__init__()
self._version = version
self._required_services = [
yarn.YARNv270(),
maprfs.MapRFS(),
mng.Management(),
oozie.Oozie(),
]
self._services = [
hive.HiveV12(),
pig.PigV015(),
impala.ImpalaV250(),
flume.FlumeV16(),
sqoop2.Sqoop2(),
mahout.MahoutV012(),
oozie.OozieV420(),
hue.HueV390(),
hbase.HBaseV111(),
drill.DrillV16(),
yarn.YARNv270(),
maprfs.MapRFS(),
mng.Management(),
httpfs.HttpFS(),
swift.Swift(),
sentry.SentryV16(),
spark.SparkOnYarnV161(),
]
def get_context(self, cluster, added=None, removed=None):
return c.Context(cluster, self, added, removed)