一 Linux 文件系统准备
1. 拍摄快照
登录阿里云控制台, 拍摄快照, 注意有几个关键点尽量拍摄快照, 系统初始状态 CM 环境准备完成 CM 安装完成 CDH 安装完成
2. 挂载设备
三个主机都执行
创建挂载目录
$mkdir /data
查看设备
$df -h $fdish -l
得知 / dev/vdb 没有挂载
格式化设备
$mkfs.ext3 /dev/vdb
编写开机自动挂载脚本
- $mkdir /opt/shell/
- $vim /opt/shell/mymount.sh
- #!/bin/bash
- #
- mount -o rw /dev/vdb /data
修改权限
$chmod 777 /opt/shell/mymount.sh
设置开机运行
$vim /etc/rc.local
在文件中加入一行
/opt/shell/mymount.sh
二系统环境准备
1. 网络配置
修改 hostname 三台机器分别改为 cdh01cdh02cdh03
$vim /etc/sysconfig/network
重启网络服务
$service network restart
修改 IP 与主机名的对应关系
vi /etc/hosts
内网 ip1 cdh01
内网 ip2 cdh02
内网 ip3 cdh03
2. SSH 两两免密码登录
三个云主机要设置自身免密码登录, 并且三个云主机之间设置两两免密码登录以 cdh01 为例:
设置自身免密码登录
在 cdh01 产生密钥, 将公钥追加重定向到认证文件中在三台机器中都执行如下命令:
- $ssh-keygen -t dsa -P -f ~/.ssh/id_dsa
- $cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cdh01 免密码登录到 cdh02
将 cdh01 的公钥远程拷贝到 cdh02 中, 这时需要输入 cdh02 的密码; 再在 cdh02 中将已经远程拷贝过来的 cdh01 的公钥追加重定向到 cdh02 的认证文件中这是因为私钥加密, 公钥解密, cdh01 与 cdh02 通信需要先用私钥加密, 私钥加密的要用公钥解密, 所以要将 cdh01 的公钥追加到 cdh02 的认证文件中
- $scp ~/.ssh/id_dsa.pub root@cdh02:~
- $cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
cdh01 免密码登录到 cdh03
- $scp ~/.ssh/id_dsa.pub root@cdh03:~
- $cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
同理可以完成 cdh02 免密码登录到 cdh01 和 cdh03,cdh03 免密码登录到 cdh01 和 cdh02
3. 关闭防火墙
临时关闭
$service iptables stop
永久关闭需重启生效
$chkconfig iptables off
4. 关闭 SELINUX
$vim /etc/selinux/config
将 SELINUX=enforcing 修改为 SELINUX=disabled
查看 SELINUX 状态
$/usr/sbin/sestatus
执行 $/usr/sbin/sestatus, 可见 SELINUX status:(enabled: 开启; disabled: 关闭)
5. 安装 JDK
采用 RPM 包安装
$rpm -ivh jdk-7u79-linux-x64.rpm
配置环境变量
- $vim /etc/profile
- export JAVA_HOME=/usr/java/jdk1.7.0_79
- export PATH=$JAVA_HOME/bin:$PATH
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使环境变量生效
$source /etc/profile
6. 安装时间同步
所有节点安装 NTP
$yum -y install ntp
设置开机启动
$chkconfig ntpd on
检查是否设置成功
$chkconfig --list ntpd
设置时间同步
$ntpdate -u ntp1.aliyun.com
7. 主节点安装 MySQL
查看并卸载之前版本
查看系统是否安装了 MySQL, 使用命令
$rpm -qa | grep mysql
卸载命令类似下面
- $rpm -ev mysql-*.RHEL4.1
- $yum -y remove mysql-libs-5.1.71-1.el6.x86_64
继续查看是否有未删尽的目录
$find / -name mysql
删除查找出的所有 mysql 目录, 例如:
- $rm -rf /var/lib/mysql
- $rm -rf /var/lib/mysql
- $rm -rf /usr/lib64/mysql
- $rm -fr /usr/include/mysql
手动删除 my.cnf 文件
卸载后 / etc/my.cnf 有可能不会删除, 需要进行手工删除
rm -f /etc/my.cnf
再次查找机器是否安装 mysql
$rpm -qa|grep -i mysql
如果无结果, 说明已经卸载彻底
安装 mysql
使用如下命令安装 Server 和 Client:
- $rpm -ivh MySQL-server-5.6.*.rpm
- $rpm -ivh MySQL-client-5.6.*.rpm
- $rpm -ivh MySQL-devel-5.6.*.rpm
注意 MySQL 的版本选择 5.5 或 5.6, 因其和 Hadoop 生态圈的 OozieHueHive/ImpalaSqoop 等的兼容性比较好
启动 MySQL
查看状态
$service mysql status
如果没有运行, 则使用如下命令启动:
$service mysql start
设置开机启动
- $chkconfig --add mysql
- # 或者
- $chkconfig mysql on
查看是否生效
$chkconfig --list mysql
查看初始密码
$cat /root/.mysql_secret
给 mysql 设置 root 密码
使用如下命令进入 mysql:
$mysql -u root -p
输入密码初始密码后进入 MySQL 命令行, 再修改密码
- mysql>SET PASSWORD = PASSWORD(newpwd);
- mysql>quit;
退出后再用新密码测试
$mysql -uroot -pnewpwd
如果可以登录成功, 则表示 mysql 数据库已经安装成功
8. 下载安装第三方依赖包
所有节点都需下载安装依赖包
$yum -y install chkconfig python 2.6 required for CDH 5 bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
三安装 Cloudera Manager Server&Agent
1. 安装 Cloudera Manager Server&Agent
上传文件
拷贝 cloudera-manager-el6-cm5.6.1_x86_64.tar.gz 到所有 ServerAgent 节点
创建 cm 目录
$mkdir /opt/cloudera-manager
解压 cm 压缩包
$tar -zxvf /opt/tools/cdh/cloudera-manager-el6-cm5.6.1_x86_64.tar.gz -C /opt/cloudera-manager
2. 创建用户 cloudera-scm(所有节点)
所有节点创建用户
$useradd --system --home=/opt/cloudera-manager/cm-5.6.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
查看用户是否成功创建:
$cat /etc/passwd
3. 配置 CM Agent
所有的 Agent 机器都需要修改
修改文件 / opt/cloudera-manager/cm-5.6.1/etc/cloudera-scm-agent/config.ini 中 server_host 以及 server_port
server_host=cdh01,server_port 7182
4. 配置 CM server 数据库
在主节点执行
拷贝 jar 包
拷贝 / opt/tools/cdh / 目录下的 mysql jar 文件到目录 / usr/share/java / 中, 并且 jar 包名要修改为 mysql-connector-java.jar 如果没有 java 目录需要先创建
- $mkdir /usr/share/java
- $cp /opt/tools/cdh/mysql-connector-java-5.1.26-bin.jar /usr/share/java/mysql-connector-java.jar
因为在启动时会到这个目录下找 jar 包, 如果没有找到就认为没有 jar 包, 会报数据库 JDBC connection 的错误
创建临时账户
进入 mysql, 创建临时账户, 来于建立数据库
- mysql>grant all on *.* to temp@% identified by temp with grant option;
- mysql>FLUSH PRIVILEGES;
执行 scm_prepare_database.sh 脚本
- $cd /opt/cloudera-manager/cm-5.6.1/share/cmf/schema/
- $./scm_prepare_database.sh mysql temp -h cdh01 -utemp -ptemp --scm-host cdh01 scm scm scm
删除临时用户
mysql> drop user temp@%;
5. 创建 Parcel 目录
Server 节点
在 Server 节点创建 parcel-repo 目录并修改权限
- $mkdir -p /opt/cloudera/parcel-repo
- $chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
Agent 节点
所有 Agent 节点创建 parcels 目录并修改权限
- $mkdir -p /opt/cloudera/parcels
- $chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
6. 制作 CDH 本地源
直接上传已下载文件 CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel.sha1 和 CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel 或者直接用 wget 下载:
- $wget http://archive-primary.cloudera.com/cdh5/parcels/5.6.1/CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel.sha1 >> /dev/null &
- $wget http://archive-primary.cloudera.com/cdh5/parcels/5.6.1/CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel >> /dev/null &
将这两个文件拷贝到 / opt/cloudera/parcel-repo 目录下
7. 启动 CM Manager&Agent 服务
进入目录
$cd /opt/cloudera-manager/cm-5.6.1/etc/init.d/
先启动 Server
首次启动会自动创建表以及数据, 不要立即关闭或重启, 否则需要删除所有表及数据重新安装
$./cloudera-scm-server start
后启动所有 Agents
$./cloudera-scm-agent start
查看日志
Cloudera Manager 的安装日志在 / opt/cloudera-manager/cm-5.6.1/log 目录下, 其中有 agentserver 和 cmf 三个文件夹 server 在启动的时候会启动很多脚本, 对数据库的创建包的操作, 会花费一段时间
四安装 CDH
1. CDH 集群的安装
登录到 CM 客户端 (浏览器)
地址: http://cdh01 公网 ip:7180/
用户名: admin
密码: admin
Cloudear Manager 部署版本的选择
为 CDH 集群的安装指定主机
将三台云主机全选
选择储存库
使用 Parcel 方法, CDH 版本选择 5.6.1
集群正确性检测
如果出现警告, 按提示解决即可
例如: echo never > /sys/kernel/mm/transparent_hugepage/defrag 以禁用此设置然后将同一命令添加到 /etc/rc.local 等初始脚本中, 以便在系统重启时予以设置
自定义脚本分配
2. 为集群添加 Hive 服务
3. 为集群添加 Sqoop 服务
最终可见安装完成的界面如下:
来源: http://www.bubuko.com/infodetail-2518216.html