使用阿里云主机离线部署CDH步骤详解
一、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 /opt/shell/mymount.sh
- 设置开机运行
$vim /etc/rc.local
在文件中加入一行
/opt/shell/mymount.sh
二、系统环境准备
1. 网络配置
- 修改hostname。三台机器分别改为cdh01、cdh02、cdh03。
$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..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.
$yum -y remove mysql-libs-5.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生态圈的Oozie、Hue、Hive/Impala、Sqoop等的兼容性比较好。
- 启动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 到所有Server、Agent节点
- 创建 cm 目录
$mkdir /opt/cloudera-manager
- 解压 cm 压缩包
$tar -zxvf /opt/tools/cdh/cloudera-manager-el6-cm5..1_x86_64.tar.gz -C /opt/cloudera-manager
2. 创建用户 cloudera-scm(所有节点)
- 所有节点创建用户
$useradd --system --home=/opt/cloudera-manager/cm-5.6./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.6-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./etc/init.d/
- 先启动Server
首次启动会自动创建表以及数据,不要立即关闭或重启,否则需要删除所有表及数据重新安装。
$./cloudera-scm-server start
- 后启动所有Agents
$./cloudera-scm-agent start
- 查看日志
Cloudera Manager的安装日志在/opt/cloudera-manager/cm-5.6.1/log目录下,其中有agent、server和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服务

最终可见安装完成的界面如下:

使用阿里云主机离线部署CDH步骤详解的更多相关文章
- 阿里云主机(aliyun-Linux) x64安装Redis详解
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/97.html?1455870336 如何在Linux上安装Redis呢, ...
- 阿里云轻量应用服务器 配置mysql详解(转载)
1.服务器规格 1.地域选择 考虑个人地址因素因此选择了华南. 2.选择应用镜像/系统镜像 这个应该看个人需求,因为我只是想用来放数据库的,所以就随便选了个WordPress. 选好之后购买就完事了, ...
- 在CentOS7上部署OpenStack 步骤详解
OpenStack作为一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,开放源代码项目的云计算管理平台项目.具体知识我会在后面文章中做出介绍,本章主要按步骤给大家演示在Cent ...
- 【转】Redis学习---阿里云Redis多线程性能增强版详解
[原文]https://www.toutiao.com/i6594620107123589635/ 摘要 Redis做为高性能的K-V数据库,由于其高性能,丰富的数据结构支持,易用等特性,而得到广泛的 ...
- Django+nginx+gunicore+supervisor+阿里云主机 部署博客项目
1 准备阶段 1 新鲜的阿里云主机 2 购买一个喜欢的域名 3 创建python的虚拟环境 2 阿里云主机的选取 咱们就是为了实验,我买了最便宜的阿里云主机 3 阿里云主机创建一个超级用户 3.1 默 ...
- 阿里云运维部署工具AppDeploy详细教程
AppDeploy是一个通过SSH实现的命令行工具,可完成应用部署和远程运维管理.当前工具实现为两个版本:普通版(伪代码描述语言)和Python版.Python版使用Python语法规则,可实现您的各 ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
- 使用阿里云 ECS 快速部署 WordPress 博客系统
今天在 阿里云 ECS上 部署了一套 Lamp 系统,建了一个WordPress的网站,把操作过程记录下来,文中所列脚本可以直接应用. 废话不多说直接开动,ECS云服务购买可以点击 阿里云ECS 云主 ...
- 阿里云主机安装Memcached
http://www.zyuns.com/?page_id=354 前言最近发现阿里云主机在使用中,并发访问量稍大,页面加载速度就很慢.于是学习了一些服务器优化的文章,决定安装Memcached,优化 ...
随机推荐
- 在阿里云上搭建自己的git服务器
这篇文章我就来介绍一下如何在一台全裸的阿里云主机上搭建自己的git服务器. 1. 安装git 首先安装git,一般而言,现在的服务器已经内置了git安装包,我们只需要执行简单的安装命令即可安装.比如: ...
- Shader 入门笔记(二) CPU和GPU之间的通信
渲染流水线的起点是CPU,即应用阶段. 1)把数据加载到显存中 2)设置渲染状态,通俗说这些状态定义了场景中的网格是怎样被渲染的. 3)调用DrawCall,一个命令,CPU通知GPU.(这个命令仅仅 ...
- 【转】linux下设置ssh无密码登录
ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执行如下: 1. $cd ~/.ssh ...
- linux监控下几个系统工具
1.top 2.htop(yum install -y htop) 3.glances(yum install -y glances) 4.dstat -l -c -m -d -r -n --top ...
- C#面向对象方式设置、读取应用配置
关注点: 1.用面向对象方式的方式(get,set)访问和设置配置项 2.“CallerMemberName”在.net 4以下的变通方式 最后一周了,大伙都进入过年模式了.身还在,心已远.最近事情不 ...
- select标签实现二级联动
效果如下图所示: 实现的原理:使用onchange事件,原理见代码 html代码: <select id="select" class="sel"> ...
- 浅谈大型web系统架构(一)
目录 Web前端系统 负载均衡系统 数据库集群系统 缓存系统 分布式存储系统 分布式服务器管理系统 代码发布系统 动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl. ...
- 为什么说http协议是无状态的?
首先了解基本概念:什么是无状态,什么是无连接 无状态协议: 协议的状态是指下一次传输可以“记住”这次传输信息的能力. http是不会为了下一次连接而维护这次连接所传输的信息,为了保证服务器内存. 比如 ...
- Linux tail,cat,head命令
tail命令用于将文件的最后部分输出到标准设备,通常是终端,也可以支持更新操作,当文档内容发生变化时,tail会自己主动刷新,确保你看到最新的档案内容. 1.tail -f filename 监视fi ...
- MOBA战斗服务器设计思路
MOBA作为竞技类的游戏,游戏中实时高精度同步,或者又说延迟容错率的要求还算是比较高的一种. 如何做到这种同步机制呢? 常用的同步机制有两种类型:帧同步 / 指令同步 何谓帧同步? 保证双方客户端逻辑 ...