CDH5集群搭建

Posted smzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,打通masterslave1,slave2的无密码登录

在master上使用 ssh-keygen -t rsa  来生成公钥和私钥(连续回车,不设置密码)

 技术分享图片

使用scp命令将master的公钥发送到slave1,slave2的 ~/.ssh路径中并改名成authorized_keys,如果slave1,slave2中没有~/.ssh路径,则创建改路径。

然后发送公钥文件,

 scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys

在master通过 ssh slave1成功无密登录slave1。

3.     关闭防火墙

使用systemctl status firewalld.service查看防火墙状态。

使用 systemctl stop firewalld.service关闭防火墙。

关闭防火墙开机启动 systemctl disable firewalld.service

 4.     关闭selinux(所有节点)

查看

[[email protected] ~]# getenforce

Disabled

[[email protected] ~]# /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:

http://download.oracle.com/otn/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm

拷贝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

 

 

 

 

 


以上是关于CDH5集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

CDH5.7Hadoop集群搭建(离线版)

搭建5个节点的hadoop集群环境(CDH5)

搭建5个节点的hadoop集群环境(CDH5)

大数据平台CentOS7+CDH5.12.1集群搭建

CDH搭建大数据集群

centos7.5搭建cdh5.13.0