CDH5集群搭建
1. 修改主机名
使用命令:hostnamectl set-hostname master修改主机名,
使用 cat /etc/hostname查看修改情况
hostnamectl set-hostname slave1
hostnamectl set-hostname slave2
重新连接发现修改成功。
所有节点修改/etc/hosts文件,添加:
192.168.101.1 master
192.168.101.2 slave1
192.168.101.3 slave2
2. 配置SSH,打通master到slave1,slave2的无密码登录
在master上使用 ssh-keygen -t rsa 来生成公钥和私钥(连续回车,不设置密码)
使用scp命令将master的公钥发送到slave1,slave2的 ~/.ssh路径中并改名成authorized_keys,如果slave1,slave2中没有~/.ssh路径,则创建改路径。
然后发送公钥文件,
scp ~/.ssh/id_rsa.pub root@slave1:~/.ssh/authorized_keys
在master通过 ssh slave1成功无密登录slave1。
3. 关闭防火墙
使用systemctl status firewalld.service查看防火墙状态。
使用 systemctl stop firewalld.service关闭防火墙。
关闭防火墙开机启动 systemctl disable firewalld.service
4. 关闭selinux(所有节点)
查看
[root@dev-server ~]# getenforce
Disabled
[root@dev-server ~]# /usr/sbin/sestatus -v
SELinux status: disabled
临时关闭
##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
setenforce 0
永久关闭
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能生效
5. 安装NTP服务(所有节点)
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。
6. 安装jdk
下载JDK:
拷贝jdk-8u151-linux-x64.rpm到/usr/java/
删除以前安装的JDK
rpm -e 以前JDK的包名
安装JDK
rpm -ivh jdk-8u151-linux-x64.rpm
删除安装文件
rm jdk-8u151-linux-x64.rpm
修改环境变量
进入文件/etc/profile:
vi /etc/profile
添加内容:
JAVA_HOME=/usr/java/jdk1.8.0_151
JRE_HOME=/usr/java/jdk1.8.0_151/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
保存修改(按Esc键):
:wq
使修改生效:
source /etc/profile
查看是否修改成功:
echo $PATH
7. 安装mysql
下载Mysql:
https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
拷贝mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz到/usr/local /下。
将mysql安装包解压到指定目录,命令如下:
tar -zxvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz -C /usr/local
进入/usr/local目录:
cd /usr/local
为mysql安装目录创建软链接:
ln -s mysql-5.6.31-linux-glibc2.5-x86_64 mysql
为centos添加mysql用户组和mysql用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限):
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
进入安装mysql软件的目录,命令如下:
cd /usr/local/mysql
修改当前目录拥有者为新建的mysql用户,命令如下:
chown -R mysql:mysql ./
安装mysql,命令如下:
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysqldata/mysql //事先创建好 /home/mysqldata/mysql路径用于存放数据
如果出现错误:
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
执行 : yum –y install autoconf
修改 /etc/my.cnf ,如果没有改文件将 /support-files/my-default.cnf 复制到/etc中,改名成my.cnf。修改其内容为:
[client]
socket=/home/mysqldata/mysql/mysql.sock
[mysqld]
socket = /home/mysqldata/mysql/mysql.sock
character-set-server=utf8
datadir = /home/mysqldata/mysql
[mysql]
no-auto-rehash
default-character-set=utf8
启动mysql 服务:
./support-files/mysql.server start
将mysql进程放入系统进程中,命令如下:(mysql服务)
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
把mysql客户端命令加入到系统命令中,命令如下:或者将mysql的客户端启动命令加入到path路径中。
cd /usr/bin
ln –s /usr/local/mysql/bin/mysql mysql
重新启动mysql服务,命令如下:
service mysqld restart
开启数据库远程访问权限:
grant all privileges on *.* to ‘root’@'%' identified by "password";
flush privileges;
8. CDH5安装
1) 每个节点,在数据盘目录下建文件夹 hadoop用于存放数据,建立cloudera用于安装软件。 Tocc在home路径下创建这两个文件夹。
2) 下载cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz,CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel, CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1,manfest.json,并将CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1改命为CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha。将下载的所有文件发送到其他节点对应的目录。
3) 所有节点。
在 cloudera目录中解压 cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz。修改解压得到的文件夹中的 config.ini文件,将其中的server_host改成对应的主机名。
vim cm-5.12.1/etc/cloudera-scm-agent/config.ini
为所有机器创建用户:
useradd --system --home-dir /home/cloudera/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
为cloudera manager建立数据库,需要下载msyql数据库驱动下载地址:http://dev.mysql.com/downloads/connector/j/。解压上传文件到所有主机的 /home/cloudera/cm-5.12.1/share/cmf/lib/目录下。
4) 在master节点上使用cm给了脚本自动创建数据库:
/home/cloudera/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm 123456
其中cm是数据库,scm为CDH5数据库的用户名,123456为CDH5数据库的密码。
5) 启动CDH5.
在master节点上启动server:
/home/cloudera/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost cdh 123456
6) 登录 http://master:7180 admin, admin
安装过程中:
如果出现主机状况不良,每台主机运行
rm /home/cloudera/cm-5.12.1/lib/cloudera-scm-agent/cm_guid, 然后重启服务端和客户端
In HD01-05:
1)检查虚拟内存需求率
cat /proc/sys/vm/swappiness
显示如下:
30
2)临时降低虚拟内存需求率
sysctl vm.swappiness=0
3)永久降低虚拟内存需求率
echo 'vm.swappiness = 0' > /etc/sysctl.d/swappiness.conf
并运行如下命令使生效
sysctl -p
解决透明大页面问题
In HD01-05:
1)检查透明大页面问题
cat /sys/kernel/mm/transparent_hugepage/defrag
如果显示为:
[always] madvise never
2)临时关闭透明大页面问题
echo never > /sys/kernel/mm/transparent_hugepage/defrag
确认配置生效:
cat /sys/kernel/mm/transparent_hugepage/defrag
应该显示为:
always madvise [never]
3)配置开机自动生效
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
chmod +x /etc/rc.d/rc.local