分享

cloudera manager企业级

不可替代 2018-11-1 23:45:22 发表于 其它 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 5092
本帖最后由 不可替代 于 2018-11-1 23:49 编辑

很久没来论坛了,送给大家的福利。
Cloudera manager 离线安装
作者:鸟叔
一、环境准备
环境配置说明:
+=============================================================
| Mem                       48G                                     | Mem                                       48G                       |
| 磁盘                       8T                                        | 磁盘                                       8T                         |
| ip                           192.168.*.*                         | ip                                           192.168.*.*           |
| jdk                         jdk1.8.0_131                        | jdk                                        jdk1.8.0_131         |
| Python                  Python2.7.5                          | Python                                  Python2.7.5           |
| hostname              Spark1                                  |  hostname                            Spark2                    |
+=============================================================
| Mem                     48G                                     | Mem                                        48G                        |
| 磁盘                      8T                                       | 磁盘                                        8T                          |
| ip                          192.168.*.*                        | ip                                            192.168.*.*            |
| jdk                        jdk1.8.0_131                      | jdk                                          jdk1.8.0_131           |
| Python                  Python2.7.5                        |Python                                    Python2.7.5             |
| hostname              Spark3                               |hostname                                 Spark4                     |
+=============================================================
准备安装包:
(1)    下载地址:
    



(2)    版本说明:
    
MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar
mysql-connector-java-5.1.45.tar.gz


[]、克隆虚拟机(CentOS7
         0.检查ip,如果没有ifconfig命令,需要如下去安装
  
-bash: ifconfig: 未找到命令
  
先看路径是否有,
  
echo $PATH(没有 /sbin/ifcongfig)
  
ls /sbin | grep ifconfig (没有)
  
没有安装,
  
  
安装
  
yum search ifconfig
  
  
  
net-tools.x86_64 : Basic networking tools
  
  
安装该包  yum install  net-tools.x86_64
  
  
在运行ifconfig就搞定了
  

         1.修改IP
  
vim  /etc/sysconfig/network-scripts/ifcfg-ens33
  
2.修改域名
  
vim  /etc/hostname
  
         3.域名解析
  
vim  /etc/hosts
  
192.168.1.211  cm1
  
192.168.1.212  cm2
  
192.168.1.213  cm3
         4.重启
  
reboot
  

         5.禁用ipv6cm不支持ipv6,可以不用设置,有就设置)
  
vi /etc/default/grub
  
ipv6.disable=1  crashkernel=auto
如下:
  
GRUB_CMDLINE_LINUX="ipv6.disable=1  crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"
  
GRUB_DISABLE_RECOVERY="true"
  

         6.防火墙处理
         # systemctl stop firewalld

         # systemctl disable firewalld

         # systemctl status firewalld








SELINUXLinux的安全加强系统

# sed -i"s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

# reboot now
[]、重启后使用如下命令检查一下:
#getenforce 查看selinux的状态

#sestatus -v
[]JDKStep1、卸载OpenJDK
  # rpm -qa | grep 'java'
  # rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64  java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64  java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64  java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
  
然后重启机器,使用java -verion验证 Step3、安装下载的JDK的tar.gz
  # mkdir module
  #  chown -R jimm.jimm module/
  # tar -zxvf  jdk-8u144-linux-x64.tar.gz
  # mv jdk1.8.0_144/  /opt/module
  
vi /etc/profile
  ###JAVA_HOME
  export  JAVA_HOME=/opt/module/jdk1.8.0_144
  export PATH=$PATH:$JAVA_HOME/bin
Source /etc/profile

[]、首先克隆出2台机器,把需要变化的东西修改一下,然后准备配(设置无密登录)
在Server主节点配置:
  
$ ssh-keygen -t rsa
  
$ ssh-copy-id cm1
  
$ ssh-copy-id cm2
  
$ ssh-copy-id cm3
  


附属:分发小工具和命令小工具
[]NTP时间同步
Step1、首先在主节点上同步一下 时间
        # ntpdate cn.pool.ntp.org
Step2、编辑配置文件
        # vi /etc/ntp.conf
主节点

     (具体细节见集群时间同步)
然后,主节点:
  #  systemctl start  ntpd.service
  #  systemctl enable ntpd.service
  
其他节点:
  #  systemctl stop  ntpd.service
  #  systemctl disable ntpd.service
  
