1.环境准备
1.1 服务器配置(理想配置)
1.2 修改主机名和hosts文件(所有节点)
[root@hadoop001 ~]# vim /etc/hosts
vim /etc/hostname
1.3 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1.4 SSH免密登录(主节点)
ssh-keygen -t rsa
#分发到所有节点
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
1.5 关闭SELINUX(所有节点)
vi /etc/selinux/config
#修改
SELINUX=disabled
1.6 配置NTP时钟同步(所有节点)
yum -y install ntpdate
#设置定时同步
crontab -e
*/8 * * * * /sbin/ntpdate ntp1.aliyun.com;/sbin/hwclock -w > /dev/null 2>&1
1.7 设置swap空间(所有节点)
echo "vm.swappiness = 0">>/etc/sysctl.conf
#立即生效
sysctl -p
1.8 关闭大页面压缩(所有节点)
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
1.9 安装jdk (所有节点)
固定目录目录/usr/java下。
1)创建/usr/java目录
2)用SecureCRT将jdk-8u144-linux-x64.tar.gz上传至hadoop01,并解压到/usr/java目录下。
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
3)配置JAVA_HOME环境变量
(1)打开/etc/profile文件
vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
(2)让修改后的文件生效
source /etc/profile
4)测试JDK是否安装成功
java -version
如果已经装过,注意版本,locate jps 查看路径
建立同步连接
ln -s /opt/jdk1.8.0_202 /usr/java/default
1.10 安装mysql(主节点)
1)下载msql5.7 yum源
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2)安装yum源
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
3)安装mysql
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-server
yum -y remove mysql57-community-release-el7-9.noarch
4)启动mysql
systemctl start mysqld.service
5)查看root用户密码
grep 'temporary password' /var/log/mysqld.log
set global validate_password_policy=0;
set global validate_password_length=4
6)执行mysql初始化脚本
mysql_secure_installation
7)输入新密码
8)配置root用户远程访问权限
mysql> grant all privileges on *.* to 'root' @'%' identified by '******.123456';
mysql> flush privileges;
9)安装mysql驱动
安装驱动包(所有节点)
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.27.tar.gz
放在 /usr/share/java 命名:mysql-connector-java.jar
1.11 下载第三方依赖
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
2.CM安装
2.1 集群规划
2.2 搭建本地yum源(主节点)
2.2.1安装 httpd
yum install -y httpd
systemctl start httpd
systemctl enable httpd
2.2.2创建yum源(主节点)
文件放入对应目录
mkdir /var/www/html/{cm,cdh}
创建yum源
yum install -y createrepo
cd /var/www/html/cm
createrepo .
编辑配置文件
vi /etc/yum.repos.d/cm.repo
内容:
[cm]
name=cm
baseurl=http://hadoop01/cm/
enabled=1
gpgcheck=0
2.2.3下发到其他节点
scp /etc/yum.repos.d/cm.repo hadoop02:/etc/yum.repos.d/
scp /etc/yum.repos.d/cm.repo hadoop03:/etc/yum.repos.d/
2.3 安装CM
2.3.1安装CM server及agent
[root@hadoop01 ~]# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
[root@hadoop02 ~]# yum install cloudera-manager-agent cloudera-manager-daemons
[root@hadoop03 ~]# yum install cloudera-manager-agent cloudera-manager-daemons
修改配置文件
vim /etc/cloudera-scm-agent/config.ini
修改所有 server_host=hadoop01
2.3.2创建各组件需要的数据库
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
2)为CM配置数据库
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root 123456
3.启动CM服务
[root@hadoop01~]# systemctl start cloudera-scm-server cloudera-scm-agent
[root@hadoop02~]# systemctl start cloudera-scm-agent
[root@hadoop03~]# systemctl start cloudera-scm-agent
#查看状态
[root@hadoop01~]# systemctl status cloudera-scm-server
#查看异常信息
[root@hadoop01~]# journalctl -xe
访问http://hadoop01:7180,(用户名、密码:admin)
4.安装CDH
2.1 选择商业版本
1)欢迎页面
2)用户协议
3)选择免费版
2.2 部署CDH集群
1)选定集群物理节点
2)添加本地parcel库
替换成自己httpd中CDH的地址
3)等待parcel的下载、分配、解压和激活
4)检查集群网络环境
5)选择要安装的CDH组件,选择自定义安装
6)选择需要安装的组件,如下
7)CDH各组件角色分布
8)数据库连接测试
9)各组件基本设置,使用默认即可
10)等待安装部署和启动
11)启动成功
12)CM-HUE-OOZIE时间统一和oozie资源
oozie.processing.timezone
13)在yarn配置项中搜索“yarn.nodemanager.resource.memory-mb”,修改成4G。
14)在yarn配置项中搜索“yarn.scheduler.maximum-allocation-mb”,修改成2G。
5.YARN性能调优
每个job提交到yarn执行的时候,都会分配container容器去运行,而这个容器需要资源才能运行,那这个资源就是cpu和内存,也就是每个任务container都需要CPU和内存。
5.1 CPU
1.yarn.nodemanager.resource.cpu-vcores
表示该节点服务器上yarn可以使用的虚拟CPU个数,默认是8,推荐将值配置与物理核心个数相同,如果节点CPU核心不足8个,要调小这个值,yarn不会智能的去检测物理核心数
2.yarn.scheduler.minimum-allocation-vcores
单个任务最小可申请的虚拟核心数,默认为1
3.yarn.scheduler.maximum-allocation-vcores
单个任务最大可申请的虚拟核心水,默认为4,如果申请资源时,超过这个配置,会抛出InvalidResourceRequestException
5.2 内存
服务器节点上会有若干的内存,一部分给yarn,一部分给hdfs,一部分给hbase;Member相关的配置如下:
1.yarn.nodemanager.resource.memory-mb
设置该节点上yarn可使用的内存,默认为8G,如果节点内存资源不足8G,要减少这个值,yarn不会智能的去检测内存资源,一般这个设置yarn的可用内存资源
2.yarn.scheduler.minimum-allocation-mb
单个任务最小申请物理内存量,默认1024MB,根据自己的业务设定
3.yarn.scheduler.maximum-allocation-mb
单个任务最大申请物理内存量,默认为8291MB
5.3 实际案例
安装服务器为16核,64G内存
yarn.nodemanager.resource.cpu-vcores 虚拟core
这个参数根据自己生产服务器决定,比如公司服务器很富裕,那就直接1:1,设置成16,如果公司服务器不是很富裕,那就直接成1:2,设置成32,我们生产设置的是32
yarn.nodemanager.resource.memory-mb 总内存
生产上我们一般要预留15-20%的内存,那么可用内存就是64*0.8=51.2G,我们设置成50G就可以了(固定经验值)
yarn.scheduler.minimum-allocation-mb 单任务最小内存
如果设置成2G,那50/2 = 25,就是最多可以跑25个container
如果设置成3G,那50/3 = 16,就是最多可以跑16个container
yarn.scheduler.minimum-allocation-vcores 单任务最少vcore
如果设置vcore = 1,那么32/1 = 32,就是最多可以跑32个container,如果设置成这个,根据上面内存分配的情况,最多只能跑25个container,vcore有点浪费
如果设置vcore = 2,那么32/2 = 16,就是最多可以跑16个container
yarn.scheduler.maximum-allocation-vcores 单任务最多vcore
一般就设置成4个,cloudera公司做过性能测试,如果cpu大于等于5之后,cpu利用率反而不是很好(固定经验值)
yarn.scheduler.maximum-allocation-mb 单任务最大内存
这个要根据自己公司业务设定,如果有大任务,需要5-6G内存,那就设置为8G
原文链接:https://blog.csdn.net/u010452388/article/details/98234147