cdh实战

What

Hadoop发行版

  • Apache Hadoop
  • Cloudera’s Distribution Including Apache Hadoop(CDH)
  • Hortonworks Data Platform (HDP)
  • MapR
  • EMR
  • sqoop datax
  • flume

安装方式

  • Cloudera Manager
  • yum
  • rpm
  • tarball

名词

  • 主机 - host
  • 机架 - rack
  • 集群 - cluster
  • 服务 -service
  • 服务实例 - service instance
  • 角色 -role nn dn rs jn
  • 角色实例 -role instance
  • 角色组 -role group
  • 主机模板 -host template
  • parcel -安装包
  • 静态服务池 -static service pool
  • 动态资源池 -dynamic resource pool
  • ansible 运维自动化

Server

  • 管理控制台服务器和应用程序逻辑
  • 负责软件安装、配置
  • 启动和停止服务
  • 管理服务运行的群集

Agent

  • 安装在每台主机上
  • 负责启动和停止进程,配置,监控主机
    • Management Servicce
      • 由一组角色组成的服务,执行各种监视、报警、和报告

Where?

公共jar包 /opt/cloudera/parcels/CDH-5.4.0-1.cdh5.4.0.p0.27/lib

  • CDH5.4 http://archive.cloudera.com/cdh5/
  • Cloudera Manager5.4.3: http://www.cloudera.com/downloads/manager/5-4-3.html

Why

  • 版本划分清晰
  • 版本更新速度快
  • 支持Kerberos安全认证
  • 文档清晰
  • 支持多种安装方式(Cloudera Manager方式

Apache Hadoop 不足之处

  • 版本管理混乱
  • 部署过程繁琐、升级过程复杂
  • 兼容性差
  • 安全性低

How

  1. 网络按配置
    • 修改主机名 vi /etc/sysconfig/network

    • 根据自己的虚拟机地址修改ip和dns网关

      1
      vi /etc/sysconfig/network-scripts/ifcfg-eth0

    • vi /etc/udev/rules.d/70-persistent-net.rules 只保留最后一个,并将name改为‘eth0’ 重启,登录了 ping www.baidu.com说明网络没问题了

    • 修改hosts vi /etc/hosts

  1. ssh免密钥登录

    1
    2
    3
    4
    5
    6
    ssh localhost
    quit
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    ssh-copy-id localhost
    ssh localhost
    quit

  2. 防火墙关闭 service iptables stop chkconfig iptables off

  3. selinux关闭 vi /etc/selinux/config SELINUX=disabled

  4. 安装jdk配置环境变量 上传 rpm 和 tar

    1
    2
    3
    4
    5
    6
    cd /opt
    mkdir java
    mkdir tar
    rpm -ivh jdk-7u67-linux-x64.rpm
    yum install vim -y
    vim ~/.bash_profile

    source ~/.bash_profile

  5. 安装ntp yum install ntp ntpdate ntp.aliyun.com

  6. 安装mysql yum install -y mysql-server service mysqld restart mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; flush privileges;

  7. 在这第三方依赖包 yum install -y chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

  8. 安装Cloudera Manager Server Agent

    1
    2
    3
    mkdir /opt/cloudera-manager
    cd /opt/tar
    tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

  9. 创建用户cloudera-scm useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

  10. 配置CM Agent vim /opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini

  11. 配置CM Server数据库

    1
    2
    3
    4
    5
    6
    mkdir /usr/share/java
    mv /opt/tar/mysql-connector-java-5.1.26-bin.jar .
    mv mysql-connector-java-5.1.26-bin.jar mysql-connector-java.jar
    mysql
    grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
    grant all on *.* to 'temp'@'cdh-node1' identified by 'temp' with grant option;

  12. 创建Parcel目录

    1
    2
    3
    4
    5
    6
    7
    cd /opt/cloudera-manager/cm-5.4.3/share/cmf/schema/
    ./scm_prepare_database.sh mysql temp -h cdh-node1 -utemp -ptemp --scm-host cdh-node1 scm scm scm
    mkdir -p /opt/cloudera/parcel-repo

    chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
    mkdir -p /opt/cloudera/parcels
    chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

  13. 制作CDH本地源 下载好文件CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel以及manifest.json,将这两个文件放到 server节点的/opt/cloudera/parcel-repo下。 打开manifest.json文件,里面是json格式的配置,找到与下载版本相对应的hash码,新 建文件,文件名与你的parel包名一致,并加上.sha后缀,将hash码复制到文件中保存。

  1. 启动CM Server、Agent

    1
    2
    3
    4
    cd /opt/cloudera-manager/cm-5.4.3/etc/init.d/
    ./cloudera-scm-server start

    ./cloudera-scm-agent start

    • 登录 http://cdh-node1:7180/cmf/login
    • 用户密码 admin/admin
  2. 克隆镜像并修改配置

  • vi /etc/syscofig/network 修改主机名

  • vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改ip

  • vi /etc/udev/rules.d/70-persistent-net.rules 只保留最后一个,并将name改为‘eth0’

  • 在node1 上 ssh 所有其它机器 使不弹出 确认提示

  • 删除无用的包 ,删除已经安装过的 cloud-manager,不能删除主节点的

    1
    2
    3
    4
    cd /opt/cloudera-manager/
    rm -rf *
    cd /opt/tar
    tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

  • vim /opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini 都改成server_host=cdh-node1

  1. 启动mysql,启动server,启动agent,登录管理端http://cdh-node1:7180/cmf/login
  2. 选择机器创建集群,然后一步步按照提示解决问题

日志

/opt/cloudra-manager/run/ /opt/cloudera-manager/cm-5.4.3/run/cloudera-scm-agent/process/ccdeploy_hive-conf_etchiveconf.cloudera.hive_-7544799387945245207/logs/stderr.log

问题

  • https://ask.csdn.net/questions/212420

看日志,应该是jdk目录不对 使得 找不到JAVA_HOME 重装 或者 建立软连接 ln -s '你的jdk目录' /usr/java/jdk1.7