【大数据学习之路】本地CDH的安装

    xiaoxiao2022-06-26  152

    本地CDH的安装

    此次安装我使用的centos镜像版本为centos7,因为自身电脑配置原因我搭建了一台主机和一台子机。

    一.网络的配置以及一些小工具的安装

    1 配置网络:采用Nat方式联网。

    2 vim /etc/sysconfig/network-scripts/ifcfg-ens33 在文件中加入以下内容

    ONBOOT=yes BOOTPROTO=static IPADDR=192.168.195.11 NETMASK=255.255.255.0 GATEWAY=192.168.195.2 DNS1=202.196.32.1

    3.开启网卡:ifup ens33

    4.尝试测试:ping www.baidu.com

    5.修改yum源:

    因为国外的yum源速度太慢,在这里我换成了清华的yum源, 清华源地址:https://mirrors.tuna.tsinghua.edu.cn/

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS- Base.repo.backup

    访问:https://mirrors.ustc.edu.cn/help/centos.html 把centos7版本的内容粘贴进去。 接下来用yum安装一些小工具

    vi /etc/yum.repos.d/CentOS-Base.repo yum makecache(用时较长) yum install wget yum install vim yum install openssh-clients

    二.配置JDK

    1.执行以下操作

    cd /usr mkdir java rz (JDK包传到该目录下) tar -zxvf jdk vim /etc/profile

    最后添加环境变量:

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

    这里有时rz上传较慢,这里我采用scpy命令从另一台虚拟机上将jdk拷贝过来 2.执行命令

    source /etc/profile

    3.执行命令

    java -version

    出现以下 提示说明成功

    java version "1.8.0_181" Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

    三.克隆

    在关机状态下克隆,并配置网络 (克隆机器) 1.将UUID删除,修改IP地址,加入mac地址HWADDR=(为真的mac地址)

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    2.修改主机名,每台主机都要做

    vim /etc/hostname

    3.vim /etc/hosts(修改hosts文件,主机修改就行,下面是我的内容)

    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.195.11 cdh1 192.168.195.12 cdh2

    4.执行命令

    scp /etc/hosts root@cdh2:/etc/(将修改后的hosts文件传到另外一台机器上,传送过程需要输入密码) systemctl stop firewalld systemctl disable firewalld(关闭防火墙)

    5.重启机器。然后保证主机之间互ping 主机名,互ping ip能够ping通。(在服务器上搭建CDH时由于无法执行重启操作,我当时使用以下命令来使主机名生效)

    hostname $(cat /etc/hostname)

    四.禁止交换。(每台主机都要做)

    1.执行命令:

    vim /etc/sysctl.conf 增加一行:vm.swappiness=0

    2.执行命令:

    sudo sysctl vm.swappiness=0

    五.禁用大页面.(每台主机都要做)

    1.执行命令:

    echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled

    2.执行命令,修改配置:

    vim /etc/rc.local 增加两行: echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled

    3.执行命令,赋予权限

    chmod +x /etc/rc.d/rc.local

    六.配置免密码登陆(每台主机都要做)

    1.执行命令,生成秘钥:

    ssh-keygen -t rsa cd ~/.ssh

    2.拷贝到要免密码登陆的机器,要免密登陆哪个机器,就写该机器的ip。这里我2台机器两两之间都做了免密登陆。 ssh-copy-id xxxx 在这里我做的操作是:

    主机执行 ssh-copy-id 192.168.195.12 子机执行 ssh-copy-id 192.168.195.11

    七.安装MySQL。并配置数据库。

    为了方便,把MySQL安装在主节点Server上,但是注意最好别用太高版本的MySQL。这里安装的是MySQL5.7 1.检测是否有mariadb

    rpm -qa | grep mariadb 如果有,就执行以下命令进行卸载 rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

    2.开始安装,依次执行命令,根据提示信息操作。(这里需要安装一个mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm包,不然后期会报错)

    cd /usr/local/src wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm rpm -ivh mysql57-community-release-el7-8.noarch.rpm yum -y install mysql-server

    3.重启MySQL:

    systemctl restart mysqld.service

    4.查看默认密码

    grep "password" /var/log/mysqld.log

    5.使用默认密码登陆:

    mysql -u root -p

    6.进入命令行后,首先修改密码(我修改的密码为123456)

    alter user 'root'@'localhost' identified by '123456';

    7.然后进行创建用户,授权等操作

    grant all on *.* to 'root'@'%' identified by '123456' with grant option; -- 授权 CREATE USER 'scm'@'%' IDENTIFIED BY '123456'; --创建一个新用户,就使用这个用户名,和密码,后面cm的元数据库会用到 grant all on *.* to 'scm'@'%' identified by '123456' with grant option;-- 授权 CREATE USER 'lpy'@'%' IDENTIFIED BY '123456'; --创建一个新用户,用户名和密码可以自定义,后面安装hive,oozie会用到 grant all on *.* to 'lpy'@'%' identified by '123456' with grant option;--授权 flush privileges; -- 刷新权限

    8.用上面自定义的数据库用户lpy登陆,在MySQL中创建几个数据库备用,数据库名称可以自定义。(这里我直接使用对应的服务名称来命名数据库)

    mysql -u lpy -p create database hive; create database hue; create database ooz;

    9.使用scm用户登录MySQL,创建scm数据库备用。

    mysql -u scm -p create database scm;

    八.开始安装CM和CDH

    1.在所有节点执行命令,创建目录:

    sudo mkdir /opt/cloudera-manager

    2.在所有节点,将下载好的cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz文件,上传到/opt目录下(用rz命令)

    3.在所有节点,解压该文件到/opt/cloudera-manager目录。

    tar -zxvf /opt/cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz -C /opt/cloudera-manager

    4.在所有节点,创建用户,这是CM需要使用的用户

    sudo useradd --system --home=/opt/cloudera-manager/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

    5.在主节点,创建CM服务本地数据存放目录,并赋予权限

    sudo mkdir /var/lib/cloudera-scm-server sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server

    6.在所有节点,执行命令:

    vim /opt/cloudera-manager/cm-5.14.0/etc/cloudera-scm-agent/config.ini 修改server_host为server节点的主机名,我的就是server_host=cdh1

    7.在所有节点,将上面准备好的数据库驱动上传到/usr/share/java目录下

    8.在主节点上执行命令。初始化数据库scm。mysql scm scm scm分别代表:数据库类型 database名称 数据库用户名 数据库密码

    /opt/cloudera-manager/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql scm scm 123456

    如果出现如下提示,则证明CM元数据创建成功。

    All done, your SCM database is configured correctly!

    9.在主节点执行,创建CDH文件存放目录。

    mkdir /opt/cloudera/ cd /opt/cloudera mkdir parcel-repo

    10.将上面准备好的CDH的3个文件,上传至/opt/cloudera/parcel-repo路径下。 11.在主机192.168.195.11启动CM server

    /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start

    12.在主机192.168.195.11和子机192.168.195.12启动CM agent

    /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start

    13.然后访问地址:192.168.195.11:7180(我自己的主机ip),出现界面如下,用户名密码都是admin,之后根据提示进行web 界面的配置和操作。

    14.配置完成后会进入显示所有信息的主界面,在主界面中可以进行添加服务操作

    遇到的问题及解决方案

    遇到的问题1: 国外的yum源下载速度有点慢,耗费时间较长 解决方案1: 改成了清华的yum源,速度有所提高

    遇到的问题2: mysql在更改密码时有密码强度验证,设123456无法成功 解决方案2: 取消MySql密码强度验证功能

    修改MySql配置文件(my.cnf) 一般情况下,MySql的配置文件 my.cnf 会在 /etc/ 目录下,如果没有,可以使用以下命令查找位置: $ sudo find / -name my.cnf 编辑配置文件: $ sudo vi /etc/my.cnf 在文件末尾添加以下内容: plugin-load=validate_password.so validate-password=OFF 保存退出 重启MySQL: systemctl restart mysqld.service

    遇到的问题3: 配置NTP 解决方案3: 安装配置NTP的网址:https://www.cnblogs.com/linypwb/p/5532535.html 我找了很多有关NTP配置的相关教程,这个网址中的ntp安装讲解是比较好的。

    遇到的问题4: 安装完成后,web 界面出现许多报错情况,提醒阈值问题 解决方案4: 经过检查发现,有些警告报错是由于未修改检测配置选项而出现的,进到CDH的web界面的/cmf/hardware/hosts/config页面,在其中修改其警告选项,这些警告和报错就会消失,例如主机网络接口速度阈值的警告问题,如下图所示,一些网络限制速度,即便网络速度正常,也会出现报错。

    遇到的问题5: 在web界面进行配置是报出如下错误:Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory,原因是mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm没有安装 解决方案5: 去MySQL官网,找到安装的对应MySQL版本的这个mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm包,然后下载下来上传到server上(我的server和MySQL安装在同一个节点上,如果server和MySQL不在同一个节点,那么可以尝试这两个节点都去安装一下),安装:

    rpm -ivh mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm

    最新回复(0)