CDH下载地址:
CDH5.4:
http://archive.cloudera.com/cdh5/
Cloudera Manager5.4.3:
http://www.cloudera.com/downloads/manager/5-4-3.html
安装CDH之前,我们需要安装一下CM,CM环境搭建所需要的条件,对电脑来说:
我们要根据我们电脑的内存进行分配相应的空间。
然后就是centos环境的问题,我用的是,我之前搭建hadoop集群时用的机器centos6.6 这个里面主机名,ip,网络都已经配过了,然后三台机器之前也可以进行两两互相通信,要是配个centos都不会的话,那建议你就放弃吧。先把首先的环境准备好,再进行后续配置CDH的工作。
系统环境搭建 1 、网络配置( 所有节点) vi /etc/sysconfig/network 修改 hostname: 通过 service network restart 重启网络服务生效 vi /etc/hosts ,修改 ip 与主机名的对应关系
2 、SSH 免密码登录 主节点执行: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 生成无密码密钥对 拷贝公钥到其他节点,执行 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 测试:主节点 ssh 其他节点 …… 3、 关闭 防火墙 临时关闭: service iptables stop 重启后生效: chkconfig iptables off
4、 关闭 SELINUX 临时关闭: setenforce 0 修改配置文件/etc/selinux/config(重启生效): 将 SELINUX=enforcing 改为 SELINUX=disabled
查看 SELINUX 状态: 1、/usr/sbin/sestatus –v SELinux status: enabled(enabled:开启;disabled:关闭)
2、使用命令:getenforce
5、 安装 JDK
本文采用 RPM 包安装…….执行:(也可以用tar包进行安装jdk) rpm -ivh jdk-7u80-linux-x64.rpm
配置环境变量,修改/etc/profile: export JAVA_HOME=/usr/java/jdk1.7.0_80 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOMdE/lib/dt.jar:$JAVA_HOME/lib/tools.jar
生效: source /etc/profile
查看版本: [root@slave6 cdh]# java -version java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
6、 设置 NTP 所有节点安装 NTP: yum install ntp 配置开机启动: chkconfig ntpd on 检查是否设置成功: chkconfig --list ntpd (2-5 为 on 状态则成功) 设置同步: ntpdate -u ntp.sjtu.edu.cn(时钟服务器根据实际环境设置、本文采用 210.72.145.44-国家授时 中心服务器 IP 地址)
7、 安装 配置 MySql 安装过程略……本文采用 MySql 5.5 安装成功以后,对权限进行一下设置:
首先选中mysql数据库:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges;
详情见hive环境搭建
建库操作及脚本参照:步骤三、步骤六
8 、下载依赖包(这个我没弄) · chkconfig · python (2.6 required for CDH 5) · bind-utils · psmisc · libxslt · zlib · sqlite · cyrus-sasl-plain · cyrus-sasl-gssapi · fuse · portmap · fuse-libs · redhat-lsb 整理一块就是一条命令: (第一次失败,第二次成功,不要问我为什么,我也不知道) yum install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb -y
9、确保环境字符集为英文状态,如果是中文将会出现问题。如果时中文编码,请修改一下字符集:
编辑文件: vi /etc/sysconfig/i18n 然后修改值为: LANG="en_US" |
老哥给你一个忠告,好好检查一下上面的环境是否配置成功,然后jdk的环境是否成功。时间是否一致,ssh免密码登录是否配置好,字符集是否是英文的,防火墙是否关闭。检查检查再检查,别急着往下怼,怼不好,还得重新开始、
拷贝 cloudera-manager-el6-cm5.4.3_x86_64.tar.gz 到所有 Server、Agent 节点
创建 cm 目录:
mkdir /opt/cloudera-manager
解压 cm 压缩包:
tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
执行:
useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
修改文件/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini 中
server_host 修改成server的主机名,我用的是master,然后这个server_port千万别改。
将驱动包拷贝到目录下( 注意拷贝过去的驱动包名字一定要和下边的一样,否则会报错 ):
cp mysql-connector-java-5.1.31/mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-
connector-java.jar
执行:
mysql> grant all privileges on *.* to 'temp'@'%' identified by 'temp' with grant option;
cd /opt/cloudera-manager/cm-5.4.3/share/cmf/schema
模板:
./scm_prepare_database.sh mysql temp -h 主机名 -utemp -ptemp --scm-host 主机名 scm scm scm
如:
./scm_prepare_database.sh mysql temp -h master -utemp -ptemp --scm-host master scm scm scm
(对应于:数据库类型、数据库服务器、用户名、密码、CMServer 所在节点…….)
注意:
如果我们执行失败的话,我们将权限扩大一点。把
mysql> grant all privileges on *.* to 'temp'localhost'%' identified by 'temp' with grant
mysql> grant all privileges on *.* to 'temp'主机名'%' identified by 'temp' with grant
或者删除掉其它权限只留下一个带%的就OK了:
删除多余会对权限造成影响的数据:
delete from user where host !='%';
刷新权限 flush privileges;
mysql> drop user 'temp'@'%';
若上步失败或过程中操作中断,删除所有库、重头来过 /( ㄒ o ㄒ )/~~
若安装 Oozie 等组件可能需要手动创建对应组件所需的数据库,例如:
create database ooziecm DEFAULT CHARACTER SET utf8;
grant all on ooziecm.* TO 'ooziecm'@'%' IDENTIFIED BY 'ooziecm';
Manager 节点创建目录/opt/cloudera/parcel-repo,
执行:
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
将下载好的文件(CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel、CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha、manifest.json)拷贝到该目录下。
Agent 节点创建目录/opt/cloudera/parcels,执行:
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
执行:
Manager: /opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-server start
Agents: /opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-agent start
访问:http://ManagerHost:7180,若可以访问(用户名、密码:admin),则安装成功。
Manager 启动成功需要等待一段时间,过程中会在数据库中创建对应的表需要耗费一些时间。
然后返回两级目录进入 log里面
可以通过
tail -f XXX.log
进行动态查看文件日志,看是否启动成功。
CM Manager && Agent 成功启动后,登录前端页面进行 CDH 安装配置。
如果出现如下界面表示安装成功:
http://master:7180
要是觉得不详细可以参考:
http://www.cnblogs.com/haozhengfei/p/d90e8f4da465036fabbb1d1e1eae886a.html
至此,CM算是搭建好了。
通过CM把CDH集群部署起来,部署的方式有四种:cm,yum,rpm,tarball,其中我们采用的是离线cdh
下面所有的操作都是在web界面上操作的;9个步骤,
1、如果不小心点击了外网的版本,那么就会从外网下载,这个时候点击返回,依旧会下载,那么唯一的解决办法
2、就是停掉server,进去之后会出现已下载,也就是我们早就下载好到了parcels-repo,当然会是100%;然后第二
3、个步骤是分配,就是把parcels-repo里面的软件分发到agent的parcel目录去;
4、cloudera建议我们的/proc/sys/vm/swappiness交换内存为0,将这个文件设置为0即可;当然这样修改只是本次开机
5、下次开机依旧不会改成这样;可以改另一个文件;
6、我们后面看到的图表,监控都是来自于CM service;从最开始那个ppt图上面可以看到
7、在使用cm配置cdh的时候,默认是没有给我们做高可用,虽然我们使用的是cm版本五,使用的hadoop是2.x,但是
8、还是会有snn,只有在做了高可用之后snn才会消失;当我们只在cm上面安装hadoop的时候,有一个步骤,数据库检测
9、由于安装hadoop不需要数据库,所以会一闪而过;
参考链接:
https://www.cnblogs.com/cac2020/p/10488341.html
http://www.cnblogs.com/haozhengfei/p/d90e8f4da465036fabbb1d1e1eae886a.html