在其他节点配置定时任务,用于定时同步时间:
  #  crontab -e
  # .------------------------------------------minute(0~59)
  #  | .----------------------------------------hours(0~23)
  #  | | .--------------------------------------day of month(1~31)
  #  | | | .------------------------------------month(1~12)
  #  | | | | .----------------------------------day of week(0~6)
  #  | | | | | .--------------------------------command
  #  | | | | | |
  #  | | | | | |
  */10  * * * * /usr/sbin/ntpdate cm1
  
重启定时任务:
  #  systemctl restart  crond.service
  
注意以下操作3台机器都要
设置BIOS时钟:系统关机时把内存中的系统时间写入并修改主板时间,重新启动系统时,系统时间会与硬件时间同步,从而保证时间的一致性。
Step1、修改ntpd文件
  #  vi /etc/sysconfig/ntpd
  
注意注释下边那一行添加的内容SYNC_HWCLOCK=yes Step2、修改ntpdate文件
  #  vi /etc/sysconfig/ntpdate
  
最后一行改为了yes []、设置用户最大可打开文件数,进程数,内存占用
# ulimit -a,查看当前系统的上述配置的上限,unlimited为无上限,
  
*               soft     nofile          32728
  
*               hard     nofile          1024999
  
*               soft     nproc           65535
  
*               hard     nproc           unlimited
  
*               soft     memlock         unlimited
  
*                hard    memlock         unlimited
  
修改参数:
  #  vi /etc/security/limits.conf
  


配置完成后重启机器,*代表所有用户,@表示对某个用户组生效,直接写用户名表示对某个用户生效 提示:3台机器都需要配置重启一下
提示:如果这个文件配置出现错误,重启后,该机器节点将不能再使用。需要进入单用户模式修复,具体请查阅资料。
[]、安装mysql
centos7自带的是mariadb,需要先卸载掉
[root@cm1 ~]#  rpm -qa | grepmariadb
mariadb-libs-5.5.52-1.el7.x86_64
[root@cm1 ~]#  rpm -e –nodeps mariadb-libs-5.5.52-1.el7.x86_64
将下载好的mysql tar包拷贝到服务器上然后解压(alt + p)
[root@cm1 ~]# mv ~/MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar /opt/software/
[root@cm1 ~]#  
  
[root@cm1 ~]# mkdir  mysql  && chown –R  jimm.jimm/opt/mysql
  
[root@cm1 ~]# tar -xvf  /opt/software/MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar -C  /opt/mysql/
然后安装释出的全部rpm:rpm -ivh MySQL-*.rpm 如果有问题换成
  
rpm -ivh MySQL-*.rpm --force –nodeps1
  
注意这个时候我遇到以下问题:
  
"FATAL ERROR: please  install the following Perl modules before executing  /usr/local/mysql/scripts/mysql_install_db:
  
Data::Dumper "
  

经过查询需要安装perl-Module
[root@cm1 ~]# yum install -yperl-Module-Install.noarch
等待安装完了然后就可以执行上面的初始化语句了
修改配置文件路径:1
在配置文件中增加以下配置并保存
[root@cm1]#vim /etc/my.cnf
  
[mysqld]
  
###############################################################
  
########## this is niaoshu add mysql-basic properties  #########
  
########## about engine is innodb                     #########
  
########## character is utf8                         ##########
  
###############################################################
  
default-storage-engine = innodb
  
innodb_file_per_table
  
collation-server = utf8_general_ci
  
init-connect = 'SET NAMES utf8'
  
character-set-server = utf8
  
以上就是安装好了。然后就初始化mysql
然后初始化数据库执行
[root@cm1]#/usr/bin/mysql_install_db
缺少文件
  
报错:Installing  MySQL system tables...
  ./bin/mysqld: error while loading shared  libraries: libaio.so.1: cannot open shared object file: No such file or  directory
  
解决
  
yum -y  install libaio-devel
  
- 启动mysql
[root@cm1]# service mysql restart
ERROR! MySQLserver PID file could not be found!
Starting MySQL... SUCCESS!
- 查看mysql root初始化密码

[root@cm1]# cat /root/.mysql_secret
# The random password set for the root user at Fri Sep 1611:13:25 2016 (local time): ZgqIT05TsMFXRm9
- 登录进行去更改密码

