1 准备安装介质
1.1 底层服务器
服务器比较多,有HP,DELL,IBM多家服务器。
1.2 虚拟化
选用vmsphere的虚拟化
1.3 操作系统
选用Redhat Enterprise Linux 6.4作为操作系统,下载地址:
http://www.redhat.com
1.4 Java开发与运行环境
选用Oracle jdk1.7.0_55作为JAVA开发与运行环境,下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
1.5 Cloudera Manager(CM)
本文选用Cloudera Manager5.4.1作为管理平台,下载地址:
http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.4.1/RPMS/x86_64/
1.6 Cloudera Distribution Hadoop(CDH)
本文选用CDH5作为云计算环境,相关的组件包下载地址:
http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.4.1/RPMS/x86_64/
2 安装虚拟化
2.1 安装Vmware Vsphere
此处是运维的事,这次就先不介绍了,如有需要可以加QQ群找我。
3 安装与配置操作系统
3.1 安装系统
3.1.1关闭防火墙 和SELinux
说明:如果不关闭,集群间通信可能会出问题,造成服务不能正常启动。生产环境如果要做为在线服务还是需要。
1.1关闭防火墙:
serviceiptables stop (临时关闭)
chkconfigiptables off(重启后生效)
1.2关闭SELINUX:
setenforce0 (临时生效)(这个方法我没有运行成功)
修改/etc/selinux/config 下的SELINUX=disabled (重启后永久生效 )该方法测 试有效。
查看selinux状态:/usr/sbin/sestatus–v
3.1.2修改主机名
说明:
a.三台机器都需要进行相同操作
b./etc/sysconfig/network配置对应的主机名
c./etc/hosts 三台机器内容相同,来实现三台机器相互可以通过主机名访问
d.如果机器较多可以通过配置DNS服务器来解析主机名
1)修改/etc/sysconfig/network文件
NETWORKING=yes
HOSTNAME=bigdata-cdh01.epri.com.cn
2)修改/etc/hosts文件
192.168.5.198 bigdata-cdh01.epri.com.cn bigdata-cdh01
192.168.5.200 bigdata-cdh02.epri.com.cn bigdata-cdh02
192.168.5.201 bigdata-cdh03.epri.com.cn bigdata-cdh03
192.168.5.202 bigdata-cdh04.epri.com.cn bigdata-cdh04
192.168.5.203 bigdata-cdh05.epri.com.cn bigdata-cdh05
192.168.5.204 bigdata-cdh06.epri.com.cn bigdata-cdh06
192.168.5.205 bigdata-cdh07.epri.com.cn bigdata-cdh07
192.168.5.206 bigdata-cdh08.epri.com.cn bigdata-cdh08
3)重启网络服务后生效:servicenetwork restart
测试中重启网络服务会断网,而且不会自动连接,需要点击一下连接图标才能再次连接,请谨慎操作
3.2 建立用户与所属组
3.3 安装JAVA开发与运行环境
安装JDK6,配置环境变量
3.3.1先删除系统自带的jdk
rpm -qa | grep java
rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e --nodepsjava-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64
3.3.2安装jdk rpm -ivh jdk-7u55-linux-x64.rpm默认会安装在/usr/java下
rpm -ivh jdk-*.rpm安装jdk
用命令:vi /etc/profile
用快捷键Shift+g在末尾添加如下 `
exportJAVA_HOME=/usr/java/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
检验安装是否成功java -version 检测是否成功
3.4 创建SSH认证证书
在所有服务器中执行命令ssh-keygen -t rsa,默认在/root/.ssh目录下生成证书文件,如下图所示:
将主节点和所有子节点目录/root/.ssh下的公钥文件id_rsa.pub分别重命名为authorized_keys_master、authorized_keys_node1、authorized_keys_node2、authorized_keys_node3。
利用以下命令将子节点的证书文件传送到主节点:
scp /root/.ssh/authorized_keys_node1 root@cloudera-manager:/root/.ssh
利用以下命令将主节点与所有子节点的认证信息都加入authorized_keys中:
cat authorized_keys_master>>authorized_keys
catauthorized_keys_node1 >>authorized_keys
catauthorized_keys_node2>>authorized_keys
catauthorized_keys_node3>>authorized_keys
利用以下命令将认证的证书文件分发到子节点:
scp authorized_keysroot@cloudera-node225:/root/.ssh
设置authorized_keys权限
$ chmod 600 authorized_keys
设置.ssh目录权限
$ chmod 700 -R .ssh
4 安装Cloudera Manager
cm前期准备工作,在/opt/下创建cloudera目录,然后在目录下创建cm,下面存放的是,rpm文件。
在/var/www/html目录下创建cdh5并拷入以下文件:
CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel
CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha
manifest.json
4.2 创建用户
adduser cloudera-scm
4.3 修改Cloudera Manager Agent配置文件
修改/etc/cloudera-scm-agent/config.ini
中的server_host
为主节点的主机名
4.4 安装RPM软件包
依次安装以下软件包:
enterprise-debuginfo
cloudera-manager-daemons
cloudera-manager-agent
cloudera-manager-server
cloudera-manager-server-db
4.5 MySQL数据库的安装与配置
chkconfig mysqld on设置开机启动,并service mysqldstart启动mysql服务,
并根据提示设置root的初试密码:mysqladmin-u root password 'xxxx'。
mysql -uroot -pxxxx进入mysql命令行,创建以下数据库:
默认mysql不会生成 /etc/my.cnf 文件,cp /usr/my.cnf /etc/my.cnf
配置my.cnf
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
default-storage-engine=InnoDB
创建数据库
create database cmf;
3) 建数据库,授权。需要哪些库呢,免费版:amon、hmon、hive、smon、scm(Cloudera Manager 自身,我自己命名的)
这些库的名字其实是可以自定义的。其它都是官网示例的名字,就这样吧。保持一致。只有最后一个库是我自己命名的。
--hive数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--集群监控数据库
create database amon DEFAULT CHARSET utf8 COLLATEutf8_general_ci;
create database smon DEFAULT CHARSET utf8 COLLATEutf8_general_ci;
create database hmon DEFAULT CHARSET utf8 COLLATEutf8_general_ci;
--hue数据库
create database hue DEFAULT CHARSET utf8 COLLATEutf8_general_ci;
--oozie数据库
create database oozie DEFAULT CHARSET utf8 COLLATEutf8_general_ci;
并登录后用命令SHOW VARIABLES LIKE 'character%';查看值是否为utf8;
创建用户及远程授权连接
grant all on *.* toroot@"%" Identified by "root";
GRANT ALL PRIVILEGES ON *.* TO 'cmf'@'%' IDENTIFIED BY'cmf' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY 'hive'WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'%' IDENTIFIED BY 'hue'WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO oozie@'%' IDENTIFIED BY 'oozie'WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.2.101'IDENTIFIED BY 'admin' WITH GRANT OPTION;
FLUSH PRIVILEGES;
修改/etc/cloudera-scm-server/db.properties文件,内容如下:
将mysql-connector-java.jar文件放置于/usr/share/cmf/lib/目录中。
4.6 启动服务
依次启动以下服务:
mysqld、cloudera-scm-server-db、cloudera-scm-server、httpd
4.7 端口映射
7180、7182
完成后可以通过浏览器访问http://192.168.2.100:7180
5 通过Cloudera Manager安装CDH
时钟同步,以其中一个主机作为服务器添加如下:
vi /etc/ntp.conf
# add by liupeng on 2015-06-25
#restrict 192.168.5.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0 minpoll 4 maxpoll 5
fudge 127.127.1.0 stratum 2
检测成功与否
chkconfig --list ntpd
其中2-5为on状态就代表成功
其他的主机也开启服务,然后添加
先执行ntpdate 192.168.5.198
然后执行service ntpd start
#server 0.rhel.pool.ntp.org
#server 1.rhel.pool.ntp.org
#server 2.rhel.pool.ntp.org
server 192.168.5.198
检查是否成功,用ntp stat命令查看同步状态,出现以下状态代表启动成功:
synchronised to NTP server () at stratum 2
time correct to within 74 ms
polling server every 128 s
注意点:ntp服务器搭建完成后,节点就会与时间服务器进行时间同步,Cloudera建议采用ntp的方式进行时间同步,如果采用crontab+ntp的方式,cloudera manager是无法判断是否安装了ntp的,会一直报"The host's NTP service is not synchronized to any remoteserver"这样的错误(本人就是这样做的,导致集群一直报错,但是时间本来就没有误差,搞了好久才解决)
修改/etc/cloudera-scm-agent/config.ini文件中以下内容:server_host=cloudera-manager
server_port=7182
所有节点主机都将/proc/sys/vm/swappiness设置为0,方法如下:
执行命令echo 0 > /proc/sys/vm/swappiness
禁用“透明大页面”:
/sys/kernel/mm/redhat_transparent_hugepage/defrag设置为nerver,方法如下:
执行命令echo never >/sys/kernel/mm/redhat_transparent_hugepage/defrag
6 运行&测试
到此安装结束。
最后是个人简介:
个人就职于世界500强前5的国有企业,从事大数据,云计算,人工智能方面的研究和开发工作,个人比较喜欢开源,所以努力把自己工作中遇到的问题以博客的形式保存下来反馈于互联网,如果大家比较感兴趣可以加QQ群688281396进行交流。