ClouderaManager安装教程

Cloudera Manager安装教程

本人使用的是目前最新版的cdh-5.13,之前参考的网上的离线安装踩了不少坑还是没有跳出来。果断放弃,最后使用的是官方的Path B方法,中间也有不少坑,谢天谢地终于搞定了。

Path B方法主要参考了官网,有一些特别的问题本文不会描述,请大家自己去官网上去浏览。

安装环境说明

本人是在学校实验室自己搭的三台机器上进行安装,使用的ubuntu 14.04,内存 8g . hostname分别为ubuntu2,ubuntu4,ubuntu5, cloudera manager 安装在ubuntu5。 少说废话,直接开始!

ntp安装

集群环境使用ubuntu5的时间作为server时间

  • 1 ntp server 安装

    • ubuntu5机器上在线安装 sudo apt-get install ntp
    • 修改ntp配置文件 sudo vim /etc/ntp.conf,如下:

      driftfile /var/lib/ntp/ntp.drift
      server 127.127.1.0
      fudge 127.127.1.0 stratum 10
      broadcastdelay 0.08
      restrict -4 default kod notrap nomodify nopeer noquery
      restrict -6 default kod notrap nomodify nopeer noquery
      restrict 127.0.0.1
      restrict ::1
      restrict default nomodify notrap
      includefile /etc/ntp/crypto/pw
      keys /etc/ntp/keys
      
    • 重启ntp服务器 sudo /etc/init.d/ntp restart

    • 查看ntp运行状态 ntpq -p

  • 2 ntp client 安装

    • ubuntu2和ubuntu4在线安装 sudo apt-get install ntp
    • 修改ntp配置文件 sudo vim /etc/ntp.conf,如下:

      driftfile /var/lib/ntp/ntp.drift
      server ubuntu5
      restrict -4 default kod notrap nomodify nopeer noquery
      restrict -6 default kod notrap nomodify nopeer noquery
      restrict 127.0.0.1
      restrict ::1
      
    • 重启ntp服务器 sudo /etc/init.d/ntp restart

    • 查看ntp运行状态 ntpq -p

mysql安装

  • 1 ubuntu5上安装mysql数据库 sudo apt-get install mysql-server
  • 2 更改mysql配置文件,cloudera manager需要使用innodb引擎

    • 关闭刚刚安装好的mysql sudo service mysql stop
    • /var/lib/mysql/ib_logfile0 和 /var/lib/mysql/ib_logfile1 这两个文件删除
    • 修改 my.cnf文件,由于是使用sudo apt-get方式安装,所以目录为/etc/mysql/my.cnf,修改内容如下:

      [mysqld]
      transaction-isolation = READ-COMMITTED
      # Disabling symbolic-links is recommended to prevent assorted security risks;
      # to do so, uncomment this line:
      # symbolic-links = 0
      
      key_buffer_size = 32M
      max_allowed_packet = 32M
      thread_stack = 256K
      thread_cache_size = 64
      query_cache_limit = 8M
      query_cache_size = 64M
      query_cache_type = 1
      
      max_connections = 550
      #expire_logs_days = 10
      #max_binlog_size = 100M
      
      #log_bin should be on a disk with enough free space. Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your system
      #and chown the specified folder to the mysql user.
      log_bin=/var/lib/mysql/mysql_binary_log
      
      # For MySQL version 5.1.8 or later. For older versions, reference MySQL documentation for configuration help.
      binlog_format = mixed
      
      read_buffer_size = 2M
      read_rnd_buffer_size = 16M
      sort_buffer_size = 8M
      join_buffer_size = 8M
      
      # InnoDB settings
      innodb_file_per_table = 1
      innodb_flush_log_at_trx_commit  = 2
      innodb_log_buffer_size = 64M
      innodb_buffer_pool_size = 4G
      innodb_thread_concurrency = 8
      innodb_flush_method = O_DIRECT
      innodb_log_file_size = 512M
      
      [mysqld_safe]
      log-error=/var/log/mysqld.log
      pid-file=/var/run/mysqld/mysqld.pid
      
      sql_mode=STRICT_ALL_TABLES
      
    • 重启mysql sudo service mysql start

  • 3 安装 MySQL JDBC驱动 sudo apt-get install libmysql-java

  • 4 创建cloudera manager需要的数据库,如activity monitor, Reports Manager

    • 先进入mysql,mysql -u root -p ubuntu
    • 创建cloudera manager需要的数据库

      create database database DEFAULT CHARACTER SET utf8;

      grant all on database.* TO 'user'@'%' IDENTIFIED BY 'password';

      Role Database User Password
      Activity Monitor amon root ubuntu
      Reports Manager rman root ubuntu
      Hive hive root ubuntu

