热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ubuntu16.04安装CDH5.14.2

一、安装clouderamanager(下文简称cm)(一).环境及软件准备:1.环境:Ubuntu16.04desktopx3台ip分别为:10.132.226.121,10.1

 一、安装cloudera manager(下文简称cm)

   (一).环境及软件准备:

      1.环境:Ubuntu16.04 desktop x 3 台

      • ip分别为:10.132.226.121,10.132.226.122,10.132.226.123
      • 用户统一使用root用户

      2.需下载安装的软件:

      • cm压缩包:cloudera-manager-xenial-cm5.14.2_amd64.tar.gz
      • CDH离线资源包(parcels):
        • CDH-5.14.2-1.cdh5.14.2.p0.3-xenial.parcel 
        • CDH-5.14.2-1.cdh5.14.2.p0.3-xenial.parcel.sha1 
        • manifest.json
      • cloudera-manager-daemons(主节点)
      • cloudera-manager-server(主节点)
      • cloudera-manager-agent(主节点和从节点)
      • 注意:Ubuntu有多个版本:16.04代号为Xenial Xerus——好客的非洲地松鼠14.04代号为Trusty Tahr——值得信赖的塔尔羊12.04代号为Precise Pangolin——精准的穿山甲,因此16.04需下载xenial版本的文件,否则可能会出现不兼容的问题。
      • ssh服务
      • ntp服务
      • oracle-java
      • mariadb

   (二).主机环境配置:

    1. 修改hostname:
      1. 主节点 master:
        root@master:~# vim /etc/hostname
        
        ~~~~~~~内容~~~~~~~
        master
        ~~~~~~~内容~~~~~~~
      2. 从节点 slave[1-2]:
        root@slave1:~# vim /etc/hostname
        
        ~~~~~~~内容~~~~~~~
        slave1
        ~~~~~~~内容~~~~~~~
    2. 修改hosts(所有节点):
       1 root@master:~# vim /etc/hosts
       2 ~~~~~~~~~~~内容~~~~~~~~~~~
       3 127.0.0.1       localhost
       4 10.132.226.121  master
       5 10.132.226.122  slave1
       6 10.132.226.123  slave2
       7 
       8 # The following lines are desirable for IPv6 capable hosts
       9 ::1     ip6-localhost ip6-loopback
      10 fe00::0 ip6-localnet
      11 ff00::0 ip6-mcastprefix
      12 ff02::1 ip6-allnodes
      13 ff02::2 ip6-allrouters
      14 ~~~~~~~~~~~内容~~~~~~~~~~~

      注意:部分主机含有127.0.1.1 的地址 用#注释或删除

    3. 更新软件包(所有节点):
      root@master:~# apt update

      注意:如果有涉及内核的更新需要重启一下系统

    4. 关闭防火墙(所有节点):
      root@slave1:~# ufw disable
      Firewall stopped and disabled on system startup
    5. 重启系统:reboot 因为更改/etc/hostname必须要重启系统才能生效,更新软件包,以及关闭防火墙有时也需要重启系统来应用部分配置,因此在这步进行系统重启。
    6. ssh服务配置:

      1. 如果未安装ssh服务则先进行安装(所有节点): 

        root@master:~# apt install openssh-server openssh-client
      2. 修改/etc/ssh/sshd_config配置文件中的以下选项(所有节点):
        1 root@master:~# vim /etc/ssh/sshd_config
        2 ~~~~~~~~查找并修改~~~~~~~~
        3 PermitRootLogin yes
        4 PasswordAuthentication yes
        5 ~~~~~~~~查找并修改~~~~~~~~
        6 root@master:~# /etc/init.d/ssh restart

         若有#号注释的删除#号并更改即可

      3. 配置各节点之间的免密登陆(只在主节点操作):
        1 root@master:~# ssh-keygen -t rsa 
        2 //生成密钥 一路回车,如果之前已有生成,提示是否重新生成时填y即可
        3 root@master:~# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
        4 root@master:~# chmod 600 ~/.ssh/authorized_keys
        5 root@master:~# scp -r /root/.ssh root@slave1:/root/
        6 root@master:~# scp -r /root/.ssh root@slave2:/root/

        注意:如果出现无法连接的 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 错误时 清楚~/.ssh 文件下know_hosts文件找到与登录错误的IP的公钥删除即可  

    7. 配置ntp服务:
      1. 安装ntp服务(所有节点):
        1 root@master:~# apt-get install ntp
      2. 修改/etc/ntp.conf配置文件:
        1. master:
          1 root@master:~# vim /etc/ntp.conf 
          2 //用#注释掉所有的pool和server
          3 ~~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~~~
          4 restrict 10.132.226.0 mask 255.255.255.0
          5 server 202.120.2.101
          6 server cn.pool.ntp.org
          7 server 127.0.0.1
          8 ~~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~~~
        2. slave:
          1 root@slave1:~# vim /etc/ntp.conf
          2 //用#注释掉所有pool与server添加一下内容
          3 ~~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~~
          4 server master
          5 ~~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~~
      3. 重启ntp服务:
        1 root@master:~t# service ntp restart
    1. 安装配置JAVA(所有节点):
      1. 安装java:
        1 root@master:~# add-apt-repository ppa:webupd8team/java
        2 //因为cm需要安装oracle的java,二ubuntu的源中默认只有openjdk所以需要添加源
        3 root@master:~# apt-get update
        4 root@master:~# apt-get install oracle-java8-installer
      2. 修改/etc/profile文件添加JAVA_HOME:
        1 root@master:~# vim /etc/profile
        2 ~~~~~~~~~~~~~~~~~~~~~~文末添加~~~~~~~~~~~~~~~~~~~~~~
        3 export JAVA_HOME=/usr/lib/jvm/java-8-oracle
        4 export JRE_HOME=${JAVA_HOME}/jre 
        5 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
        6 export PATH=$PATH:${JAVA_HOME}/bin:{JRE_HOME}/bin:$PATH
        7 ~~~~~~~~~~~~~~~~~~~~~~文末添加~~~~~~~~~~~~~~~~~~~~~~

         若不知道java的位置可通过update-alternatives --config java 来查看java信息

         1 root@master:~# update-alternatives --config java
         24 个候选项可用于替换 java (提供 /usr/bin/java)。
         3 
         4   选择       路径                                          优先级  状态
         5 ------------------------------------------------------------
         6   0            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      自动模式
         7   1            /usr/java/jdk1.8.0_121/bin/java                  300       手动模式
         8   2            /usr/lib/jvm/j2sdk1.6-oracle/jre/bin/java        315       手动模式
         9   3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      手动模式
        10 * 4            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      手动模式
        11 
        12 要维持当前值[*]请按<回车键>,或者键入选择的编号:
    2. 安装配置Mariadb(主节点):
      1. 安装Mariadb:
        root@master:/home/jy# apt-get install mariadb-server
      2. 修改/etc/mysql/mariadb.conf.d/50-server.cnf配置文件使数据库可远程访问:
         1 root@master:~# vim /etc/mysql/mariadb.conf.d/50-server.cnf
         2 
         3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         4 [mysqld]
         5 
         6 #
         7 # * Basic Settings
         8 #
         9 user            = mysql
        10 pid-file        = /var/run/mysqld/mysqld.pid
        11 socket          = /var/run/mysqld/mysqld.sock
        12 port            = 3306
        13 basedir         = /usr
        14 datadir         = /var/lib/mysql
        15 tmpdir          = /tmp
        16 lc-messages-dir = /usr/share/mysql
        17 skip-external-locking
        18 
        19 # Instead of skip-networking the default is now to listen only on
        20 # localhost which is more compatible and is not less secure.
        21 bind-address            = 0.0.0.0  #修改此项,可用#注释,或改成本实例内容
        22 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      3. 使用mysql_secure_installation进行数据库初始化设置:
         1 root@master:~# mysql_secure_installation 
         2 ~~~~省略部分内容~~~~
         3 Enter current password for root (enter for none):     //此处直接回车,默认root密码为空
         4 OK, successfully used password, moving on...
         5 
         6 Setting the root password ensures that nobody can log into the MariaDB
         7 root user without the proper authorisation.
         8 
         9 Set root password? [Y/n] y   //选择y更改root密码
        10 New password: 
        11 Re-enter new password: 
        12 Password updated successfully!
        13 Reloading privilege tables..
        14  ... Success!
        15 ~~~~省略部分内容~~~~
        16 Remove anonymous users? [Y/n] n
        17  ... skipping.
        18 ~~~~省略部分内容~~~~
        19 Disallow root login remotely? [Y/n] n  //选 n 为允许root用户远程登录
        20  ... skipping.
        21 ~~~~省略部分内容~~~~
        22 Remove test database and access to it? [Y/n] y
        23  ~~~~省略部分内容~~~~
        24 Reload privilege tables now? [Y/n] y
        25  ... Success!
        26 
        27 Cleaning up...
        28 
        29 All done!  If you've completed all of the above steps, your MariaDB
        30 installation should now be secure.
        31 
        32 Thanks for using MariaDB!
      4. 增加可远程访问的root用户:
        1 root@master:~# mysql -u root -p
        2 Enter password: 
        3 MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;
        4 Query OK, 0 rows affected (0.00 sec
        5 MariaDB [(none)]> flush privileges;
      5. 创建需要的数据库:
        1 MariaDB [(none)]> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
        2 MariaDB [(none)]> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
        3 MariaDB [(none)]> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
        4 MariaDB [(none)]> create database manager DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
        5 MariaDB [(none)]> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
        6 //后续其他选中的服务需要数据库可以自己再次创建
      6. 安装JDBC:
        root@master:~# apt install libmysql-java

   (三).配置与安装cm:

                       1.配置本地源:

      1. 解压下载的cm包到指定目录:
        1 root@master:~# mkdir /opt/cloudera-manager //所有节点创建
        2 root@master:~# tar -xzvf cloudera-manager-xenial-cm5.14.2_amd64.tar.gz -C /opt/cloudera-manager
      2. 修改/opt/cloudera-manager/cm-5.14.2/etc/cloudera-scm-agent/config.ini文件:
         1 root@master:~# vim /opt/cloudera-manager/cm-5.14.2/etc/cloudera-scm-agent/config.ini 
         2 ~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~
         3 [General]
         4 # Hostname of the CM server.
         5 server_host=master
         6 
         7 # Port that the CM server is listening on.
         8 server_port=7182
         9 ~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~
        10 //server_host 更改为主节点的ip或者host名
        11 //server_port 默认为7182 若端口被占,则改成其他
      3. 把主节点的cloudera-manager文件夹拷贝到其他节点:
        1 root@master:~# scp -r /opt/cloudera-manager root@slave1:/opt/cloudera-manager/
        2 root@master:~# scp -r /opt/cloudera-manager root@slave2:/opt/cloudera-manager/
      4. 创建parcle-repo本地CDH源(主节点):
        1 root@master:~# mkdir -p /opt/cloudera/parcel-repo  //在所有节点创建
        2 //将sha1更名为sha否则无法识别,并将资源包拷贝到/opt/cloudera/parcel-repo
        3 root@master:~# mv CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha
        4 root@master:~# cp CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha manifest.json /opt/cloudera/parcel-repo
      5. 创建parcels目录(所有节点):
        1 root@master:~# mkdir -p /opt/cloudera/parcels
      6. 创建cloudera-scm用户(所有节点):
        root@master:~# useradd --system --home=/opt/cloudera-manager/cm-5.14.2/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
      7. 更改文件夹所有用户与用户组(所有节点):
        1 root@master:~# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
        2 root@master:~# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
        3 root@master:~# chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager

         

                       2.安装cloudera manager*

      1. 添加cloudera仓库:从 Cloudera Manager Version and Download Information 找到适合当前操作系统版本的cloudera包文件,如本例的包文件地址为:https://archive.cloudera.com/cm5/ubuntu/xenial/amd64/cm/cloudera.list,将文件中的内容复制到/etc/apt/sources.list.d/cloudera-manager.list中(没有则新建)
        1 root@master:/etc/apt/sources.list.d# vim /etc/apt/sources.list.d/cloudera-manager.list
        2 ~~~~~~~~~~~~~~~~~~~~添加内容~~~~~~~~~~~~~~~~~~~~
        3 # Packages for Cloudera Manager, Version 5, on Ubuntu 16.04 amd64       
        4 deb [arch=amd64] http://archive.cloudera.com/cm5/ubuntu/xenial/amd64/cm xenial-cm5 contrib
        5 deb-src http://archive.cloudera.com/cm5/ubuntu/xenial/amd64/cm xenial-cm5 contrib
        6 ~~~~~~~~~~~~~~~~~~~~添加内容~~~~~~~~~~~~~~~~~~~~
      2.  

        安装cloudera-manager-daemons(主节点) cloudera-manager-server(主节点) coudera-manager-agent(主节点和从节点):

        1 root@master:~# apt-get install cloudera-manager-daemons cloudera-manager-server
        2 root@master:~# apt-get install cloudera-manager-agent


      3. 修改/opt/cloudera-manager/cm-5.14.2/etc/cloudera-scm-agent/config.ini文件:
         1 root@master:~# vim /etc/cloudera-scm-agent/config.ini 
         2 ~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~
         3 [General]
         4 # Hostname of the CM server.
         5 server_host=master
         6 
         7 # Port that the CM server is listening on.
         8 server_port=7182
         9 ~~~~~~~~~~~~~~内容~~~~~~~~~~~~~~
        10 //server_host 更改为主节点的ip或者host名
        11 //server_port 默认为7182 若端口被占,则改成其他

                       3.配置cm数据库账户:

      1. 创建scm账户:
        1 root@master:~# mysql -uroot -p
        2 Enter password: 
        3 MariaDB [(none)]> grant all on *.* to 'scm'@'%' identified by 'scm' with grant option;
        4 MariaDB [(none)]> flush privileges;
      2. 通过scm_prepare_database.sh 创建数据库及数据库用户:
         1 root@master:~# /usr/share/cmf/schema/scm_prepare_database.sh mysql -hmaster -uroot -p --scm-host master scm scm scm
         2 JAVA_HOME=/usr/lib/jvm/java-8-oracle
         3 Verifying that we can write to /etc/cloudera-scm-server
         4 log4j:ERROR Could not find value for key log4j.appender.A
         5 log4j:ERROR Could not instantiate appender named "A".
         6 Creating SCM configuration file in /etc/cloudera-scm-server
         7 Executing:  /usr/lib/jvm/java-8-oracle/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
         8 log4j:ERROR Could not find value for key log4j.appender.A
         9 log4j:ERROR Could not instantiate appender named "A".
        10 [2018-05-20 02:19:36,840] INFO     0[main] - com.cloudera.enterprise.dbutil.DbCommandExecutor.testDbConnection(DbCommandExecutor.java) - Successfully connected to database.
        11 All done, your SCM database is configured correctly!
        12 //这里出现的ERROR暂时没发现影响后面的操作,可以忽略

        说明:

             脚本用来创建和配置CMS需要的数据库。各参数是指:
             mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
             -uroot:root身份运行mysql。-proot:mysql的root密码是root。
            --scm-host localhost :CMS的主机,一般是和mysql安装的主机是在同一个主机上。
             最后三个参数是:数据库名,数据库用户名,数据库密码。

         

                       4.启动cloudera manager服务:

      1. 主节点启动:cloudera-scm-server:
        1 root@master:~# service cloudera-scm-server start

         这步启动时间有点长,可以查看日志来看服务是否启动完成:

        root@master:/# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
      2. 所有节点启动 cloudera-scm-agent:
        1 root@master:~# service cloudera-scm-agent start

(二)安装CDH5:

      1. 进入CMS管理界面: 通过http:主节点ip:7180  进入 用户名和密码均为admin 

        Ubuntu16.04安装CDH5.14.2

      2. 选择版本:
        Ubuntu16.04安装CDH5.14.2
      3. 选择安装的主机:如果没有启动cloudera-scm-agent服务会出现部分节点不在以管理的主机中,启动再刷新就可以了
        Ubuntu16.04安装CDH5.14.2
      4. 选择cdh的版本,选择自己下载在parcels-repo包中的cdh版本,这里应该选CDH-5.14.2-cdh5.14.2p0.3
        Ubuntu16.04安装CDH5.14.2
      5. 进行集群安装,刚开始可能会出现connect refused 再等待一会应该就会重新进行分配
        Ubuntu16.04安装CDH5.14.2
      6. 集群安装检查主机正确性,确保所有验证都为绿色。
        Ubuntu16.04安装CDH5.14.2

        注意:Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。

        解决方法 在出现问题的节点上运行:echo 10 > /proc/sys/vm/swappiness  
        echo后面的10 为需要的设置的值。

      7. 选择自己需要的服务
        Ubuntu16.04安装CDH5.14.2
      8. 数据库设置:
        Ubuntu16.04安装CDH5.14.2

        数据库名为之前创建的数据库名,若没有创建你需要的服务所需的数据库,可自行再进行创建,用户名这里使用root。也可自己创建新的用户

      9. 之后 一直继续即可

        Ubuntu16.04安装CDH5.14.2

      10. 完成安装部署:

        Ubuntu16.04安装CDH5.14.2

      11. 进入cms管理界面:

        Ubuntu16.04安装CDH5.14.2

 


推荐阅读
  • 本文介绍了如何在 Ubuntu 18.10 Cosmic 停止官方支持后,通过更换软件源来解决 `apt update` 失败的问题。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 部署新的ASP.NET Web应用程序构建(主要涉及DLL文件更改)后,服务器上的CPU使用率每几秒就会飙升至100%,问题似乎源自lsass.exe进程。这一现象与应用程序部署之间是否存在直接关联? ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 华为USG基于源地址的多出口策略路由配置
    网络拓扑如下:组网情况:企业用户主要有技术部(VLAN10)和行政部(VLAN20),通过汇聚交换机连接到USG。企业分别通过两个不同运营商(ISP1和ISP2)连接到 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • 在Ubuntu 14.04 (Desktop AMD64) 上安装与配置ROS Indigo
    本文档详细介绍了如何在Ubuntu 14.04 (Desktop AMD64) 系统上安装和配置ROS Indigo。包括设置软件源、安装ROS核心组件、初始化rosdep以及创建ROS工作空间等步骤。 ... [详细]
author-avatar
shangce
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有