1. 准备阶段—系统环境搭建
修改hostname:vi /etc/sysconfig/network,按照如下进行设置:
NETWORKING=yes HOSTNAME=master(注意这里的主机名称,可以自己定义) |
重启网络服务生效:service network restart
修改ip与主机名的对应关系,vi /etc/hosts
192.168.147.132master 192.168.147.133slave |
注意:这里需要将集群中每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误。
在主节点上执行如下命令,一路回车,生成无密码的密钥对。
ssh-keygen -t rsa |
将公钥添加到认证文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
设置authorized_keys的访问权限:
chmod 600 ~/.ssh/authorized_keys。 |
scp文件到集群所有其它节点:
scp ~/.ssh/* root@node:~/.ssh/ |
测试:在集群中任意节点上可以ssh到任意其它节点,正常情况下,不需要密码就能直接登陆进去了。
CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7及以上的支持。
查看java相关的包:
rpm –qa|grep –i java |
卸载mysql
rpm -e --nodeps 包名 |
去Oracle的官网下载jdk的rpm安装包进行安装
rpm -ivh 包名 |
修改/etc/profile,添加JDK的环境变量
JAVA_HOME=/usr/java/jdk1.7.0_79/ JRE_HOME=/usr/java/jdk1.7.0_79/jre/ PATH=$PATH:JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export JAVA_HOME export JRE_HOME export PATH export CLASSPATH
注意:在Windows系统中各个路径之间用“;”分隔,在linux系统中各个路径用“:”分隔。 环境变量CLASSPATH中的”.”表示当前路径,如果你不再引用别的外部包下的类,这个路径可以不用配置。 |
保存使生效
按 esc 输入wq保存环境变量 输入source /etc/profile使得环境变量生效 检查JDK环境是否安装成功,执行命令 java –version,如果出现jdk的版本号信息则表示安装成功 |
1.4 安装配置MySql(主节点)
查看已经安装的MySQL:
rpm -qa|grep -i mysql |
将查到的MySQL的包全部删除
rpm -e --nodeps 包名 |
删除老版本mysql的开发头文件和库
rm -rf /usr/lib/mysql rm -rf /usr/include/mysql |
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf rm -rf /var/lib/mysql |
安装前准备三个rpm的包
MySQL-server-5.6.32-1.linux_glibc2.5.x86_64.rpm
MySQL-devel-5.6.32-1.linux_glibc2.5.x86_64.rpm
MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm
安装服务端:
命令如下:
rpm -ivh MySQL-server-5.6.32-1.linux_glibc2.5.x86_64.rpm |
安装成功会出现....
warning: MySQL-server-5.6.32-1.linux_glibc2.5.x86_64.rpm: V3 DSA signature: NOKEY,key ID 5072e1f5
Preparing...########################################### [100%]
1:MySQL-server########################################### [100%]
安装devel:
命令如下:
rpm -ivh MySQL-devel-5.6.32-1.linux_glibc2.5.x86_64.rpm |
安装成功会出现:
warning: MySQL-devel-5.6.32-1.linux_glibc2.5.x86_64.rpm: V3 DSA signature: NOKEY,key ID 5072e1f5
Preparing...########################################### [100%]
1:MySQL-devel########################################### [100%]
安装客户端:
命令如下:
rpm -ivh MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm |
安装成功会出现:
warning:MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm: V3 DSA signature: NOKEY,key ID 5072e1f5
Preparing... ###########################################[100%]
1:MySQL-client###########################################[100%]
启动MySQL服务:
service mysql start |
初始化设置
/usr/bin/mysql_install_db
更改root用户登录mysql数据库密码
(a) 查看root账号和密码:cat /root/.mysql_secret
(b) 首先root用户登录mysql数据库
(c) mysql>SET PASSWORD = PASSWORD('root@123456');
(d) 赋予root用户权限:GRANT ALLPRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root@123456' WITH GRANT OPTION;
(e) mysql> flushprivileges;
(f) mysql> quit ;
Cloudera manager 支持三种数据库类型:MySQL,PostgreSQL,Oracle;下面采用是mysql;
通常需要创建的数据库:
(1)、Create a database for theActivity Monitor. For example:
mysql> createdatabase amon DEFAULT CHARACTER SET utf8;
(2)、Create a database for theService Monitor. For example:
mysql> createdatabase smon DEFAULT CHARACTER SET utf8;
(3)、Create a database for theReport Manager. For example:
mysql> create database rman DEFAULTCHARACTER SET utf8;
(4)、Create a database for theHive metastore. For example:
mysql> create database hive DEFAULTCHARACTER SET utf8;
(5)、Create a database forCloudera Navigator. For example:
mysql> create database nav DEFAULTCHARACTER SET utf8;
执行创建数据库的命令,创建数据库结束
关闭防火墙:service iptables stop (临时关闭)
验证 service iptables status
执行 chkconfig iptables off(重启后生效)
验证 chkconfig --list | grepiptables
临时关闭:setenforce 0
修改配置文件:vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disable
查看SELINUX状态:
/usr/sbin/sestatus –v 或
使用命令:getenforce
所有节点安装NTP: yuminstall ntp
设置开机启动:chkconfigntpd on
检查设置是否成功:chkconfig –list ntpd
注意:2-5为on状态则成功
设置时间同步:ntpdate –u s2m.time.edu.cn
注意:s2m.time.edu.cn为时钟服务器,根据实际环境进行设置
(1) 解压安装包:tar -xzvf cloudera-manager*.tar.gz -C /opt
将解压后的cm-5.13.1和cloudera目录放到/opt目录下。(所有节点)
(2) 配制CM5 server数据库,首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,解压后,找到mysql-connector-java-5.1.33-bin.jar,重命名为:mysql-connector-java.jar 放到/opt/cm-5.13.1/share/cmf/lib/。(所有节点)
注意:mysql的包名一定要改成上面的名称,否则报错
(3) 在server节点配置CM5的数据库:
/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql -h node1 -uroot -pxxxx --scm-host node1 scm scm scm
注意:后面的参数对应于:数据库类型、数据库服务器名称(或IP地址)、用户名、密码、CMServer节点所在...。
上面mysql数据库初始化的时候已经为root用户赋予了权限,-uroot和-pxxxx为主节点mysql的用户名和密码。
若上述过程失败,则删除所有库,重新装:mysql>drop user 'root'@''%;
2.2 创建用户cloudera-scm(所有节点)
在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User"cloudera-scm
修改/opt/cm-5.1.3/etc/cloudera-scm-agent/config.ini中的server_host为server的名字,server_port=7182为server和agent的通信端口号。
同步到Agent节点:scp -r /opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini root@n2:/opt/cm-5.1.3/etc/cloudera-scm-agent/
2.4 创建Parcel目录
在server节点创建/opt/cloudera/parcel-repo目录(主节点)
chown cloudera-scm:cloudera-scm/opt/cloudera/parcel-repo
将CHD5相关的Parcel包放到server节点的/opt/cloudera/parcel-repo/目录中(CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel 、 CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha、 manifest.json)。
将下载好的文件(如下所示),放到上述目录下:
CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel
CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1
manifest.json
最后将CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1,重命名为CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel文件。高版本的话这个已经不需要修改。
在Agent节点上,创建目录:/opt/cloudera/parcels,然后执行:
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
2.5 启动CM Server和Agent服务
相关启动脚本
通过/opt/cm-5.1.3/etc/init.d/cloudera-scm-server start启动服务端。(Server节点)
通过/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start启动Agent服务。(所有Agent节点)
我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。
启动后通过命令 lsof –i:7180监视端口的信息,如果该端口出现相应的内容,就可以可视化操作了。
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin
登录进去之后进行cdh的安装部署,选择部署免费的,高亮显示即可,然后点击继续就可以进行下一步。
各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。
接下来,出现以下包名,说明本地Parcel包配置无误,直接点继续就可以了。
点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,大约10多分钟吧,取决于内网的网速。
接下来是服务器检查,可能会遇到一个异常信息
通过在主节点执行命令:echo 0 >/proc/sys/vm/swappiness即可解决,然后点击该页上边的重新运行,即可发现消除异常信息。
接下来是选择安装服务:
服务配置,一般情况下保持默认就可以了(Cloudera Manager会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了)
注意:后边的操作一般都是直接默认的操作即可。一般刚开始建议自定义安装,先安装HDFS以及yarn,一路操作下去即可安装成功。
注意:后续安装Hive的时候可能会报错,因为我们使用了MySql作为hive的元数据存储,hive默认没有带mysql的驱动,通过以下命令拷贝一个就行了:
cp /opt/cm-5.13.1/share/cmf/lib/mysql-connector-java.jar /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/hive/lib
安装完成后,就可以进入集群界面看一下集群的当前状况了。
这里可能会出现无法发出查询:对 Service Monitor 的请求超时的错误提示,如果各个组件安装没有问题,一般是因为服务器比较卡导致的,过一会刷新一下页面就好了: