1、环境准备
系统:CentOS 6.5版本,64位
内存:24GB
硬盘:60GB
CPU:10核
1、检查服务器资源
# free -m
# df -h
//查看物理cpu个数
# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
//每个物理cup的核数
# cat /proc/cpuinfo| grep "cpu cores"| uniq
上面两个结果相乘=cup总核数
//结果一共有几核cpu
# cat /proc/cpuinfo| grep "processor"| wc -l
结果一共有几核cpu
2、配置ip、hostname、映射 (所有服务器)
1)查看文件信息并且追加信息
# vi /etc/sysconfig/network
HOSTNAME=cdh1
i插入修改,esc退出,:wq保存退出,:w保存不退出,:q!强制退出
2)重启生效
# service network restart
3)验证
# hostname
4)查看文件信息并且追加信息(所有机器)
# vi /etc/hosts
172.23.201.91 cdh1
172.23.201.92 cdh2
172.23.201.93 cdh3
5)验证
# ping www.baidu.com
# ping cdh1
6)检查映射是否配好
3、禁用ipv6
1)查看文件信息并且追加信息
vi /etc/modprobe.d/dist.conf
# echo "alias net-pf-10 off">>/etc/modprobe.d/dist.conf
# echo "alias ipv6 off">>/etc/modprobe.d/dist.conf
2)重启生效
ip a 验证是否成功
4、禁用selinux 和关闭防火墙
1)禁用selinux
# getenforce 查看selinux状态
# vi /etc/sysconfig/selinux
SELINUX=disabled
重启生效
验证:[root@bigdata01 ~]# getenforce
Disabled
2)关闭防火墙:
# service iptables stop
# 设置成开机不启动
# chkconfig iptables off
5、JDK安装(所有机器)
1)卸载系统自带的相关安装包
# rpm -qa | grep java
# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
2)创建目录,上传解压jdk
# mkdir -p /opt/modules
# mkdir -p /opt/softwares
# tar zxf jdk-7u67-linux-x64.tar.gz -C /opt/modules
3)配置java环境变量(所有机器)
# vi /etc/profile
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
4)配置生效(所有机器)
# source /etc/profile
5)拷贝给其他服务器(所有机器)
[root@bigdata01 modules]# scp -r ./ root@cdh2:/opt/modules/
[root@bigdata01 modules]# scp -r ./ root@cdh3:/opt/modules/
6)验证
# java -version
6、ssh免密码登录 (所有服务器)
0)ssh 针对用户,并且首先保证ssh localhost正常通畅
ssh localhost
1) 在每台服务器上生成公私密钥
ssh-keygen
2)分发公钥(注意:每次ssh登录后,事情做完后,记得exit)
ssh-copy-id -i ~/.ssh/id_rsa.pub localhost
ssh localhost
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh1
ssh cdh1
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh2
ssh cdh2
exit
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh3
ssh cdh3
exit
2)验证:
# ssh cdh2
注意:每次ssh登录后,事情做完后,记得exit
6、集群系统的时间同步
1)启动ntpd进程服务
service ntpd start
chkconfig ntpd on
chkconfig --list | grep ntpd
2)修改时间服务器的配置文件
# vi /etc/ntp.conf
注释打开,然后修改为本集群的网段
18 # restrict 172.23.201.0 mask 255.255.255.0 nomodify notrap
注释掉
22 #server 0.centos.pool.ntp.org
23 #server 1.centos.pool.ntp.org
24 #server 2.centos.pool.ntp.org
注释打开,如果系统没有下面信息,需要手动添加
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
3)所有机器启动并且配置开机时启动
# service ntpd start && chkconfig ntpd on && chkconfig --list | grep ntpd
4)更新本地时间
[root@bigdata01 java]# ntpdate -u 202.120.2.101
24 Feb 15:24:11 ntpdate[2408]: step time server 202.112.10.60 offset 4.004597 sec
ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)
s1a.time.edu.cn 北京邮电大学
s1b.time.edu.cn 清华大学
7、设置用户能打开的文件最大数量、进程最大数据、能使用的内存量 (所有服务器)(soft:警告;hard:停机)
1)查看文件信息并且修改
# vi /etc/security/limits.conf
* soft nofile 32728
* hard nofile 1024567
* soft nproc 65535
* hard nproc unlimited
* soft memlock unlimited
* hard memlock unlimited
2)bigdata01复制limits.conf到其他各台机器
# scp /etc/security/limits.conf root@cdh2.com:/etc/security/limits.conf
# scp /etc/security/limits.conf root@cdh3.com:/etc/security/limits.conf
3)重启生效
验证: # ulimit -a
注:强调该文件,严格按照格式来改最好通过复制修改,如果limits.conf配置错误,linux重启不能进入,解决办法是单用户进入修改《Linux进入单用户模式.pdf》
==========================系统基本配置结束==============================
一、准备三台机器
cdh1 内存6g cm server db server agent
cdh2 内存2g agent
cdh3 内存2g agent
二、cm的安装
1、分别修改三台机器的hostname 如下图
2、通过 service network restart 重启网络服务生效
3、分别修改三台机器的 ip 与主机名的对应关系
vi /etc/hosts
4、配置cdh1到cdh2和cdh3的ssh免密码登陆
生成无密码密钥对 命令 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cdh1 上分别执行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_dsa.pub cdh2:~/.ssh/authorized_keys
scp ~/.ssh/id_dsa.pub cdh3:~/.ssh/authorized_keys
5、所有机器都要关闭防火墙
临时关闭:
service iptables stop
重启后生效:
chkconfig iptables off
6、所有机器都要关闭 SELINUX
临时关闭:
setenforce 0
修改配置文件/etc/selinux/config(重启生效):
将 SELINUX=enforcing 改为 SELINUX=disabled
查看 SELINUX 状态:
1、/usr/sbin/sestatus –v
SELinux status: enabled(enabled:开启;disabled:关闭)
2、使用命令:getenforce
7、所有机器都要重启机器 命令reboot
8、所有机器都要安装jdk
1、检查liunx自带的jdk 命令 rpm -qa|grep java
2、卸载liunx自带的jdk
rpm --nodeps -e java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.i686
rpm --nodeps -e java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.i686
rpm --nodeps -e tzdata-java-2012j-1.el6.noarch
3、安装jdk
(1)、在/usr/local/下新建一个java文件夹 命令mkdir /usr/local/java。
(2)、解压jdk-7u80-linux-x64.tar.gz 命令 tar -zxvf jdk-7u80-linux-x64.tar.gz
(3)、删除压缩文件 命令 rm jdk-7u80-linux-x64.tar.gz
(4)、修改文件名 命令 mv jdk1.7.0_80/ jdk
(5)、配置java环境变量 命令 vi /etc/profile 添加内容
export JAVA_HOME=/usr/local/java/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOMdE/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存退出 让刚才的设置立即生效 命令 source /etc/profile。
(6)、把jdk软连接到/usr/java/default首先查看是否有/usr/java目录,没有的话新建此目录:mkdir /usr/java。然后添加软连接到/usr/java/default,命令如下:ln -s /usr/local/java/jdk /usr/java/default
为什么要添加软连接到/usr/java/default?这是因为有些软件,不会去找环境变量的java,而是找/usr/java下的,比如说cloudera manager在部署最后的spark时,一直报“上的客户端配置 (id=3) 已使用 1 退出,而预期值为 0”这个错误,其中一个原因就是访问java访问不到,参考:cloudera manager报错“客户端配置 (id=3) 已使用 1 退出,而预期值为 0”
9、所有机器都要设置ntp时间同步
所有节点安装 NTP:
yum -y install ntp
配置开机启动:
chkconfig ntpd on
检查是否设置成功:
chkconfig --list ntpd (2-5 为 on 状态则成功)
设置同步:
ntpdate -u ntp.sjtu.edu.cn(时钟服务器根据实际环境设置、本文采用 210.72.145.44-国家授时
中心服务器 IP 地址)
10、在cdh1上安装 MySql
rpm -qa | grep mysql 查看机器上的mysql信息
rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps 删除已安装的mysql
rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm --force --nodeps 安装mysql 服务端
rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm --force --nodeps 安装mysql 客户端
mysql> use mysql;
mysql> UPDATE user SET password=password("root") WHERE user='root'; 修改mysql密码
mysql>GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 允许用mysql客户端远程登陆mysql服务
mysql> flush privileges;
mysql> exit;
登陆mysql
mysql -u root -proot
也可以通过yum install -y mysql-server mysql mysql-devel安装
安装好后通过service mysqld restart 启动mysql服务
如果启动失败 尝试下面方法
- rm -fr /var/lib/mysql/*
- m /var/lock/subsys/mysqld
- killall mysqld
- 在重启 service mysqld start
- yum的方式安装mysql第一次没有密码
11、所有机器都要下载依赖包
yum -y install chkconfig
yum -y install python (2.6 required for CDH 5)
yum -y install bind-utils
yum -y install psmisc
yum -y install libxslt
yum -y install zlib
yum -y install sqlite
yum -y install cyrus-sasl-plain
yum -y install cyrus-sasl-gssapi
yum -y install fuse
yum -y install portmap
yum -y install fuse-libs
yum -y install redhat-lsb
12、Cloudera Manager Server和Agent
(1) 、 安装 Cloudera Manager Server&Agent
拷贝 cloudera-manager-el6-cm5.4.3_x86_64.tar.gz 到所有 Server、Agent 节点
创建 cm 目录:
mkdir /opt/cloudera-manager
解压 cm 压缩包:
tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
(2) 、 创建用户 cloudera-scm ( 所有节点)
执行:
useradd --system --home=/opt/cloudera-manager/cm-5.4.3/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
(3)、 配置 CM Agent
修改所有机器文件/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini 中
server_host 以及 server_port
(4)、 在cdh1上 配置 CM Server 的 数据库
• 拷贝mysql jar文件到目录 /usr/share/java/
• 注意jar包名称要修改为mysql-connector-java.jar
• 在mysql客户端上mysql库执行grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
来创建一个临时账户 表示 允许任意机器用temp用户的temp密码来登录mysql数据库
• cd /opt/cloudera-manager/cm-5.4.3/share/cmf/schema/
• ./scm_prepare_database.sh mysql temp -h cdh1 -uroot -proot --scm-host cdh1 scm scm scm
• 格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器
出现如下图表示配置成功
• drop user 'temp'@'%';
(5)、 创建 Parcel 目录
在server端(cdh1) 节点创建目录/opt/cloudera/parcel-repo,执行:
mkdir -p /opt/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
将下载好的文件(CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel、CDH-5.4.0-1.cdh5.4.0.p0.27-
el6.parcel.sha、manifest.json)拷贝到该目录下。
CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha 这个文件下载下来的时候是CDH-5.4.0-1.cdh5.4.0.p0.27-
el6.parcel.sha1 要把后面的1去掉
如果没有CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha这个文件需要制作 制作方法如下
制作CDH本地源
• 下载好文件CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel以及manifest.json,将这两个文件放到server节点的
/opt/cloudera/parcel-repo下。
• 打开manifest.json文件,里面是json格式的配置,找到与下载版本相对应的hash码,新建文件,文件名与你的
parel包名一致,并加上.sha后缀,将hash码复制到文件中保存。
Agent (所有机器)节点创建目录/opt/cloudera/parcels,执行:
mkdir -p /opt/cloudera/parcels
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels
(6)、 启动 CM Manager和Agent
执行:
Server端(cdh1):/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-server start
查看日志文件/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server/cloudera-scm-server.log
出现如下图表示server启动成功
Agents端(所有节点):/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-agent start
访问:http://192.168.52.151:7180,若可以访问(用户名、密码:admin),则安装成功。
Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。
三、CDH5 5
1、免费版本的 CM5 已经去除 50 个节点数量的限制。
通过在所有机器上执行命令echo 0 > /proc/sys/vm/swappiness 即可解决上面的问题。
在点击问题解决
选择要添加的组件
根据自己需要分配主机
一直点继续
安装完成后,就可以进入集群界面看一下集群的当前状况了
四、cdh 安装hive
1、添加服务
2、选择hive
3、选择hive的依赖
4、选择在哪个机器上安装hive
5、添加数据库
create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'root'@'%' IDENTIFIED BY 'root';
6、选择 hive的仓库目录
7、检查环境
8、出现如下界面表示安装成功