本文为您介绍如何查看环境变量和启停E-MapReduce集群服务进程等,以便于您可以自主的运维服务。

前提条件

已创建集群,详情请参见创建集群

查看环境变量

  1. 登录集群,详情请参见登录集群
  2. 输入env命令。
    您可以看到类似如下的环境变量配置,具体环境变量配置以实际环境为准。
    PRESTO_HOME=/usr/lib/presto-current
    TEZ_CONF_DIR=/etc/ecm/tez-conf
    HUDI_HOME=/usr/lib/hudi-current
    XDG_SESSION_ID=35918
    SPARK_HOME=/usr/lib/spark-current
    HOSTNAME=emr-header-1.cluster-23****
    HADOOP_LOG_DIR=/var/log/hadoop-hdfs
    SMARTDATA_CONF_DIR=/usr/lib/b2smartdata-current//conf
    ECM_AGENT_STACK_CACHE_DIR=/usr/lib/emr/ecm-agent/cache/ecm
    TERM=xterm
    SHELL=/bin/bash
    HUE_CONF_DIR=/etc/ecm/hue-conf
    HADOOP_HOME=/usr/lib/hadoop-current
    FLOW_AGENT_CONF_DIR=/etc/ecm/flow-agent-conf
    HISTSIZE=1000
    YARN_PID_DIR=/usr/lib/hadoop-current/pids
    ECM_AGENT_CACHE_DIR=/usr/lib/emr/ecm-agent/cache
    SSH_CLIENT=1.80.**.** 26289 22
    HADOOP_PID_DIR=/usr/lib/hadoop-current/pids
    EMR_HOME_DIR=/usr/lib/emr
    HADOOP_MAPRED_PID_DIR=/usr/lib/hadoop-current/pids
    SQOOP_CONF_DIR=/etc/ecm/sqoop-conf
    SQOOP_HOME=/usr/lib/sqoop-current
    BIGBOOT_MONITOR_HOME=/usr/lib/b2monitor-current/
    HCAT_HOME=/usr/lib/hive-current/hcatalog
    DATA_FACTORY_CONF_PATH=/etc/ecm/datafactory-conf
    HIVE_HOME=/usr/lib/hive-current
    PWD=/root
    JAVA_HOME=/usr/lib/jvm/java-1.8.0
    EMR_DATA_DIR=/usr/lib/emr/data
    B2MONITOR_CONF_DIR=/usr/lib/b2monitor-current//conf
    HISTCONTROL=ignoredups
    SPARK_PID_DIR=/usr/lib/spark-current/pids
    SHLVL=1
    HOME=/root
    HADOOP_MAPRED_LOG_DIR=/var/log/hadoop-mapred
    ALLUXIO_CONF_DIR=/etc/ecm/alluxio-conf
    ECM_AGENT_LOG_DIR=/usr/lib/emr/ecm-agent/log
    TEZ_HOME=/usr/lib/tez-current
    DATA_FACTORY_HOME=/usr/lib/datafactory-current
    LOGNAME=root
    EMR_LOG_DIR=/usr/lib/emr/log
    EMR_TMP_DIR=/usr/lib/emr/tmp
    XDG_RUNTIME_DIR=/run/user/0
    ECM_AGENT_HOME_DIR=/usr/lib/emr/ecm-agent
    B2SDK_CONF_DIR=/usr/lib/b2smartdata-current/conf
    HIVE_CONF_DIR=/etc/ecm/hive-conf
    _=/usr/bin/env

登录内置MySQL

  1. 通过SSH方式连接集群,详情请参见登录集群
  2. 执行以下命令,登录内置的MySQL。
    mysql -uroot -pEMRroot1234
    说明 登录内置MySQL的用户名为root,密码为EMRroot1234。

启停服务进程

您可以在E-MapReduce控制台,对指定服务执行启动、停止和重启操作。各个服务进程的操作类似,下面以HDFS为例,介绍如何启动、停止和重启emr-worker-1主机上的DataNode进程。

  1. 进入集群详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. 在左侧导航栏中,选择集群服务 > HDFS
  3. 单击部署拓扑页签。
    可以看到该集群中运行的服务进程列表。
  4. 操作emr-worker-1主机上的DataNode组件。
    1. 启动组件。
      1. 单击操作列的启动
      2. 执行集群操作对话框中,输入执行原因,单击确定
      3. 确认对话框中,单击确定

        刷新页面,您可以看到组件状态列从STOPPED变为STARTED

    2. 重启组件。
      1. 单击操作列的重启
      2. 执行集群操作对话框中,输入执行原因,单击确定
      3. 确认对话框中,单击确定

        刷新页面,您可以看到组件状态列从STOPPED变为STARTED

    3. 停止组件。
      1. 单击操作列的停止
      2. 执行集群操作对话框中,输入执行原因,单击确定
      3. 确认对话框中,单击确定

        刷新页面,您可以看到组件状态列从STARTED变为STOPPED

批量操作服务进程

