zoukankan      html  css  js  c++  java
  • hadoop记录篇8-cdh5离线安装

    一 。CDH简介

         CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
        Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化

      具体 关于Cloudera Manager(简称:cm)的用法 参考 (https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Introduction/cm5i_primer.html)

    》》相关术语

    以下图示表示相关术语的关系 具体描述参考:

    •     deployment :- Cloudera管理器和它管理的所有集群的配置。
    •     cluster : 一个逻辑实体,包含一组主机、一个安装在主机上的CDH版本以及在主机上运行的服务和角色实例。主机只能属于一个集群。
    •     host : 运行角色实例的物理或虚拟机。
    •     rack : 包含一组物理主机的物理实体,通常由同一个交换机提供服务。
    •     service : cdh中的一类功能,有时被称为服务类型。例如:MapReduce、HDFS、yarn。记住这一基本原则也很有帮助:而         在传统环境中,一个主机、cdh和其他分布式系统上运行多个服务,一个服务在许多主机上运行。.
    •     service instance :在集群上运行的服务实例。服务实例跨越多个角色实例。例如: "H" and "yarn".
    •     role : 服务中的一类功能。例如,HDFS服务具有以下角色:: NameNode, SecondaryNameNode, DataNode, and                 Balancer.有时被称为角色类型.
    •     role instance : 在主机上运行的角色的实例。它通常映射到UNIX进程。例如: "NameNode-h1" and "DataNode-h1".
    •     role group : 一组角色实例的一组配置属性.
    •     host template : 一组角色组。当模板应用于主机时,将创建每个角色组的角色实例并将其分配给该主机.
    •     gateway : 当该主机没有运行该服务的任何角色实例时,该主机将接收该服务的客户端配置。.
    •     parcel : 包含编译代码和元信息(如包描述、版本和依赖项)的二进制分发格式.

    》》CDH组件

        CDH管理着跨组件版本,并提供一个稳定的平台供许多包一起运行:
           HDFS—自我修复的分布式文件系统
           MapReduce—强大的并行数据处理框架
           Hadoop Common—一组支持Hadoop子项目的工具
           HBase—支持随机读/写访问的Hadoop数据库
           Hive—在大数据集合上的类SQL查询和表
           Pig—数据流语言和编译器
           Oozie—针对互相依赖的Hadoop作业的工作流
           Sqoop—利用集成到Hadoop的数据库和数据仓库
           Flume—高可靠、可配置的数据流集合
           Zookeeper—面向分布式应用的协调服务
           Hue—可视化Hadoop应用的用户接口框架和SDK

    》》Cloudera Manager架构

      Cloudera管理器的核心是Cloudera管理器服务器。服务器承载管理控制台Web服务器和应用程序逻辑。它负责安装软件、配置、启动和停止服务,以及管理运行服务的集群。


    Cloudera管理器服务器与其他几个组件一起工作:

    • Agent:安装在每台主机上。它负责启动和停止进程,解压缩配置,触发安装和监控主机
    • Management Service:执行各种监控、报警和报告功能的一组角色的服务。
    • Database:存储配置和监控信息
    • Cloudera Repository:可供Cloudera Manager分配的软件的存储库(repo库)
    • Client:用于与服务器进行交互的接口: 
    1. Admin Console:管理员控制台
    2. API:开发人员使用 API可以创建自定义的Cloudera Manager应用程序
     

    二 。CDH安装

      Cloudera管理器可以帮助我们安装内嵌的hadoop套件  需要有个一个管理服务器 和若干个agent代理服务器  多个代理服务器可以位于同一个rack(host分组)中



    》》系统环境准备

    192.168.58.133 cdh1    cmserver  mysql-server
    192.168.58.144 cdh2    cmagent
    192.168.58.145 cdh3    cmagent
    192.168.58.132 chd4    cmagent
    
    
    系统使用 centos7 (cat /etc/centos-release)
    同步时间 三台机器执行
    [root@cdh1 ~]# ln -sf  /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime
    [root@cdh1 ~]# ntpdate time1.aliyun.com
    关闭防火墙
    [root@bogon ~]# systemctl disable firewalld
    [root@bogon ~]# iptables --flush
    修改主机名
    192.168.58.133 执行 hostnamectl set-hostname cdh1
    192.168.58.144 执行 hostnamectl set-hostname cdh2
    192.168.58.145 执行 hostnamectl set-hostname cdh3
    192.168.58.132 执行 hostnamectl set-hostname cdh4
    
    logout重新登录 
    分别查看是否修改成功
    [root@cdh3 ~]# more /etc/hostname
    cdh3
    修改133 etc/hosts  追加内容
    192.168.58.133 cdh1
    192.168.58.144 cdh2
    192.168.58.145 cdh3
    192.168.58.132 cdh4
    
    发送到其他机器
    scp /etc/hosts root@192.168.58.144:/etc/
    scp /etc/hosts root@192.168.58.145:/etc/
    scp /etc/hosts root@192.168.58.132:/etc/
    
    cm安装要求server服务器能免密登录其他agent  133上生成密钥对:
    ssh-keygen -t rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    ssh localhost 测试不需要输入密码
    公钥拷贝到144 145添加到认证文件
    scp ~/.ssh/id_rsa.pub root@cdh2:~/.ssh/
    scp ~/.ssh/id_rsa.pub root@cdh3:~/.ssh/
    scp ~/.ssh/id_rsa.pub root@cdh4:~/.ssh/
    两台机器执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    [root@cdh1 ~]# ssh cdh2
    Last login: Fri Apr 20 09:50:00 2018 from 192.168.58.1
    [root@cdh2 ~]# exit
    logout
    Connection to cdh2 closed.
    [root@cdh1 ~]# ssh cdh3
    Last login: Thu Apr 19 18:50:19 2018 from 192.168.58.1
    [root@cdh3 ~]# exit
    logout
    Connection to cdh3 closed.
    免密登录成功登录cdh2和cdh3
    》》离线下载依赖工具准备(yum安装的mysql就没有列出)

    1.     cm5.5.6  (http://archive.cloudera.com/cm5/cm/5/  下载cloudera-manager-centos7-cm5.5.6_x86_64.tar.gz)
    2.    cdh parcel离线包 (http://archive.cloudera.com/cdh5/parcels/5.5.6/ 下载和cm相同版本的cdh镜像 其中el7表示centos7版本)   需要下载下面三个文件   
      CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel
      CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel.sha1
      manifest.json
    3.    jdk1.7 (官网描述cdh5版本支持jdk1.7)
      下载地址:(http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html)

    》》安装过程(过程参考https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_install_path_C.html)

      1 》安装jdk
         上传到linux后安装

     rpm -ivh jdk-7u79-linux-x64.rpm

      2》安装mysql服务器

           Cloudera管理器使用数据库存储有关Cloudera管理器配置(loudera Manager Server, Cloudera Management Service, 和 Hive的元数据)的信息,以及系统或任务进度等信息。为了方便快速完成简单安装,Cloudera管理器可以安装和配置嵌入式PostgreSQL数据库  这里不使用内嵌的PostgreSQL 而使用外部数据库mysql(mariadb) 参考

    (https://www.cloudera.com/documentation/manager/5-1-x/Cloudera-Manager-Installation-Guide/cm5ig_installing_configuring_dbs.html#cmig_topic_5)
       Preparing an Cloudera Manager Server External Database章节

        133机器上安装 centos7不能直接使用yum安装 mysql-server  我这里使用mariadb替代

    yum -y install epel-release.noarch mariadb-server mariadb
     启动并登陆测试

    service mariadb start && mysql -uroot -proot
    cm5需要通过java远程连接mysql所以需要将java的驱动包放在某个特定的目录(/usr/share/java)名字必须是mysql-connector-java.jar
    下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html
    mkdir -p /usr/share/java/
    cp /soft/mysql-connector-java-5.1.26-bin.jar /usr/share/java/mysql-connector-java.jar
      3》安装cm5
      下载对应cm安装包(http://archive.cloudera.com/cm5/) 比如我这里下载cloudera-manager-centos7-cm5.5.6_x86_64.tar.gz

    mkdir -p /opt/cloudera-manager
    tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager

    创建cm运行的用户(home目录cm版本目录对应上)所有3台主机都要创建

    useradd --system --home=/opt/cloudera-manager/cm-5.5.6/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
    其他两台机器拷贝 cm 执行以下命令
    scp -r /opt/cloudera-manager root@cdh2:/opt/cloudera-manager
    scp -r /opt/cloudera-manager root@cdh3:/opt/cloudera-manager
    修改两台agent机器(144和145) 配置server
    vi /opt/cloudera-manager/cloudera-manager/cm-5.5.6/etc/cloudera-scm-agent/config.ini
    修改server_host为 cdh1或者ip地址:192.168.58.133  server_port使用默认7182【没有修改过服务器的】
    133 cmserver上初始化数据库
    /opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm
    成功结果:
    root@cdh1 cm-5.5.6]# /opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm
    JAVA_HOME=/usr/java/jdk1.7.0_79
    Verifying that we can write to /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server
    Creating SCM configuration file in /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server
    Executing:  /usr/java/jdk1.7.0_79/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cloudera-manager/cm-5.5.6/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
    [                          main] DbCommandExecutor              INFO  Successfully connected to database.
    All done, your SCM database is configured correctly!
    查看 /opt/cloudera-manager/cm-5.5.6/etc/cloudera-scm-server目录/db.properties
    # Auto-generated by scm_prepare_database.sh on Fri Apr 20 12:24:11 CST 2018
    #
    # For information describing how to configure the Cloudera Manager Server
    # to connect to databases, see the "Cloudera Manager Installation Guide."
    #
    com.cloudera.cmf.db.type=mysql
    com.cloudera.cmf.db.host=localhost
    com.cloudera.cmf.db.name=scm
    com.cloudera.cmf.db.user=scm
    com.cloudera.cmf.db.password=scm
    动将数据库信息写入了该配置文件  mysql下创建了一个数据库scm 创建了一个用户scm 密码scm 服务器是localhost
    添加cm5的cdh5镜像parcel  下载地址:http://archive.cloudera.com/cdh5/parcels/5.5.6/
    下载和cm相同版本的cdh镜像 其中el7表示centos7版本
    CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel
    CDH-5.5.6-1.cdh5.5.6.p0.2-el7.parcel.sha1
    manifest.json
    将三个文件 放入/opt/cloudera/parcel-repo目录
    mkdir -p /opt/cloudera/parcel-repo
    chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
    启动server
    /opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-server start
    [root@cdh1 init.d]# netstat -nlp | grep java
    tcp        0      0 0.0.0.0:7180            0.0.0.0:*               LISTEN      5390/java           
    tcp        0      0 0.0.0.0:7182            0.0.0.0:*               LISTEN      5390/java 
    7180是web管理界面
    7182用于agent连接server
    启动两台agent
    /opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-agent start
    浏览器访问 http://192.168.58.133:7180/ 输入用户名密码都是admin 注意 浏览器语言设置为简体中文 显示中文版


    三 。CDH删除重装

      1> 删除Agent节点的UUID 

       # rm -rf /opt/cloudera-manager/cm-5.5.6/lib/cloudera-scm-agent/*

    2>  清空主节点CM数据库
     进入主节点的Mysql数据库,然后drop database scm;
     3> 删除Agent节点namenode和datanode节点信息
         # rm -rf /opt/dfs/nn/*
         # rm -rf /opt/dfs/dn/*
    4> 在主节点上重新初始化CM数据库
    /opt/cloudera-manager/cm-5.5.6/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm scm scm
    5> 执行启动脚本
     启动server
    /opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-server start
    启动agent
     
    /opt/cloudera-manager/cm-5.5.6/etc/init.d/cloudera-scm-agent start


  • 相关阅读:
    rzchecktree用作类别权限的问题
    VirtualStringTree 动态建树/Checktree
    一键处理打印机因任务不能取消,无法接着打印
    Delphi从Internet下载文件
    仿迅雷客户端的浏览器自定义协议的小程序
    用最少的代码为你的窗体实现剪贴板操作
    delphi2010获取鼠标指向窗口的位置及鼠标在窗口内的相对位置坐标
    datasnap 上传/下载大文件(本Demo以图传片文件为例)
    dephi中用idhttp提交cookie
    delphi2010 向另一个窗口发送鼠标点击事件
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331135.html
Copyright © 2011-2022 走看看