[root@cm1]# mysql -u root -p
mysql> SET PASSWORD=PASSWORD('123456');
- 允许mysql远程访问
mysql> update user set host='%' where user='root' andhost='localhost';
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1  Warnings: 0
mysql>flush privileges;
Query OK, 0 rows affected (0.00 sec)
[]、分发工具及准备数据库
1)分发脚本
[root@cm1 ~]# cd /urs/local/bin
[root@cm1 bin]# vi ync.sh
  
#!/bin/bash
  
# 1  get the number of input parameters, if there is no parameter, quit directly
  
pcount=$#
  
if((pcount==0));  then
  
echo  no args;
  
exit;
  
fi
  
  
# 2  get the file name
  
p1=$1
  
fname=`basename  $p1`
  
echo  fname=$fname
  
  
# 3  get the upper directory to the absolute path
  
pdir=`cd  -P $(dirname $p1); pwd`
  
echo  pdir=$pdir
  
  
# 4  get the current user name
  
user=`whoami`
  
  
# 5  cycle  
  
for((host=1;  host<4; host++)); do
  
        #echo $pdir/$fname  $user@hadoop$host:$pdir
  
        echo --------------- cm$host  ----------------
  
        rsync -rvl $pdir/$fname  $user@cm$host:$pdir
  
done
  
修改权限,让其普通用户也可使用
2)命令调用脚本
[root@cm1 bin]# vi call.sh
  
#!/bin/bash
  
pcount=$#
  
if((pcount==0));then
  
        echo no args;
  
        exit;
  
fi
  
  
echo -------------localhost----------
  
$@
  
for((host=1; host<=3; host++)); do
  
        echo  ----------cm$host---------
  
        ssh cm$host  $@
  
done
  
  
3)拷贝mysql-connector-java到各个节点指定目录下(所有的节点)
[root@cm1 ~]# tar -zxvf/opt/software/mysql-connector-java-5.1.45.tar.gz -C /opt/mysql/
[root@cm1  mysql-connector-java-5.1.45 ]# cp mysql-connector-java-5.1.45-bin.jar /usr/share/java/
4) 创建数据库
[root@cm1 java]# mysql -uroot -p123456
  
mysql> create database hivedb DEFAULT CHARSET utf8 COLLATE  utf8_general_ci;
  
mysql> create database huedb DEFAULT CHARSET utf8 COLLATE  utf8_general_ci;
mysql> create database ooziedb DEFAULT CHARSET utf8 COLLATE  utf8_general_ci;

[]、安装CDH依赖
  
# yum -y install chkconfig python bind-utils psmisc libxslt zlib  sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse  portmap fuse-libs  redhat-lsb
  

[]、安装Cloudera-Manager
(1) 解压cm包到指定目录所有服务器都要(或者在主节点解压好,然后通过分发工具到其节点同一目录下)
[root@cm1 opt]# mkdir /opt/cloudera-manager
[root@cm1 opt]# tar -zxvf /opt/software/cloudera-manager-centos7-cm5.10.2_x86_64.tar.gz  -C /opt/cloudera-manager/
[root@cm1 opt]# ync.sh cloudera-manager/

(2) 创建cloudera-scm用户(所有节点)
  
[root@cm1 opt]# useradd --system  --home=/opt/cloudera-manager/cm-5.10.2/run/cloudera-scm-server  --no-create-home --shell=/bin/false --comment "Cloudera SCM User"  cloudera-scm
  
(3) 在主节点创建cloudera-manager-server的本地元数据保存目录
  
[root@cm1 var]# mkdir  /var/cloudera-scm-server
  
[root@cm1 var]# chown  cloudera-scm.cloudera-scm -R /var/cloudera-scm-server/
[root@cm1 var]# chown  cloudera-scm.cloudera-scm -R /opt/cloudera-manager/
配置从节点cloudera-manger-agent指向主节点服务器(所有agent)
[root@cm1 opt]# vi /opt/cloudera-manager/cm-5.10.2/etc/cloudera-scm-agent/config.ini
将server_host改为CMS所在的主机名即cm1
(4) 主节点中创建parcel-repo仓库目录
  
[root@cm1 opt]# mkdir -p  /opt/cloudera/parcel-repo
  
[root@cm1 opt]# chown  cloudera-scm.cloudera-scm -R /opt/cloudera
[root@cm1 opt]# cd  /opt/software/
[root@cm1 software]# cp  CDH-5.10.2-1.cdh5.10.2.p0.5-el7.parcel*   manifest.json  /opt/cloudera/parcel-repo/
注意:其中CDH-5.10.2-1.cdh5.10.2.p0.18-el7.parcel.sha1 后缀要把1去掉
(5) 所有从节点创建parcels目录
  
