一、环境准备
1、修改主机名(所有节点)
/etc/sysconfig/network
/etc/hosts
2、关闭防火墙(所有节点)
service iptables stop
chkconfig iptables off;
3、关闭SELINUX(所有节点)
vi /etc/sysconfig/selinux
SELINUX=disabled
将SELINUX属性值设置为disabled(需要重启生效)
4、修改内核参数(所有节点)
echo "vm.swappiness = 0" >> /etc/sysctl.conf
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
5、设置单进程打开文件限制
cat >>/etc/security/limits.conf <
* soft nofile 65535
* hard nofile 65535
EOF
6、设置系统文件数限制
cat >> /etc/sysctl.conf <
############
fs.file-max = 655350
EOF
7、关闭PackageKit
编辑/etc/yum/pluginconf.d/refresh-packagekit.conf文件设置enabled=0
8、检查umask
umask
如果输出值不为0022,请编辑/etc/profile找到当前输出值项进行修改为0022
9、主机节点的SSH免密登陆(所有节点)
ssh-keygen -t rsa -P ''
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys
scp $HOME/.ssh/authorized_keysroot@hadoop2:$HOME/.ssh/
ssh-keygen -t rsa -P ''
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
scp $HOME/.ssh/authorized_keysroot@hadoop3:$HOME/.ssh/
ssh-keygen -t rsa -P ''
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
scp $HOME/.ssh/authorized_keysroot@hadoop1:$HOME/.ssh/
scp $HOME/.ssh/authorized_keysroot@hadoop2:$HOME/.ssh/
10、主机时钟同步(所有节点)
所有节点配置NTP服务,所有datanode节点以master节点为基础同步时间
安装包:
ntpdate-4.2.6p5-1.el6.centos.x86_64
ntp-4.2.6p5-1.el6.centos.x86_64
--------------------------------------------------------------------
vi /etc/ntp.conf
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
includefile /etc/ntp/crypto/pw
restrict 127.0.0.1
restrict -6 ::1
---------------------------------------------------------------------
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap
restrict default kod nomodify notrap nopeernoquery
restrict -6 default kod nomodify notrapnopeer noquery
server hadoop1 prefer
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
broadcastdelay 0.008
keys /etc/ntp/keys
restrict 127.0.0.1
restrict -6 ::1
二、JDK安装
解压jdk-7u51-linux-x64.tar.gz到/usr/local/目录下
tar -zxvf jdk-7u51-linux-x64.tar.gz -C /usr/local/
设置系统/etc/profile环境变量,复制脚本执行
cat >>/etc/profile <
export JAVA_HOME=/usr/local/jdk1.7.0_51
export JRE_HOM=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
EOF
source /etc/profile
三、安装MYSQL数据库(只要nm其中一个节点安装)
1、删除系统自带安装mysql软件
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
2、添加 mysql 组和 mysql 用户
groupadd mysql
useradd -r -g mysql mysql
3、解压mysql软件到指定的安装目录
tar -zxvf /data1/bxji/software/tools/mysql-5.5.50-linux2.6-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -s mysql-5.5.50-linux2.6-x86_64/ mysql
4、更改 mysql 所在的目录所属的组和用户
chown -R mysql /usr/local/mysql-5.5.50-linux2.6-x86_64
chgrp -R mysql /usr/local/mysql-5.5.50-linux2.6-x86_64
chown -R mysql mysql
chgrp -R mysql mysql
5、数据库初始化
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local /mysql --datadir=/usr/local/mysql/data
chown -R root /usr/local/mysql-5.5.50-linux2.6-x86_64
chown -R mysql /usr/local/mysql-5.5.50-linux2.6-x86_64/data
6、复制配置文件到/etc/my.cnf
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
7、设置开机自启动项
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start
8、添加系统环境变量
配置环境变量,修改/etc/profile 文件增加以下内容
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
9、修改 root 用户密码
use mysql;
UPDATE user SET password=PASSWORD('hadoop') WHERE user='root';
FLUSH PRIVILEGES;
四、cloudera manager 安装(其中一台主节点)
1、下载软件
cloudera-manager-el6-cm5.4.5_x86_64.tar.gz
2、解压到/opt 目录 。上传并解压 cloudera-manager-el6-cm5.4.5_x86_64.tar.gz 到 master节点
( cdh5 的源会默认在/opt/cloudera/parcel-repo 寻找)
tar -zxvf /data1/software/tools/ cloudera-manager-el6-cm5.4.5_x8 6_64.tar.gz -C /opt
3、添加 mysql 驱动
将 mysql 驱动 mysql-connector-java-5.1.25.jar 放到/opt/cm-5.4.5/share/cmf/lib/目录
4、给所有节点添加 cloudera-scm 用户
useradd --system --home=/opt/cm-5.4.5/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
5、修改 cloudera-scm-agent 配置
修改/opt/cm-5.4.5/etc/cloudera-scm-agent/config.ini 下面的serer_host 为主节点的 hostname
6、初始化 mysql 数据库
进入 mysql 数据库控制台,创建以下数据库
--hive 数据库 create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci ;
--集群监控数据库 create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci ;
--hue 数据库 create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
-- oozie 数据库 create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on *.* to root@"%" Identified by "hadoop";
7、为 Cloudera Manager 5 建立数据库
/opt/cm-5.4.5/share/cmf/schema/scm_prepare_database.sh mysql cm -hqbcdhserv1 -uroot -p
hadoop --scm-host qbcdhserv1 scm scm scm
8、 开启 Cloudera Manager 5 Server 端
/opt/cm-5.4.5/etc/init.d/cloudera-scm-server start
9、开启 Cloudera Manager 5 Agents 端
将主节点/opt/cm-5.4.5 集群内分发
scp/opt/cm-5.4.5 到所有 datanode 节点上,然后在每台机器上开启 Agents 端:
scp -r /opt/cm-5.4.5 [email protected]:/opt
scp -r /opt/cm-5. 4.5 [email protected]:/opt
在所有 datanode 节点上,创建 cloudera-scm-agent 目录
mkdir /opt/cm-5.4.5/run/cloudera-scm-agent
在所有 datanode 节点上,启动(注意必须以管理员权限启动)
sudo /opt/cm-5.4.5/etc/init.d/cloudera-scm-agent start
10. 浏览器登录 Cloudera Manager 5 控制台
浏览器启动 Cloudera Manager 5 控制台(默认端口号是 7180),启动成功就会看到登陆页面。 http://192.168.58.93:7180/cmf/login 初次登录 用户名:admin 密码:admin
五、安装CDH5(其中一台主节点)
1、CDH5软件准备
CDH5软件下载地址http://archive.cloudera.com/cdh5/parcels/5.6/
下载安装 CDH 依赖 rpm 包 文 件 。 根据当前操作系统版本选 择http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.7.0/RPMS/x86_64/ 下, cloudera-manager-daemons 与 cloudera-manager-agent 。
2、制作 CDH 本地安装源
下载完成后,将这两个文件放到 其中一台主节点(cdh1)节点的 /opt/cloudera/parcel-repo 下
cp /data1/bxji/software/tools/ CDH-5.4.5-1.cdh5.4.5.p0.7-el6.parcel /opt/cloudera/parcel-repo
cp /data1/bxji/software/tools/manifest.json /opt/cloudera/parcel-repo
cp /opt/cloudera/parcel-repo/ CDH-5.4.5-1.cdh5.4.5.p0.7-el6.parcel.sha1 /opt/clouder a/parcel-repo/CDH-5.4.5-1.cdh5.4.5.p0.7-el6.parcel.sha
重启 cloudera-scm-server 以识别安装源
sudo /opt/cm-5.4.5/etc/init.d/cloudera-scm-server restart
3、正式安装CDH
集群基本参数配置。
这里有几个重要的目录配置,作为 hdfs 根目录应该指向存储空间较大的硬盘目录(本次安装环 境磁盘空间都在/根路径,这里就不修改了)。
欢迎大家关注我的微信公众号,里面有很多相关的技术干货,也能随时联系到我。谢谢!