本示例以HDFS为例,介绍如何重启所有实例上的DataNode进程。

  1. 进入集群详情页面。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
  2. 在左侧导航栏中,选择集群服务 > HDFS
  3. 单击部署拓扑页签。
    可以看到该集群中所有运行的服务进程列表。
  4. 选择右上角的操作 > 重启DataNode
    1. 执行集群操作对话框中,输入执行原因,单击确定
    2. 确认对话框中,单击确定
    重要 执行完滚动重启后,不能再执行非滚动重启,否则系统会报错。

通过命令行方式启停服务进程

  • YARN
    操作账号:hadoop
    • ResourceManager(Master节点)
      • 启动ResourceManager
        /usr/lib/hadoop-current/sbin/yarn-daemon.sh start resourcemanager
      • 停止ResourceManager
        /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop resourcemanager
    • NodeManager(Core节点)
      • 启动NodeManager
        /usr/lib/hadoop-current/sbin/yarn-daemon.sh start nodemanager
      • 停止NodeManager
        /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop nodemanager
    • JobHistoryServer(Master节点)
      • 启动JobHistoryServer
        /usr/lib/hadoop-current/sbin/mr-jobhistory-daemon.sh start historyserver
      • 停止JobHistoryServer
        /usr/lib/hadoop-current/sbin/mr-jobhistory-daemon.sh stop historyserver
    • WebProxyServer(Master节点)
      • 启动WebProxyServer
        /usr/lib/hadoop-current/sbin/yarn-daemon.sh start proxyserver
      • 停止WebProxyServer
        /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop proxyserver
  • HDFS
    操作账号:hdfs
    • NameNode(Master节点)
      • 启动NameNode
        /usr/lib/hadoop-current/sbin/hadoop-daemon.sh start namenode
      • 停止NameNode
        /usr/lib/hadoop-current/sbin/hadoop-daemon.sh stop namenode
    • DataNode(Core节点)
      • 启动DataNode
        /usr/lib/hadoop-current/sbin/hadoop-daemon.sh start datanode
      • 停止DataNode
        /usr/lib/hadoop-current/sbin/hadoop-daemon.sh stop datanode
  • Hive
    操作账号:hadoop
    • MetaStore(Master节点)
      //启动MetaStore,内存可以根据需要扩大。
      HADOOP_HEAPSIZE=512 /usr/lib/hive-current/bin/hive --service metastore >/var/log/hive/metastore.log 2>&1 &
    • HiveServer2(Master节点)
      //启动HiveServer2
      HADOOP_HEAPSIZE=512 /usr/lib/hive-current/bin/hive --service hiveserver2 >/var/log/hive/hiveserver2.log 2>&1 &
  • HBase
    操作账号:hdfs
    重要 需要选择了HBase服务才能使用如下的方式来启动,否则启动的时候会报错。
    • HMaster(Master节点)
      • 启动HMaster
        /usr/lib/hbase-current/bin/hbase-daemon.sh start master
      • 重启HMaster
        /usr/lib/hbase-current/bin/hbase-daemon.sh restart master
      • 停止HMaster
        /usr/lib/hbase-current/bin/hbase-daemon.sh stop master
    • HRegionServer(Core节点)
      • 启动HRegionServer
        /usr/lib/hbase-current/bin/hbase-daemon.sh start regionserver
      • 重启HRegionServer
        /usr/lib/hbase-current/bin/hbase-daemon.sh restart regionserver
      • 停止HRegionServer
        /usr/lib/hbase-current/bin/hbase-daemon.sh stop regionserver
    • ThriftServer(Master节点)
      • 启动ThriftServer
        /usr/lib/hbase-current/bin/hbase-daemon.sh start thrift -p 9099 >/var/log/hive/thriftserver.log 2>&1 &
      • 停止ThriftServer
        /usr/lib/hbase-current/bin/hbase-daemon.sh stop thrift
  • Hue

    操作账号:hadoop

    • 启动Hue
      su -l root -c "${HUE_HOME}/build/env/bin/supervisor >/dev/null 2>&1 &"
    • 停止Hue
      ps aux | grep hue     //查找到所的Hue进程。
      kill -9 huepid        //终止掉查找到的对应Hue进程。
  • Zeppelin

    操作账号:hadoop

    • 启动Zeppelin
      //内存可以根据需要扩大。
      su -l root -c "ZEPPELIN_MEM=\"-Xmx512m -Xms512m\" ${ZEPPELIN_HOME}/bin/zeppelin-daemon.sh start"
    • 停止Zeppelin
      su -l root -c "${ZEPPELIN_HOME}/bin/zeppelin-daemon.sh stop"
  • Presto

    操作账号:hdfs

    • PrestoServer(Master节点)
      • 启动PrestoServer
        /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/coordinator-config.properties start
      • 停止PrestoServer
        /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/coordinator-config.properties stop
    • PrestoServer(Core节点)
      • 启动PrestoServer
        /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/worker-config.properties start
      • 停止PrestoServer
        /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/worker-config.properties stop

通过命令行方式批量操作

当您需要对Core节点做统一操作时,可以通过脚本命令的方式。在EMR集群中,Master和所有Worker节点在hadoop和hdfs账号下是互通的。

例如,可以通过以下命令,对所有Core节点的NodeManage执行停止操作。本示例Core节点数为10。
for i in `seq 1 10`;do ssh emr-worker-$i /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop nodemanager;done