CDH6.2.0 集群搭建

基于centos7 安装6.2版本CM以及CDH

以下操作主要是在root用户下进行》》》

  1. 修改hostname(每个节点)

    1.1 临时修改 $ hostname hdfs1

    1.2 长期修改 $ vi /etc/hostname

  2. 配置 /etc/hosts(每个节点)

192.168.101.1 	hdfs1
192.168.101.2 	hdfs2
192.168.101.3 	hdfs3
192.168.101.4 	hdfs4
192.168.101.5 	hdfs5

其中选择hdfs1作为主节点

  1. 关闭防火墙、禁止防火墙开机自启(每个节点)
$ systemctl stop firewalld  #关闭防火墙
$ systemctl disable firewalld #禁止防火墙开机自启
$ vi /etc/selinux/config  #SELINUX=disabled (修改)
  1. 配置ssh免密登录(可以不用配置)
    ~登录各节点执行ssh-keygen -t rsa 一路回车到结束,在/root/.ssh/下面会生成一个公钥文件id_rsa.pub
    cat /home/root/.ssh/id_rsa.pub >> /home/root/.ssh/authorized_keys 将公钥追加到authorized_keys
    $ chmod 600 /home/root/.ssh/authorized_keys 修改权限
    将/home/root/.ssh/authorized_keys从当前节点分发到其他各个节点。如:scp /home/root/.ssh/authorized_keys root@hdfs1:/home/root/.ssh/~

  2. 配置NTP服务(所有节点)
    修改时区(改为中国标准时区)
    $ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    安装ntp $ yum -y install ntp
    配置ntp主机服务器,注释掉其他ntp服务器
    $ vim /etc/ntp.conf
    server hdfs1

    在这里插入图片描述

重新启动 ntp服务:$ service ntpd restart
设置开机自启:$ systemctl enable ntpd.service
ntpdc -c loopinfo #查看与时间同步服务器的时间偏差
ntpq -p #查看当前同步的时间服务器
ntpstat #查看状态

  1. 修改Linux swappiness参数(所有节点)
    为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)
    $ cd /usr/lib/tuned/
    $ grep "vm.swappiness" * -R #查询出后依次修改

  2. 禁用透明页(所有节点)
    在/etc/rc.local 添加命令:
    $ echo never > /sys/kernel/mm/transparent_hugepage/defrag
    $ echo never > /sys/kernel/mm/transparent_hugepage/enabled
    添加可执行权限:chmod +x /etc/rc.d/rc.local

  3. JDK安装(所有节点)
    $ rpm -qa | grep java # 查询已安装的java
    $ yum remove java* # 卸载
    $ rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    $ vi /etc/profile #末尾添加

export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

$ source /etc/profile
$ java -version #验证安装是否成功

  1. 创建/usr/share/java目录,将mysql-jdbc包放进去(所有节点)
    $ mkdir -p /usr/share/java
    $ mv /opt/mysql-j/mysql-connector-java-5.1.34.jar /usr/share/java/
    注意:mysql-connector-java-5.1.34.jar 一定要命名为mysql-connector-java.jar

  2. Mysql安装(选择一个节点)

  • 卸载旧的mysql(如有)以及mariadb:rpm -qa|grep mariadb
    $ rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

  • 解压mysql安装包并进行安装:

$ tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
$ rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm 
$ rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm 
$ rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm 
$ rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm 
$ rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm 
  • MYSQL配置:
$ mysqld --initialize --user=mysql # 初始化mysql使mysql目录的拥有者为mysql用户
$ cat /var/log/mysqld.log # 最后一行会有随机生成的密码 
$ systemctl start mysqld.service # 设置mysql服务自启
$ mysql -uroot –ppwd

登录进去后,ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.需要修改访问密码:

