Centos6安装大数据集群(CDH5)
1 集群规划
【注意】:至少三台节点,主节点至少6G内存,另外两台至少4G内存,否则安装CDH5会因为运行环境不达标会报各种错误。
master、slave1、slave2
2 资源环境准备
Linux安装包:CentOS-6.5-x86_64-minimal
。
MySQL的jar:mysql-connector-java-5.1.28
。
JDK:oracle-j2sdk1.7-1.7.0+update67-1.x86_64
。
cloudera manager:
**cloudera agent**:`cloudera-manager-agent-5.11.0-1.cm5110.p0.101.el6.x86_64`。
**cloudera daemons**:`cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el6.x86_64`。
**cloudera server**:`cloudera-manager-server-5.11.0-1.cm5110.p0.101.el6.x86_64`、`cloudera-manager-server-db-2-5.11.0-1.cm5110.p0.101.el6.x86_64`。
parcel:CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel
、CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha
、manifest.json
。
3 Linux系统环境准备
3.1 安装Centos6.5
3.2 配置网络
3.2.1 命令
vi /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/sysconfig/network-scripts/ifcfg-eth0
###内容如下
DEVICE=eth0
HWADDR=00:0C:29:DA:27:3E
TYPE=Ethernet
UUID=de566494-8f5d-417a-a08c-161611f3749e
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
###自行切换
###master:192.168.200.121
###slave1:192.168.200.122
###slave2:192.168.200.123
IPADDR=192.168.200.121
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=8.8.8.8
3.2.2 重启网卡
service network restart
3.2.3 ping外网测试
ping www.liuzhaopo.top
3.2.4 配置Ip与主机名映射
3.2.4.1 编辑hosts命令
vi /etc/hosts
cat /etc/hosts
###添加
192.168.200.121 master
192.168.200.122 slave1
192.168.200.123 slave2
3.2.4.2 禁用IPv6
echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf
3.3 关闭防火墙和SELinux
###暂时关闭
service iptables stop
###永久性关闭
chkconfig iptables off
vi /etc/sysconfig/selinux
###将SELINUX改为disabled
SELINUX=disabled
3.4 设置文件打开数量和用户最大进程数
###查看文件打开数量
ulimit -a
###查看用户最大进程数
ulimit -u
vi /etc/security/limits.conf
###增加以下内容:
* soft nofile 65535
* hard nofile 65535
* soft nproc 32000
* hard nproc 32000
3.5 yum源跟换和添加
3.5.1 更换yum 源为163
cd /etc/yum.repos.d
yum install -y wget
rename .repo .repo.bak *
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum clean all
yum makecache
yum install -y lrzsz
3.5.2 添加cloudera-manager.repo源 【所有节点都要】
cd /etc/yum.repos.d/
vi cloudera-manager.repo
###添加以下内容后保存退出
[cloudera-manager]
# Packages for Cloudera Manager, Version 5, on RedHat or CentOS 6 x86_64
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5/
gpgkey =https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
gpgcheck = 1
3.6 安装JDK
卸载Centos自带的JDK
sudo rpm -qa|grep jdk 或 sudo rpm -qa|grep java
sudo rpm -e --nodeps xxx yyy zzz
3.6.1 安装JDK命令
yum install -y oracle-j2sdk1.7
3.6.2 配置环境变量
vi /etc/profile
###在文件的末尾添加一下内容
#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export PATH=$PATH:$JAVA_HOME/bin
3.6.3 生效环境变量
echo "JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera" >> /etc/environment
source /etc/profile
3.6.4 降低对硬盘的缓存
###/proc/sys/vm/swappiness设置为0,修改swap空间的swappiness
echo "vm.swappiness=0" >> /etc/sysctl.conf
3.7 集群时间同步
全部节点:
#全部节点安装ntp
rpm -qa |grep ntpd
###没有安装ntp,则需要安装此服务
yum install -y ntp
master:
vi /etc/ntp.conf
###去掉这个注释,将地址改成网段地址
restrict 192.168.200.0 mask 255.255.255.0 nomodify notrap
###注释掉这几个
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
###添加一下内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10
vi /etc/sysconfig/ntpd
###加入下面一句话,用于配置boot时间和系统时间同步
SYNC_HWCLOCK=yes
service ntpd start
service ntpd status
chkconfig ntpd on
chkconfig --list |grep ntpd
slave1、slave2:
输入 crontab -e 命令进入编辑状态,然后输入一下内容(该任务保存在目录/var/spool/cron 下,必须用root用户才能看到 )
* * * * * /usr/sbin/ntpdate master
3.8 配置免密登录
******配置主机之间的免密ssh登陆
假如 master 要登陆 slave1、slave2
在master上操作:
首先生成密钥对,命令如下:
ssh-keygen (提示时,直接回车即可)
将生产的秘钥copy到master上,命令如下
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
如果出现 ssh-copy-id: command not found 需要执行该命令(yum -y install openssh-clients)
4 cdh安装
4.1 安装MySQL
注意:MySQL安装在master节点上。
4.1.1 查看CentOS自带mysql是否已安装
yum list installed | grep mysql
4.1.2 卸载自带的MySQL
若有自带安装的mysql,如何卸载CentOS系统自带mysql数据库?
输入:yum -y remove mysql-libs.x86_64,若有多个依赖文件则依次卸载。
当结果显示为Complete!即卸载完毕。
4.1.3 查看yum库上的MySQL版本信息
查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)。
输入:sudo yum list | grep mysql 或 sudo yum -y list mysql*
4.1.4 使用yum安装MySQL数据库
使用yum安装mysql数据库。
输入:yum -y install mysql-server mysql mysql-devel ,命令将:mysql-server、mysql、mysql-devel都安装好,当结果显示为“Complete!”即安装完毕。
注:安装mysql只是安装了数据库,只有安装mysql-server才相当于安装了客户端。
4.1.5 设置MySQL开机自启
chkconfig mysqld on
4.1.6 启动MySQL
service mysqld start
4.1.7 修改MySQL密码
安装好mysql是没有密码的,需要进行设置,进入msyql将密码修改为你自己的,我这里将密码修改成root
输入:mysql -uroot
mysql> use mysql;
mysql> update user set password=password('root') where user='root' and host='localhost';
mysql> flush privileges;
4.1.8 验证密码是否修改成功
###能够进入mysql的shell界面,代表成功。
mysql -uroot -proot
4.1.9 修改MySQL的访问权限
输入:mysql -uroot -proot
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
mysql> flush privileges;
4.2.0 创建表cdh相关默认数据库
输入命令;mysql -uroot -proot 进入mysql,执行以下sql建库语句
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database reports DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database navigatoraudit DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database navigatormetadata DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
4.2 在主节点【master】Cloudera Manager Server
4.2.1 在线安装
yum install cloudera-manager-daemons cloudera-manager-server
4.2.2 离线安装
资源下载地址:https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5/
上传三个server的资源包到master节点上
cloudera-manager-server-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
cloudera-manager-server-db-2-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
4.2.2.1 安装
yum install -y postgresql-server
rpm -ivh cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
rpm -ivh cloudera-manager-server-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
rpm -ivh cloudera-manager-server-db-2-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
4.3 MySQL驱动
把驱动jar包拷贝到master节点去。
拷贝mysql的连接驱动【mysql-connector-java-5.1.28.jar】到该目录下 /usr/share/cmf/lib
4.4 在主节点【master】初始化CM5的数据库
/usr/share/cmf/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm root root
4.5 上传CHD5大数据服务组件资源包
上传到master节点的/opt/cloudera/parcel-repo。
下载地址【我已经下载了,无需再次下载】:http://archive.cloudera.com/cdh5/parcels/latest/
cd /opt/cloudera/parcel-repo
上传:CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel和CDH-5.11.0-1.cdh5.11.0.p0.34-el6.parcel.sha以及manifest.json 这个目录下 /opt/cloudera/parcel-repo
使用 chmod -R guo+wr xxx 给上述三个文件配置可写可读的权限
4.6 启动Cloudera Manager Server
###主节点【master】上启动Cloudera Manager Server
service cloudera-scm-server start
###查看本机端口映射情况,等待出现7180端口映射,没有netstat的话yum install net-tools
netstat -nltp
###在/var/log文件夹里有server和agent的日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
4.7 浏览器验证
4.8 安装agent
注意,所有节点都需要安装agent。
4.8.1 在线安装
yum install cloudera-manager-agent cloudera-manager-daemons
4.8.2 离线安装
上传这两个个server的资源包到所有节点上
cloudera-manager-agent-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
### 安装顺序
yum install -y openssl-devel perl bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl python-psycopg2 MySQL-python
### 注意:master节点不需要安装daemons了,因为在安装server的时候已经安装了。
rpm -ivh cloudera-manager-daemons-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
rpm -ivh cloudera-manager-agent-5.11.0-1.cm5110.p0.101.el6.x86_64.rpm
4.8.3 修改config.ini内容
所有节点都要修改。
vi /etc/cloudera-scm-agent/config.ini
###修改为主节点的master
server_host=master
4.9 启动Cloudera Manager
###master、slave1、slave2都上启动Cloudera Manager Server
service cloudera-scm-agent start
5 登录安装cdh
5.1 浏览器访问
5.2 安装cdh组件
仔细看我上传的cdh资源包的名字:
所以这一步你还会选错吗?
资源分配环节,大概需要二十分钟的样子:
主机检查:
透明大页面压缩,它已经告诉了你如何解决这个异常,我在最后面的异常1也已经写了如何解决这个异常:
必须保证没有任何异常再去安装:
演示安装Zookeeper:
演示安装YARN:
演示安装HBase:
监控台概览:
这个监控台数据图标要显示出来,大概需要十来分钟,一开始会报连接被拒绝,或者什么状态不良,这个没事,虚拟机嘛,电脑性能不是很好的话,别要求太高了,所以你要搭建这个电脑的配置运行内存至少16G。
cdh组件分配概览:
附加:
1.执行任务
在安装完hdfs,yarn服务时可以模拟执行任务
hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100
其实这个就是计算π的。
附加:
如需要通过域名访问,需要在Windows的hosts文件里配置
6 Clouder Manager Server和agent 安装过程异常情况处理
6.1 异常1
已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 6.3 (Final)”且版本为“2.6.32-279.el6.x86_64”的 Kernel 已将 enabled 设置为“[always] never”,并将 defrag 设置为“[always] never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会设置它
(每个节点)
解决方案:
全部节点运行
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /etc/rc.local
6.2 异常2
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
解决方案:
echo 0 > /proc/sys/vm/swappiness
sysctl vm/swappiness
echo 'vm.swappiness = 0'>/etc/sysctl.conf
sysctl -p
6.3 异常3
pstree: 未找到命令
解决方案:
yum install -y psmisc
6.4 找不到jdk
输入:sudo vi /etc/sudoers
,在sudoers最后面添加以下内容
Defaults env_keep+=JAVA_HOME
输入:sudo vi /etc/default/bigtop-utils
在 bigtop-utils 文件中添加以下内容
export JAVA_HOME=/usr/java/latest
然后执行以下命令
source /etc/default/bigtop-utilssource /etc/default/bigtop-utils
6.5 异常
如果出现agent主机不良状况Error, CM server guid updated, expected 85587073-270d-43d9-a44a-e213d9f7e45b, received 4c1402a5-8364-4598-a382-0c760710e897
,尝试运行以下命令rm -rf /var/lib/cloudera-scm-agent/cm_guid
之后重启agentservice cloudera-scm-agent restart
6.6 安装hive异常
异常描述:
Logon denied for user/password. Able to find the database server and database, but logon request was rejected
解决办法:
mysql > grant all privileges on *.* to 'root'@'主机名' identified by 'msql密码' with grant option;
###设置root授权访问以上所有的数据库
mysql > flush privileges;
- 本文标签: Hadoop CDH Linux
- 本文链接: http://www.lzhpo.com/article/73
- 版权声明: 本文由lzhpo原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权