Ejemplo n.º 1
0
from sahara.plugins import context
import sahara.plugins.provisioning as p
from sahara.plugins import utils
from sahara_plugin_mapr.i18n import _
import sahara_plugin_mapr.plugins.mapr.domain.configuration_file as bcf
import sahara_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.util.event_log as el
import sahara_plugin_mapr.plugins.mapr.util.general as g
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

LOG = logging.getLogger(__name__)

CLDB = np.NodeProcess(name='cldb',
                      ui_name='CLDB',
                      package='mapr-cldb',
                      open_ports=[7222, 7220, 7221])
FILE_SERVER = np.NodeProcess(name='fileserver',
                             ui_name='FileServer',
                             package='mapr-fileserver',
                             open_ports=[])
NFS = np.NodeProcess(name='nfs',
                     ui_name='NFS',
                     package='mapr-nfs',
                     open_ports=[2049, 9997, 9998])


class MapRFS(s.Service):
    _CREATE_DISK_LIST = 'plugins/mapr/resources/create_disk_list_file.sh'
    _DISK_SETUP_CMD = '/opt/mapr/server/disksetup -F /tmp/disk.list'
    _DISK_SETUP_TIMEOUT = 600
Ejemplo n.º 2
0
# 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_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

FLUME = np.NodeProcess(name='flume',
                       ui_name='Flume',
                       package='mapr-flume',
                       open_ports=[])


class Flume(s.Service):
    def __init__(self):
        super(Flume, self).__init__()
        self._name = 'flume'
        self._ui_name = 'Flume'
        self._node_processes = [FLUME]
        self._validation_rules = [vu.at_least(1, FLUME)]


class FlumeV15(Flume):
    def __init__(self):
        super(FlumeV15, self).__init__()
Ejemplo n.º 3
0
# 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_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

SQOOP_2_SERVER = np.NodeProcess(name='sqoop2',
                                ui_name='Sqoop2-Server',
                                package='mapr-sqoop2-server',
                                open_ports=[12000])
SQOOP_2_CLIENT = np.NodeProcess(name='sqoop-client',
                                ui_name='Sqoop2-Client',
                                package='mapr-sqoop2-client')