ALTER USER USER() IDENTIFIED BY ‘rootpwd’;
如果是5.7之前版本,可以使用如下方式: SET PASSWORD = PASSWORD(‘rootpwd’);
如果不能登陆,设置免密登录并重启mysql服务:
vi /etc/my.cnf #在[mysqld]的段中加上一句:skip-grant-tables ,
然后重启mysql: systemctl restart mysqld

  • 创建库(后续安装服务等使用)

    create database metastore default charset utf8 collate utf8_general_ci;
    create database amon default charset utf8 collate utf8_general_ci;
    create database rman default charset utf8 collate utf8_general_ci;
    create database hue default charset utf8 collate utf8_general_ci;
    create database oozie default charset utf8 collate utf8_general_ci; 
    grant all on metastore.*  to 'metastore'@'%'  identified  by 'metastore';
    grant all on amon.*  to 'amon'@'%'  identified  by 'amon';
    grant all on rman.*  to 'rman'@'%'  identified  by 'rman';
    grant all on hue.*  to 'hue'@'%'  identified  by 'hue';
    grant all on oozie.*  to 'oozie'@'%'  identified  by 'oozie';
    

    权限回收:revoke all privileges,grant option from ‘root’@’%’;

  1. 安装Httpd服务(hdfs1节点)