cloudera manager server 安装

  • 1 在ubuntu5新建 cloudera-manager.list文件到目录/etc/apt/sources.list.d/,文件内容如下:

    deb [arch=amd64] http://archive.cloudera.com/cm5/ubuntu/trusty/amd64/cm trusty-cm5 contrib
    deb-src http://archive.cloudera.com/cm5/ubuntu/trusty/amd64/cm trusty-cm5 contrib
    
  • 2 更新ubuntu系统package索引

    sudo apt-get update
    
  • 3 安装cloudera manager server包

    sudo apt-get install cloudera-manager-daemons cloudera-manager-server
    
  • 4 在主节点即ubuntu5上初始化cloudera manager数据库,注意下面localhost与在界面连接数据库时有关,数据库主机名即代替localhost中的内容。

    /usr/share/cmf/schema/scm_prepare_database.sh mysql cm -h**localhost** -uroot -pubuntu --scm-host localhost scm scm scm
    
  • 5 所有节点创建cloudera-scm用户(cloudera manager自己生成的默认用户)

    useradd --system --home=/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
    
  • 6 准备parcels包,安装CDH。包放在/opt/cloudera/parcel-repo/目录中

    • 相关文件如下:
      • CDH-5.13.0-1.cdh5.13.0.p0.29-trusty.parcel
      • CDH-5.13.0-1.cdh5.13.0.p0.29-trusty.parcel.sha1 (下载之后改名为CDH-5.13.0-1.cdh5.13.0.p0.29-trusty.parcel.sha)
      • manifest.json
  • 7 在ubuntu2和ubuntu4上clouderas-scm-agent启动之后再在主节点启动cloudera-scm-server,缓慢等待2-3分钟左右后打开http:ubuntu5:7180

    sudo service cloudera-scm-server start
    

接下来是服务器检查,可能会遇到以下问题:

Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:

通过root用户输入命令 echo 0 > /proc/sys/vm/swappiness即可解决。

web安装hive时需要拷贝mysql的jdbc

cp /share/cmf/lib/mysql-connector-java-5.1.44-bin.jar /opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hive/lib/

出现在Web UI已分配卡死状况

  • parcel-repo 的权限为 cloudera-scm和cloudera-scm
  • parcels 的权限为root和root

cloudera manager client 安装

  • 1 在ubuntu2和ubuntu4上新建 cloudera-manager.list文件到目录/etc/apt/sources.list.d/,文件内容如下:

    deb [arch=amd64] http://archive.cloudera.com/cm5/ubuntu/trusty/amd64/cm trusty-cm5 contrib
    deb-src http://archive.cloudera.com/cm5/ubuntu/trusty/amd64/cm trusty-cm5 contrib
    
  • 2 更新ubuntu系统package索引

    sudo apt-get update
    
  • 3 安装cloudera manager client

    sudo apt-get install cloudera-manager-agent cloudera-manager-daemons
    
  • 4 修改client的配置文件,目录为/etc/cloudera-scm-agent/config.ini

    • 修改为server_host=ubuntu5
  • 5 启动cloudera-scm-agent

    sudo service cloudera-scm-agent start
    

安装之后Test

sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100

删除mysql

  • sudo apt-get autoremove --purge mysql-server
  • 清理残留数据 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

卸载 cloudera manager

卸载cloudera manager server

  • 停止 Cloudera Manager Server

    sudo service cloudera-scm-server stop
    
  • 卸载 Cloudera Manager Server

    sudo apt-get remove cloudera-manager-server
    

卸载cloudera manager agent和相关管理软件

  • 强制停止 Cloudera Manager client(和正常关闭相比,强制关闭强制关掉了surpervisord进程)

    sudo /usr/sbin/service cloudera-scm-agent hard_stop
    
  • 卸载 Cloudera Manager管理软件

    sudo apt-get purge 'cloudera-manager-*'
    
  • 运行clean命令

    udo apt-get clean 
    

删除cloudera manager数据和用户数据(所有的agent主机)

  • Kill Cloudera Manager and Managed Processes(如上正常关机不需要此步)

    for u in cloudera-scm flume hadoop hdfs hbase hive httpfs hue impala llama mapred oozie solr spark sqoop sqoop2 yarn zookeeper; do sudo kill $(ps -u $u -o pid=); done
    
  • Remove Cloudera Manager Data

    sudo umount cm_processes
    sudo rm -Rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/cloudera* /var/log/cloudera* /var/run/cloudera*
    
  • Remove the Cloudera Manager Lock File

    sudo rm /tmp/.scm_prepare_node.lock
    
  • Remove User Data

    sudo rm -Rf /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/lib/oozie /var/lib/solr /var/lib/sqoop* /var/lib/zookeeper
    sudo rm -Rf data_drive_path/dfs data_drive_path/mapred data_drive_path/yarn
    

卸载CDH相关组件

自己下载了什么就删除什么,详见官网步骤

Share