class Sqoop2(s.Service):
    def __init__(self):
        super(Sqoop2, self).__init__()
        self._name = 'sqoop'
        self._ui_name = 'Sqoop2'
        self._version = '2.0.0'
        self._node_processes = [SQOOP_2_CLIENT, SQOOP_2_SERVER]
        self._validation_rules = [
            vu.exactly(1, SQOOP_2_SERVER),
Ejemplo n.º 4
0
# 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.utils as utils
import sahara_plugin_mapr.plugins.mapr.domain.configuration_file as bcf
import sahara_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.services.hbase.hbase as hbase
import sahara_plugin_mapr.plugins.mapr.services.hive.hive as hive
import sahara_plugin_mapr.plugins.mapr.services.sentry.sentry as sentry
import sahara_plugin_mapr.plugins.mapr.util.general as g
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

IMPALA_SERVER = np.NodeProcess(name='impalaserver',
                               ui_name='Impala-Server',
                               package='mapr-impala-server',
                               open_ports=[21000, 21050, 25000])
IMPALA_STATE_STORE = np.NodeProcess(name='impalastore',
                                    ui_name='Impala-Statestore',
                                    package='mapr-impala-statestore',
                                    open_ports=[25010])
IMPALA_CATALOG = np.NodeProcess(name='impalacatalog',
                                ui_name='Impala-Catalog',
                                package='mapr-impala-catalog',
                                open_ports=[25020])


class Impala(s.Service):
    def __init__(self):
        super(Impala, self).__init__()
        self._name = 'impala'
Ejemplo n.º 5
0
# 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_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

PIG = np.NodeProcess(name='pig', ui_name='Pig', package='mapr-pig')


class Pig(s.Service):
    def __init__(self):
        super(Pig, self).__init__()
        self._name = 'pig'
        self._ui_name = 'Pig'
        self._node_processes = [PIG]
        self._validation_rules = [vu.at_least(1, PIG)]


class PigV013(Pig):
    def __init__(self):
        super(PigV013, self).__init__()
        self._version = '0.13'
Ejemplo n.º 6
0
import sahara.plugins.utils as utils
import sahara_plugin_mapr.plugins.mapr.domain.configuration_file as bcf
import sahara_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.services.hbase.hbase as hbase
import sahara_plugin_mapr.plugins.mapr.services.hive.hive as hive
import sahara_plugin_mapr.plugins.mapr.util.general as g
import sahara_plugin_mapr.plugins.mapr.util.maprfs_helper as mfs
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

SPARK_SLAVE_UI_PORT = 8081
SPARK_HS_UI_PORT = 18080

SPARK_HISTORY_SERVER = np.NodeProcess(name='spark-historyserver',
                                      ui_name='Spark HistoryServer',
                                      package='mapr-spark-historyserver',
                                      open_ports=[SPARK_HS_UI_PORT])
SPARK_SLAVE = np.NodeProcess(name='spark-master',
                             ui_name='Spark Slave',
                             package='mapr-spark',
                             open_ports=[SPARK_SLAVE_UI_PORT])


class SparkOnYarn(s.Service):
    JAR_FILE_TARGET = '/apps/spark/lib'
    MFS_DIR = '/apps/spark'
    SERVLET_JAR = 'javax.servlet-api.jar'

    def __init__(self):
        super(SparkOnYarn, self).__init__()
        self._name = 'spark'
Ejemplo n.º 7
0
import sahara_plugin_mapr.plugins.mapr.services.mapreduce.mapreduce as mr
import sahara_plugin_mapr.plugins.mapr.services.mysql.mysql as mysql
import sahara_plugin_mapr.plugins.mapr.services.oozie.oozie as oozie
import sahara_plugin_mapr.plugins.mapr.services.sentry.sentry as sentry
import sahara_plugin_mapr.plugins.mapr.services.spark.spark as spark
import sahara_plugin_mapr.plugins.mapr.services.sqoop.sqoop2 as sqoop
import sahara_plugin_mapr.plugins.mapr.services.yarn.yarn as yarn
import sahara_plugin_mapr.plugins.mapr.util.event_log as el
import sahara_plugin_mapr.plugins.mapr.util.general as g
import sahara_plugin_mapr.plugins.mapr.util.password_utils as pu
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

LOG = logging.getLogger(__name__)

HUE = np.NodeProcess(name='hue',
                     ui_name='Hue',
                     package='mapr-hue',
                     open_ports=[8002, 8888])

HUE_LIVY = np.NodeProcess(name="livy",
                          ui_name="Hue Livy",
                          package="mapr-hue-livy",
                          open_ports=[8998])


class Hue(s.Service):
    THRIFT_VERSIONS = [5, 7]
    THRIFT_VERSION = p.Config(name="Thrift version",
                              applicable_target="Hue",
                              scope='cluster',
                              config_type="dropdown",
                              config_values=[(v, v) for v in THRIFT_VERSIONS],
Ejemplo n.º 8
0
# 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_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

KAFKA = np.NodeProcess(name='kafka',
                       ui_name='Kafka',
                       package='mapr-kafka',
                       open_ports=[9092])

KAFKA_REST = np.NodeProcess(name='kafka',
                            ui_name='Kafka Rest',
                            package='mapr-kafka-rest',
                            open_ports=[8082])

KAFKA_CONNECT_HDFS = np.NodeProcess(name='kafka',
                                    ui_name='Kafka Connect HDFS',
                                    package='mapr-kafka-connect-hdfs')

KAFKA_CONNECT_JDBC = np.NodeProcess(name='kafka',
                                    ui_name='Kafka Connect JDBC',
                                    package='mapr-kafka-connect-jdbc')
Ejemplo n.º 9
0
# 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.provisioning as p
import sahara.plugins.utils as utils
from sahara_plugin_mapr.i18n import _
import sahara_plugin_mapr.plugins.mapr.domain.configuration_file as cf
import sahara_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.services.mysql.mysql as mysql
import sahara_plugin_mapr.plugins.mapr.util.event_log as el
import sahara_plugin_mapr.plugins.mapr.util.maprfs_helper as mfs

SENTRY = np.NodeProcess(name='sentry', ui_name='Sentry', package='mapr-sentry')

SENTRY_MODE_CONFIG_NAME = 'Sentry storage mode'
FILE_STORAGE_SENTRY_MODE = 'File-base storage'
DB_STORAGE_SENTRY_MODE = 'DB-based storage'


class Sentry(s.Service):
    SENTRY_STORAGE_MODE = p.Config(
        name=SENTRY_MODE_CONFIG_NAME,
        applicable_target='Sentry',
        scope='cluster',
        config_type="dropdown",
        config_values=[
            (v, v) for v in (FILE_STORAGE_SENTRY_MODE, DB_STORAGE_SENTRY_MODE)
        ],
Ejemplo n.º 10
0
#
#       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_plugin_mapr.plugins.mapr.domain.configuration_file as bcf
import sahara_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

HBASE_MASTER = np.NodeProcess(name='hbmaster',
                              ui_name='HBase-Master',
                              package='mapr-hbase-master',
                              open_ports=[60000, 60010])
HBASE_REGION_SERVER = np.NodeProcess(name='hbregionserver',
                                     ui_name='HBase-RegionServer',
                                     package='mapr-hbase-regionserver',
                                     open_ports=[60020])
HBASE_THRIFT = np.NodeProcess(name='hbasethrift',
                              ui_name='HBase-Thrift',
                              package='mapr-hbasethrift',
                              open_ports=[9090])
HBASE_REST = np.NodeProcess(
    name="hbaserestgateway",
    ui_name="HBase REST",
    package="mapr-hbase-rest",
    open_ports=[8080, 8085],
)
Ejemplo n.º 11
0
import sahara.plugins.context as context
from sahara_plugin_mapr.i18n import _
import sahara_plugin_mapr.plugins.mapr.domain.configuration_file as bcf
import sahara_plugin_mapr.plugins.mapr.domain.node_process as np
import sahara_plugin_mapr.plugins.mapr.domain.service as s
import sahara_plugin_mapr.plugins.mapr.services.mysql.mysql as mysql
import sahara_plugin_mapr.plugins.mapr.util.event_log as el
import sahara_plugin_mapr.plugins.mapr.util.general as g
import sahara_plugin_mapr.plugins.mapr.util.validation_utils as vu

LOG = logging.getLogger(__name__)
OOZIE_START_DELAY = 30

OOZIE = np.NodeProcess(name='oozie',
                       ui_name='Oozie',
                       package='mapr-oozie',
                       open_ports=[11000])


class Oozie(s.Service):
    def __init__(self):
        super(Oozie, self).__init__()
        self._name = 'oozie'
        self._ui_name = 'Oozie'
        self._node_processes = [OOZIE]
        self._cluster_defaults = ['oozie-default.json']
        self._validation_rules = [vu.exactly(1, OOZIE)]
        self._ui_info = [('Oozie', OOZIE, {
            s.SERVICE_UI: 'http://%s:11000/oozie'
        })]