$ yum install httpd
$ service httpd start
$ systemctl enable httpd.service 设置httpd服务开机自启
$ ps -ef | grep httpd 查看httpd服务是否启动
  1. 配置Cloudera Manager包yum源(hdfs1节点)
    • 配置Web服务器

      $ mkdir -p /var/www/html/cloudera-repos/cdh6.2
      把 CDH 6.2 的三个文件放到该目录下,注意把sha256后缀的文件名修改为sha
      在这里插入图片描述
      $ mkdir -p /var/www/html/cloudera-repos/cm6.2
      将Cloudera Manager安装需要的5个rpm包,asc文件以及jdk文件下载到本地,放在同一目录,执行createrepo命令生成rpm元数据。

          $ cd /var/www/html/cloudera-repos/cm6.2 
          $ yum install createrepo 
          $ createrepo .#(注意此命令的最后带一个点) 最终 cm6.2目录下多了一个repodata目录 
      
  • 修改 /etc/httpd/conf/httpd.conf 配置文件,在IfModule mime_module中修改以下内容: 把AddType application/x-gzip .gz .tgz 修改为 AddType application/x-gzip .gz .tgz .parcel
    在这里插入图片描述
  • 重启httpd服务 systemctl restart httpd,并在浏览器访问:
    http://hdfs1/cloudera-repos/
  1. 制作Cloudera Manager的repo源(agent节点)
    • $ vi /etc/yum.repos.d/cloudera-manager.repo
       name=ClouderaManager
       baseurl=http://hdfs1/cloudera-repos/cm6.2
       enabled=1 # 或者enable=true 
       gpgcheck=0 # 或者gpgcheck=false	 
    
    • 更新yum源
    $ yum clean all 
    $ yum makecache 
    $ yum repolist
    
  • 重启httpd服务 $ systemctl restart httpd
  1. 安装Cloudera Manager Server(hdfs1)

    • 安装CM6.2时,没安装jdk的要在各节点先安装官方提供的JDK:oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

      • 第一种方式:因为已经配置好repo仓库所以yum时会到hdfs1/cm6.2目录下找到oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm进行安装

      $ yum -y install oracle-j2sdk1.8-1.8.0+update181-1.x86_64
      默认安装在 /usr/java/jdk1.8.0_181-cloudera

      $ vim /etc/profile 文件中添加如下内容

      export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
      export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
      export PATH=$JAVA_HOME/bin:$PATH
      

      重新加载profile配置文件,让配置文件生效:$ source /etc/profile
      检查是否已配置好新的JDK:$ java -version
      然后scp到其他节点.

      • 第二种方式
        直接使用 rpm -ivh 命令安装 rpm 文件的方式
        $ rpm -ivh /var/www/html/cm6.2/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    • 通过yum安装Cloudera Manager Server:(Cloudera Manager Server的源 已经配置到了repo库中) $ yum -y install cloudera-manager-server cloudera-manager-agent

      最后一行显示 Complete!安装完CM后/opt/ 下会出现cloudera目录

      $ mv /opt/parcels/* /opt/cloudera/parcel-repo # 将parcel包移动到指定位置

    • 初始化数据库,格式:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cm cm password
      /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -hmysql_host -uroot -p'root' --scm-host hdfs1 cm cm_user cm_pwd
      注意:如果cm库已经存在,会报错,需要删除
      执行成功最后一行显示 All done, your SCM database is configured correctly!
      必须保证/usr/share/java目录中已经存在 mysql-connector-java.jar 的软连接:ln -s mysql-connector-java-5.1.46.jar mysql-connector-java.jar

    • 启动Cloudera Manager Server

    $ systemctl start cloudera-scm-server
    $ ps -ef | grep cloudera-scm-server #查看是否启动
    $ systemctl status cloudera-scm-server #显示 Active: active (running) 	
    
    • 检查端口是否监听
    $ yum install net-tools #安装 netstat
    $ netstat -lnpt | grep 7180 #要等一段时间启动完全启动成功后,才能看到端口被使用,然后才能真正访问到CM的登录网页
    tcp 0  0 0.0.0.0:7180  0.0.0.0:*  LISTEN  68289/java	
    
    • 通过 hdfs1:7180/cmf/login 访问 CM,之后相关组件可在页面进行安装了
  2. 遇到的问题:

  • 在部署agent时出现错误:
    MainThread agent ERROR Failed to connect to previous supervisor.
    这时候要确认一下:hostname 和ip是否对应 (/etc/sysconfig/network 和 /etc/hosts )
    (hostname 临时修改方法: hostname master)
    如果对的话,还存在问题,那么尝试用这种方法(杀掉进程):
    kill -9 $(pgrep -f supervisord) 然后重启agent即可。
  • 如果在界面安装部署agent过程出现中断导致无法继续安装:
    需要kill掉agent节点两个进程:
kill -9 ${pgrep -f 'cloudera-scm-agent/events'}
kill -9 $(pgrep -f supervisord)
. ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 ├── GPLEXTRAS-parcels │   ├── GPLEXTRAS-6.3.2-1.gplextras6.3.2.p0.1605554-el7.parcel │   ├── GPLEXTRAS-6.3.2-1.gplextras6.3.2.p0.1605554-el7.parcel.sha1 │   ├── GPLEXTRAS-6.3.2-1.gplextras6.3.2.p0.1605554-el7.parcel.sha256 │   └── manifest.json ├── allkeys.asc ├── cm6.3.1 │   ├── RPM-GPG-KEY-cloudera │   ├── RPMS │   │   ├── noarch │   │   └── x86_64 │   │   ├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm │   │   ├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm │   │   ├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm │   │   ├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm │   │   ├── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm │   │   └── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm │   ├── SRPMS │   └── repodata │   ├── 3662f97de72fd44c017bb0e25cee3bc9398108c8efb745def12130a69df2ecb2-filelists.sqlite.bz2 │   ├── 43f3725f730ee7522712039982aa4befadae4db968c8d780c8eb15ae9872cd4d-primary.xml.gz │   ├── 49e4d60647407a36819f1d8ed901258a13361749b742e3be9065025ad31feb8e-filelists.xml.gz │   ├── 8afda99b921fd1538dd06355952719652654fc06b6cd14515437bda28376c03d-other.sqlite.bz2 │   ├── b9300879675bdbc300436c1131a910a535b8b5a5dc6f38e956d51769b6771a96-primary.sqlite.bz2 │   ├── e28836e19e07f71480c4dad0f7a87a804dc93970ec5277ad95614e8ffcff0d58-other.xml.gz │   ├── repomd.xml │   ├── repomd.xml.asc │   └── repomd.xml.key └── manifest.json
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值