文章目录
环境
centos7.5
cdh5.15.1
mariadb10.1
下载CDH和CM
CDH选择
下载地址:http://archive.cloudera.com/cdh5/parcels/5.15.1/
看好对应版本
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel 2018-08-17 10:15 2.0 GB
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 2018-08-17 10:15 41.0 B
manifest.json 2018-08-23 10:12 72.0 KB
CM的选择
下载地址:http://archive.cloudera.com/cm5/cm/5/
cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz
基础准备
网络名称修改
# hostnamectl set-hostname node101.yyd.cn
vi /etc/hostname
node101.yyd.cn
vi /etc/hosts
192.168.26.151 node101.yyd.cn cdh101
192.168.26.150 node102.yyd.cn cdh102
192.168.26.149 node103.yyd.cn cdh103
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node101.yyd.cn
[root@localhost ~]# service network restart
查看当前操作系统环境以及主机映射关系
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# uname -r
3.10.0-862.el7.x86_64
[root@localhost ~]#
[root@localhost ~]# uname -m
x86_64
[root@localhost ~]#
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 128659 1825 124924 18 1909 126155
Swap: 7991 0 7991
[root@localhost ~]#
[root@localhost ~]# hostname -i
172.30.1.71
[root@node101 ~]#
[root@node101 ~]# cat /etc/hosts | grep gla
192.168.26.151 node101.yyd.cn cdh101
192.168.26.150 node102.yyd.cn cdh102
192.168.26.149 node103.yyd.cn cdh103
[root@node101 ~]#
[root@node101 ~]#
打通SSH,设置ssh无密码登陆(所有节点)
#在主节点上执行
[root@cdh101 ~]$ ll -a #查看.ssh目录
[root@cdh101 ~]$cd .ssh
# 每个服务器都要生成这个
[root@cdh101 ~]$ssh-keygen -t rsa #遇到提示一直按回车就行
[root@cdh101 ~]$ll #此时ll查看会发现里面多了俩个文件
id_rsa --> 私密钥匙
id_rsa.pub --> 公用钥匙
#接着将公用钥匙写入到authorized_keys文件中,并修改这个文件的权限(重要,请不要忽略)
[root@cdh101 ~]$cat id_rsa.pub >> authorized_keys
[root@cdh101 ~]$chmod 600 authorized_keys #设置authorized_keys的访问权限
[root@cdh101 ~]$ssh localhost #不再提示输入密码,那么现在启动集群就不会再一直输入密码了
#每个服务器都操作,假如有三台,authorized_keys里面就有三个地址
[root@cdh101 ~]$scp ~/.ssh/authorized_keys hadoop@cdh-1:~/.ssh/ #scp文件到所有datenode节点
禁用防火墙(所有节点)
systemctl stop firewalld
systemctl disable firewalld
需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全
关闭 SELinux mode(所有节点)
vi /etc/sysconfig/selinux
SELINUX=permissive 或者 SELINUX=disabled
python2.7
centos 7.4 默认2.7 无需改变
禁用swappiness
没有swap,内存大,就直接关闭吧
vi /etc/sysctl.conf
新增
vm.swappiness = 0
修改最大文件数
临时修改
ulimit -n 10240
永久修改
vi /etc/security/limits.conf
* soft nofile 10240
* hard nofile 10240
禁用 Transparent Huge pages (THP)
大页面传输压缩,HADOOP MONGDB 等 推荐关闭
vi /etc/default/grub
#在下面行尾双引号前加入 [空格+transparent_hugepage=never]
GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never"
#重新生成grup配置文件
grub2-mkconfig -o /etc/grub2.cfg
reboot
编写集群管理脚本
批量执行服务的命令的脚本
shell命令xcall该脚本用于在所有主机上同时执行相同的命令
[root@node1 ~]# vi /usr/bin/xcall.sh
[root@node1 ~]#
[root@node1 ~]# more `which xcall.sh` #查看脚本内容
#!/bin/bash
#@author :yyd
#判断用户是否传参
if [ $# -lt 1 ];then
echo "请输入参数"
exit
fi
#获取用户输入的命令
cmd=$@
for (( i=101;i<=104;i++ ))
do
#使终端变绿色
tput setaf 2
echo ============= cdh${i}.gla.net.cn : $cmd ============
#使终端变回原来的颜色,即白灰色
tput setaf 7
#远程执行命令
ssh cdh${i}.gla.net.cn $cmd
#判断命令是否执行成功
if [ $? == 0 ];then
echo "命令执行成功"
fi
done
[root@node1 ~]# chmod +x /usr/bin/xcall.sh #千万别忘记添加执行权限哟
[root@node1 ~]#
[root@node1 ~]# xcall.sh ls -d /home/ #我们这里测试使用一下我们的脚本
============= node101.yyd.cn : ls -d /home/ ============
/home/
命令执行成功
============= node102.yyd.cn : ls -d /home/ ============
/home/
命令执行成功
============= node103.yyd.cn : ls -d /home/ ============
/home/
命令执行成功
[root@node1 ~]#
批量执行服务的命令的脚本([root@node101 ~]# more `which xcall.sh` )
使用我们上面自定义脚本批量安装rsync服务
[root@node1 ~]# xcall.sh "yum -y install rsync" #我的集群已经安装好了rsync服务,这里已经配置好了。
============= node101.yyd.cn : yum -y install rsync ============
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.cn99.com
Package rsync-3.1.2-4.el7.x86_64 already installed and latest version
Nothing to do
命令执行成功
============= node102.yyd.cn : yum -y install rsync ============
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.163.com
Package rsync-3.1.2-4.el7.x86_64 already installed and latest version
Nothing to do
命令执行成功
============= node103.yyd.cn : yum -y install rsync ============
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
Package rsync-3.1.2-4.el7.x86_64 already installed and latest version
Nothing to do
命令执行成功
[root@node1 ~]#
使用我们上面自定义脚本批量安装rsync服务([root@node101 ~]# xcall.sh "yum -y install rsync" )
批量同步文件的脚本
rsync是linux系统下的数据镜像备份工具
[root@node1 ~]# vi /usr/bin/xrsync.sh
[root@node1 ~]#
[root@node1 ~]# chmod +x /usr/bin/xrsync.sh
[root@node1 ~]#
[root@node1 ~]# more `which xrsync.sh`
#!/bin/bash
#@author :yyd
#判断用户是否传参
if [ $# -lt 1 ];then
echo "请输入参数";
exit
fi
#获取文件路径
file=$@
#获取子路径
filename=`basename $file`
#获取父路径
dirpath=`dirname $file`
#获取完整路径
cd $dirpath
fullpath=`pwd -P`
#同步文件到DataNode
for (( i=102;i<=104;i++ ))
do
#使终端变绿色
tput setaf 2
echo =========== cdh${i}.gla.net.cn : $file ===========
#使终端变回原来的颜色,即白灰色
tput setaf 7
#远程执行命令
rsync -lr $filename `whoami`@cdh${i}.gla.net.cn:$fullpath
#判断命令是否执行成功
if [ $? == 0 ];then
echo "命令执行成功"
fi
done
[root@node1 ~]#
批量同步文件的脚本([root@node1~]# vi /usr/bin/xrsync.sh)
测试使用xrsync.sh同步数据
[root@cdh101 .ssh]## xcall.sh cat /etc/hosts | grep gla #同步数据之前的数据
============= node101.yyd.cn : cat /etc/hosts ============
192.168.26.151 node101.yyd.cn cdh101
192.168.26.150 node102.yyd.cn cdh102
192.168.26.149 node103.yyd.cn cdh103
192.168.26.148 cdh104.gla.net.cn cdh104
============= node102.yyd.cn : cat /etc/hosts ============
192.168.26.151 node101.yyd.cn cdh101
192.168.26.150 node102.yyd.cn cdh102
192.168.26.149 node103.yyd.cn cdh103
192.168.26.148 cdh104.gla.net.cn cdh104
============= node103.yyd.cn : cat /etc/hosts ============
192.168.26.151 node101.yyd.cn cdh101
192.168.26.150 node102.yyd.cn cdh102
192.168.26.149 node103.yyd.cn cdh103
192.168.26.148 cdh104.gla.net.cn cdh104
============= cdh104.gla.net.cn : cat /etc/hosts ============
192.168.26.151 node101.yyd.cn cdh101
192.168.26.150 node102.yyd.cn cdh102
192.168.26.149 node103.yyd.cn cdh103
192.168.26.148 cdh104.gla.net.cn cdh104
[root@cdh101 .ssh]#
使用xrsync.sh同步数据([root@node101 ~]# xrsync.sh /etc/hosts)
下载第三方依赖包(注意,依赖包所有机器都得安装)
[root@cdh101 ~]# xcall.sh "yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb"
[root@cdh101 ~]#
Hue错误: Load Balancer 该角色的进程启动失败
需要提前安装环境 httpd, mod_ssl
yum install httpd
yum install mod_ssl
WebUi hue数据库连接不上
登录安装Hue的节点执行以下操作,等待安装完成后再回到界面点击测试连接即可成功连接
yum install python-psycopg2
yum install libxml2-python
yum install mysql*
CDH中安装Hue连接不上数据库 Unexpected error. Unable to verify database connection 完美解决方案
使用我们上面自定义脚本批量安装wget,vim服务
[root@node1 ~]# xcall.sh "yum -y install wget vim lrzsz "
安装jdk(所有节点)
下载页面
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

本文详细介绍CDH集群的搭建步骤,包括环境准备、网络配置、软件安装、服务配置及常见问题解决,涵盖Hadoop、Hive、YARN等组件的调优策略。
最低0.47元/天 解锁文章
1639

被折叠的 条评论
为什么被折叠?