[root@cm1 cloudera]# mkdir -p /opt/cloudera/parcels
  
[root@cm1  cloudera]# chown cloudera-scm:cloudera-scm -R  /opt/cloudera
解释:Clouder-Manager将CDHs从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压激活到各个节点的/opt/cloudera/parcels目录中
(6) 初始脚本配置数据库scm_prepare_database.sh(在主节点上)
  
[root@cm1 cloudera]# /opt/cloudera-manager/cm-5.10.2/share/cmf/schema/scm_prepare_database.sh  mysql -hcm1 -uroot -p123456 --scm-host cm1 scmdb scmdbu scmdbp
  

报错:没有jdbc驱动,驱动名字必须是”mysql-connector-java.jar”,修改完在初始化
说明:这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。-hcm1:数据库建立在cm1主机上面。也就是主节点上面。-uroot:root身份运行mysql。-123456:mysql的root密码是***。--scm-host cm1:CMS的主机,一般是和mysql安装的主机是在同一个主机上。最后三个参数是:数据库名,数据库用户名,数据库密码。
ERROR Exception when creating/dropping database with user ‘root’ and jdbc url 'jdbc:mysql://cm1/?useUnicode=true&characterEncoding=UTF-8'java.sql.SQLException: Access denied for user 'root'@'cm1' (using password: YES)

这里我也遇到以下另一个问题
这里可以重新设置mysql的数据,然后刷新,或者直接将过期设置不检测
mysql> grant all on *.* to ‘root’@’%’ identified by ‘123456’ with grant option;

mysql>  update user set password = password('123456') where user='root';

mysql> select host,user,password from user where user='root';

mysql>  delete from user where host !='%';
mysql>  update user set password_expired = ‘N’ where user =’root’;
     
mysql>  flush privileges;

mysql> exit

(7) 启动主节点cloudera-scm-server
[root@cm1 ~]# cp /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server[root@cm1 ~]#  chkconfig cloudera-scm-server on[root@cm1 ~]# vi /etc/init.d/cloudera-scm-serverCMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}改为=/opt/cloudera-manager/cm-5.10.2/etc/default同时为了保证在每次服务器重启的时候都能启动cloudera-scm-server,应该在开机启动脚本/etc/rc.local中加入命令:service cloudera-scm-server restart
启动cloudera-scm-agent所有节点
[root@cm1 ~]# mkdir /opt/cloudera-manager/cm-5.10.2/run/cloudera-scm-agent[root@cm1 ~]#  cp /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent[root@cm1 ~]# chkconfig cloudera-scm-agent on同时为了保证在每次服务器重启的时候都能启动cloudera-scm-agent,应该在开机启动脚本/etc/rc.local中加入命令:service cloudera-scm-agent restart 启动
/opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-server start
/opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-agent start
  到此如果一直卡在 (8) 注意:1.去掉警告 echo 10 > /proc/sys/vm/swappiness  把10 修改为web UI提示的值 (每台节点都需要做)      2.去掉警告 echo never > /sys/kernel/mm/transparent_hugepage/defrag 把[always] madvise never 修改为nerver,  并把同一命添加到初始化脚本(/etc/rc.local)中,在重启时可以初始化该参数 (每台都需要)
echo "echo never >> /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo never >> /sys/kernel/mm/transparent_hugepage/enabled"  >> /etc/rc.local
(9) 自定义安装组件

二、Cloudera manager中的spark2升级[].下载对应的版本的spark依赖文件
    
注意:下载对应的系统,对应版本的parcel文件【manifest.json  &  SPARK*.parcel &  SPARK*.parcel.sha

[].安装
1、停止集群服务及ClouderaManagement Service服务
  
[root@cm1  ~]# /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-server  stop
  
[root@cm1  ~]# /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-agent  stop

2、(所有节点)CSD包到机器的/opt/cloudera/csd目录,并且修改文件的用户和组。注意如果本目录下有其他的jar包,把删掉或者移到其他目录
  
