CDH6.3.2的快速安装
文章目录
大数据可以解决很多的海量数据的存储和计算的场景,对于大部分公司来说是一个非常具有战略意义的技术,不管是使用大数据公司的产品,还是公司内部搭建技术平台等,都离不开一个学习的过程和熟练使用的过程。所以一个大数据技术的基础环境还是很有必要的了解和熟悉的。
准备
服务器信息
-
4台 CentOS Linux release 7.9.2009 (Core)
1 2 3 4 5 6 7 8 9 10 11 12 13
172.26.10.71 cdh01 #主节点 172.26.10.72 cdh02 #从节点 172.26.10.73 cdh03 #从节点 172.26.10.74 cdh04 #从节点 #配置所有机器的hosts文件 vim /etc/hosts #新增信息如下: 172.26.10.71 cdh01 172.26.10.72 cdh02 172.26.10.73 cdh03 172.26.10.74 cdh04
-
服务器配置(4台配置一样)
-
SELinux关闭
1 2 3 4 5 6 7 8 9 10 11
#主要是对于大数据来说,主机内部是相互信任的,一些安全机制会降低集群效率,以及带来一些问题,所以建议是关闭的 #查看状态SELinux的状态 /usr/sbin/sestatus -v | grep "SELinux status" #临时修改 setenforce 0 #永久修改 vim /etc/selinux/config SELINUX=disabled
-
关闭防火墙
1 2 3 4 5 6 7 8
#查看防火墙状态 firewall-cmd --state #停止防火墙 systemctl stop firewalld.service #禁止防火墙开机启动 systemctl disable firewalld.service
-
调整vm.swappiness Linux内核参数
1 2 3 4 5 6 7 8 9 10 11
#Cloudera Manager 可能会报告您的主机由于交换而运行状况不良 vim /etc/sysctl.conf vm.swappiness=1 #修改完配置文件,同步其他机器 ansible cdh -m copy -a 'src=/etc/sysctl.conf dest=/etc/sysctl.conf' #让配置文件生效 ansible all -a 'sysctl -p'
-
禁用Transparent Hugepage
1 2 3 4 5 6 7 8 9
#已启用透明大页面压缩,可能会导致重大性能问题 echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled #修改配置vim /etc/rc.local 重启后也能生效 #以上运行命令新增 #赋值可执行权限 ansible all -a 'chmod +x /etc/rc.d/rc.local'
软件安装配置
-
Ansible 工具安装,方便后面的一些运维操作(可选)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#企业版 Linux 附加软件包(以下简称 EPEL)是一个 Fedora 特别兴趣小组,用以创建、维护以及管理针对企业版 Linux 的一个高质量附加软件包集,面向的对象包括但不限于 红帽企业版 Linux (RHEL)、 CentOS、Scientific Linux (SL)、Oracle Linux (OL) 。 yum install epel-release yum install ansible -y #配置下hosts文件信息 vim /etc/ansible/hosts #新增信息如下: cdh01 #新增信息如下: [cdh] cdh02 cdh03 cdh04 #使用技巧 1. 如果是非本地的批量操作 ansible cdh -m shell -a '执行' 2. 所有的配置的服务器批量操作 ansible all -m shell -a '执行'
-
配置免密登录(在主节点上配置和分发)
1 2 3 4 5 6 7 8
#在主机上生成密钥 ssh-keygen -t rsa #拷贝到其他节点上 ssh-copy-id cdh01 ssh-copy-id cdh02 ssh-copy-id cdh03 ssh-copy-id cdh04
-
一些配置文件的拷贝
1 2
#使用ansible命令拷贝文件 ansible cdh -m copy -a 'src=/etc/hosts dest=/etc/hosts'
-
配置服务器时间(可选)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#安装 yum install ntp -y #启动NTP时间服务器 service ntpd start #设置NTP开机自动启动 chkconfig ntpd on #查看NTP是否正常运行 chkconfig | grep ntp #以上可以使用ansible的命令来批量的执行命令 ansible all -m shell -a 'ntpq -p'
必要软件安装
-
Java安装(每台服务器都需要安装)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#资源下载 链接: https://pan.baidu.com/s/1uEtPhtZ8Ar-5jDKYYz6Dzg 密码: f03u --来自百度网盘超级会员V6的分享 如果过期请联系笔者 #通过rpm命令直接安装java rpm -ivh jdk-8u181-linux-x64.rpm #配置环境变量 vim /etc/profile #添加如下(使用rpm安装的java在/usr/java/jdk1.8XXXX) export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64 export JRE_HOME=/usr/java/jdk1.8.0_181-amd64/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
-
MySQL5.7安装(主节点安装数据库)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
#下载资源 链接: https://pan.baidu.com/s/1gWQcYVQm43WE9DVVcK_-4A 密码: j2ba --来自百度网盘超级会员V6的分享 #解压安装包 tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar #先卸载系统自带的数据库 yum -y remove mariadb-libs #安装一些必要工具 yum install -y net-tools #开始安装 rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm #启动服务 systemctl start mysqld #用资源中的自定义my.conf,覆盖/etc/my.conf cp /home/admin/mysql/my.conf /etc/my.conf #查看默认的密码 grep password /var/log/mysqld.log #登录数据库 mysql -uroot -p #修改数据库密码 set password = password('Password_123'); #设置远程登录 grant all privileges on *.* to 'root'@'%' identified by 'Password_123'; flush privileges; #创建需要的数据库和用户 CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; #创建用户 GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm'; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon'; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman'; GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive'; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie'; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue'; GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry'; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav'; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms'; #flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。 flush privileges; #配置MySQL的链接器 mkdir -p /usr/share/java/ cp mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar
安装
-
安装Cloudera Manager Server (主节点安装)
1 2 3 4 5 6 7 8 9 10 11 12
#资源下载 链接: https://pan.baidu.com/s/1W9FnZWsXTUi7mw5gTM3I-g 密码: gj46 --来自百度网盘超级会员V6的分享 #本地安装 yum localinstall ./cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm ./cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm ./cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm -y #执行必要的数据库脚本执行,MySQL数据库与CM Server是同一台主机 /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm #启动服务 systemctl start cloudera-scm-server & systemctl enable cloudera-scm-server
-
从节点安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#拷贝安装包到节点 ansible cdh -m copy -a 'src=/home/admin/cdh6.3.2/cloudera-repos dest=/home/admin/' #安装agent ansible cdh -a 'yum localinstall /home/admin/cloudera-repos/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm /home/admin/cloudera-repos/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm -y' #修改配置文件,看自己的需求所有都可以修改,也可以只修改从节点 vim /etc/cloudera-scm-agent/config.ini #server_host=localhost server_host=cdh01 #启动服务 systemctl start cloudera-scm-agent & systemctl enable cloudera-scm-agent
-
配置本地Parcel存储库
1 2 3 4 5 6 7 8 9 10 11 12
#资源下载 链接: https://pan.baidu.com/s/1jyFbQpvTZlK5DgR8ZIlJRA 密码: tjj6 --来自百度网盘超级会员V6的分享 #查看本地路径 cd /opt/cloudera/parcel-repo #拷贝文件到本地路径 cp /home/admin/cdh6.3.2/cloudera_manager/* /opt/cloudera/parcel-repo #执行用户组配置 chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
验证
-
浏览器访问cdh01:7180,默认的账户和密码 admin/admin
-
配置都是下一步和继续,看各自的需求来选择
-
这步检查尽量做到全部通过,防止后面增加不必要的麻烦
添加主机
- 服务器的环境还是和之前的一样
- 新主机当做从节点安装,参考上面的安装,步骤,一些从节点的配置,全部拷贝就好了
- 启动后,在CM界面上,点开所有主机,添加主机,然后全部选择已经管理的主机,点击添加就好了
FAQ
-
有遇到这个错误:No route to host (Host unreachable)
1
关闭所有的节点的防火墙即可
总结
如果想快速的使用大数据技术或者学习,还是建议优先使用CDH的产品,可以拿到一个相对稳定的环境,如果熟练使用后,想更深的了解内部原理和机制,可以使用原生的方式安装和运行。这里有一些参考:
文章作者 拉斐
永久链接 https://www.7benshu.com/post/2021/06/23c7a16cc7235a4283b80bccb69483b313/
版权声明
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
上次更新 2021-07-08
7本书-公众号