chown -R cloudera-scm:cloudera-scm  /opt/cloudera/csd/*
  

3、(只在server节点)上传parcel包到机器的/opt/cloudera/parcel-repo目录下。注意,。如果有其他的安装包,不用删除 ,但是如果本目录下有其他的重名文件比如manifest.json文件,把它重命名备份掉。然后把那3parcel包的文件放在这里
  
  

4、重启服务
  
[root@cm1  ~]# /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-server  start
  
[root@cm1  ~]# /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-agent  start

5、点击主机->Parcel页面,看是否多了个spark2的选项。如下图,你这里此时应该是分配按钮,点击,等待操作完成后,点击激活按钮

激活后,点击你的群集-》添加服务,添加spark2服务。注意,如果你这里看不到spark2服务,就请检查你的CSD包和parcel包是否对应,上面的步骤是否有漏掉。


三、向已有集群中添加节点(cloudera manager)[] 修改域名和hosts(ip/域名映射)
  
[root@spark6  ~]#  vi /etc/hostname
  
[root@spark6  ~]#  vi /etc/hosts
  
注:生产环境尽量避免重启,vi /etc/hosts(永久但需要重启)      hostname newHostname(临时有效)使用二者结合即可

[] 修改原来集群的hosts(ip/域名映射),把新节点的域名映射添加进入
       1)修改/etc/hosts之后正常情况是保存之后立即生效
       2)检查要添加节点的jdk  java -version
      

[] 添加cloudera manager
         (1)scp 集群中的从节点文件到新节点对应的目录
  
[root@spark6  ~]#  scp -r /opt/cloudera-manager/  spark6:/opt/
  

         (2)删除对应目录下的文件
  
[root@spark6  ~]# rm -rf /opt/cloudera-manager/cm-5.10.2/lib/cloudera-scm-agent/*
  
[root@spark6  ~]# rm -rf /opt/cloudera-manager/cm-5.10.2/log/cloudera-scm-agent/*
  
注:分发过去的/opt/cloudera-manager/cm-5.10.2/lib/中的cloudera-scm-server和cloudera-scm-server-db是空的
                  /opt/cloudera-manager/cloudera/中的csd parcel-repo也是空的

         (3)在代理节点添加scm管理用户
  
[root@spark6  ~]# useradd --system  --home=/opt/cloudera-manager/cm-5.10.2/run/cloudera-scm-server/  --no-create-home --shell=/bin/false --comment "Cloudera SCM User"  cloudera-scm
  
id   cloudera-scm

         (4)配置&启动
  
[root@spark6  ~]# cp  /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-agent  /etc/init.d/cloudera-scm-agent
  
[root@spark6  ~]# chkconfig cloudera-scm-agent on
[root@spark6  ~]# vi /etc/init.d/cloudera-scm-agent
CMF_DEFAULTS=/opt/cloudera-manager/cm-5.10.2/etc/default
[root@spark6  ~]# vi /etc/rc.local
[root@spark6  ~]# service cloudera-scm-agent restart
[root@spark6  ~]# /opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-agent  start
启动报
  
/opt/cloudera-manager/cm-5.10.2/etc/init.d/cloudera-scm-agent:102: pstree: 未找到命令
  
centos7默认并没有安装pstree,所以会有pstree:command not found
安装pstree
  
yum install psmisc

         (5) 进入web界面进行添加
                  主机  ->  所有主机->  向集群添加新主机 ->  

         ① 由于已经将cm agent拷贝到各机器并启动了,此处不是通过IP或hostname查找的(即使查出来也无法选择),而是已存在的主机里面选择,选择新加的agent,点继续
         ② 出现下载parcel的界面
                  此处多多注意不同Linux版本要不同的parcel包

         ③ 检查主机正确性
  
[root@spark6 ~]#  echo never >  /sys/kernel/mm/transparent_hugepage/defrag
  
[root@spark6 ~]#  echo never >  /sys/kernel/mm/transparent_hugepage/enabled
          禁止该设置 将命令添加到rc.local,用于系统初始化时设置     
  
[root@spark6 ~]#  vi  /etc/rc.local  
  
     再去web点击重新运行,警告就没有了
         ④ 选择主机模板-此处可选择要安装的组件
                  这一步一定要选择,否则要重新分配角色。
         ⑤ 向集群中添加主机
         (6) 处理程序运行需要的第三方jar包
                  添加节点导致没有jar包错、把其他节点的依赖jar包添加上去
/opt/cloudera/parcels/SPARK2/lib/spark2/jars


已有(2)人评论

跳转到指定楼层
jiangzi 发表于 2018-11-2 17:58:15
看看, 谢谢了~~
回复

使用道具 举报

BB_BDATA 发表于 2018-11-6 16:15:26
楼主可否搞个文档,这样看,也没图。。。有点乱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条