要配置生产环境前,最好严格按照官方文档/说明配置环境。比如,官方说这个安装包用于RETHAT6, CENTOS6,那就要装到6的版本下,不然很容易出现各种各样的错。

配置这个CDH5我入了很多坑,最重要的有2点

1. HP GEN9 DL60服务器装CentOS系统, 开始想装7的版本, 官方只说支持到6. 经过各种折腾确实装好了(后面会单开一章写服务器装CentOS7)

2. CDH暂不官方支持CentOS 7, 查到国外有人是安装成功了,但是会有各种小问题需要息解决. 如7带的是python2.7, 而CDH5还是用的2.6, 所以会有包缺失. 所以最终我还是把我的服务器重装回6.5了

==================准备安装==========================

1. 查看并下载最新的CDH版本: http://archive.cloudera.com/cdh5/parcels/latest/ ( 20150530时还是5.3.3的版本), 如果是CentOS6, 则下载带el6的.

  

需要下载的文件有三个, 对应的parcel, parcel.sha1, manifest.json

下载完.sha1后改后缀为.sha

2. 下载对应的CM版本: http://archive-primary.cloudera.com/cm5/cm/5/ (如上面看到是5.3.3, 则推荐下载对应的版本的CM版本)

  

3. 下载oracle java JDK, 我使用的是1.7

  http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm

下载完后把这些文件全部上传到局域网内的FTP上

4. 用记事本准备好会使用的配置, 命令, 可以把下面的内容全部copy下来备用:

hosts文件配置:

192.168.10.250 n1
192.168.10.212 n2
192.168.10.213 n3
192.168.10.214 n4
192.168.10.215 n5
192.168.10.216 n6
192.168.10.217 n7
192.168.10.218 n8
192.168.10.219 n9

我的机器就只有4台, 但hosts文件可多配几个, 以备以后添加时不需要每个机器去修改. 其中n1为namenode, 其于全作为datanode

==================环境设计     ====================

namenode: E5       24G     内存   服务器一台

datanode  :  i5/i7    8G/16G内存   PC      3台

全部安装最小化的CentOS 6.5

==================系统环境准备====================

步骤一, 配置所有节点( 包含 namenode和datanode)

以下操作全部使用root帐户

1. 修改网络配置(所有节点)

  1.1 修改hostname

    #vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=n1

    改好后执行: service network restart生效

  1.2 修改hosts文件

    #vi /etc/hosts

插入上面设计好的hosts文件(必须包含本机IP与主机名的映射)

192.168.10.250 n1
192.168.10.212 n2
192.168.10.213 n3
192.168.10.214 n4
192.168.10.215 n5
192.168.10.216 n6
192.168.10.217 n7
192.168.10.218 n8
192.168.10.219 n9

2. 安装wget工具到所有节点

  #yum install wget

3. 安装Java JDK

  3.1 下载 JDK

  #cd /home

  #wget ftp://192.168.10.211/public/jdk-7u79-linux-x64.rpm

  3.2 安装 JDK

  #rpm -ivh jdk-7u79-linux-x64.rpm

  #echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment

  3.3 删除 JDK 安装文件

  #rm -rf jdk-7u79-linux-x64.rpm

4. 关闭防火墙和SELinux

  4.1 关闭防火墙

  #service iptables stop

  #chkconfig iptables off

  4.2 关闭SELinux

  #setenforce 0

  #vi /etc/selinux/config

SELINUX=disabled

5. 安装并配置ntp服务

  5.1 安装ntp服务(所有节点都安装)

  #yum install ntp

  5.2 配置ntp服务(除n1外的节点按下配置)

删除默认文件配置的server, 仅添加n1

  #vi /etc/ntp.conf

restrict default kod nomodify notrap nopeer noquery
restrict - default kod nomodify notrap nopeer noquery
#主节点的主机名或ip
server n1

  5.3 启动ntp服务

  #service ntpd start

  #chkconfig ntpd on

6. 安装 mysql connector

  #yum install mysql-connector-java.noarch

7. 准备好scm帐户

  #useradd --system --home=/opt/cm-5.3.3/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

注意--home=/opt/cm-5.3.3要对应你安装的版本

步骤二, 配置namenode (n1)

1. SSH无密码登录(只需要主机可以无密码登录所有子节点就行了)

  1.1 在n1机器生成公钥文件

    #ssh-keygen -t rsa

一路回车直到生成密码成功, 如下图:

  1.2 把公钥添加到认证文件中

    #cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  1.3 设置认证文件权限(极重要)

    #chmod 600 ~/.ssh/authorized_keys

  1.4 拷贝认证文件到所有datanode(n2,n3,n4)节点

    #scp ~/.ssh/authorized_keys root@n2:~/.ssh/

  1.5 测试是否可以无密码登录

    #ssh n2

如果没有提示密码, 直接登录了n2则说名配置成功了

2. 安装并配置 mysql

  2.1 安装 mysql

  #yum install mysql-server

  #service mysqld start

  #chkconfig mysqld on

  2.2 配置 mysql

  #mysqladmin -u root password '{psd}'

  2.3 准备数据库

  #mysql -uroot -p{psd}

#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  授权数据库访问

grant all privileges on *.* to 'root'@'n1' identified by 'root' with grant option;
flush privileges;

3. 安装ntp服务

  3.1 如第一步骤中的安装方法安装ntp服务

  #yum install ntp

  3.2 配置ntp服务 

  #vi /etc/ntp.conf 

restrict default nomodify notrap

server .cn.pool.ntp.org prefer

server 127.127.1.0
fludge 127.127.1.0 stratum

我选的是1.cn.pool.ntp.org这个Server, 每个机房线路可能延迟不太一样, 各自找比较快的ntp的服务.

  3.3 启动ntp服务

  #service ntpd start

  #chkconfig ntpd on

注意: ntp同步一般需要等待5-10分钟, 可用ntpstat命令查看同状态

主节点查看应该如下是个外网地址:

其它节点查看应该是主节点IP:

==================准备部署            ====================

以下全在主节点用root帐户操作

1. 从内网FTP上下载CM5, 并解压到/opt

  #cd /opt

  #wget ftp://192.168.10.211/public/cloudera-manager-el6-cm5.3.3_x86_64.tar.gz

  #tar -xzvf cloudera-manager-el6-cm5.3.3_x86_64.tar.gz

2. 准备 Parcels

一定要安装到/opt/cloudera/parcel-repo中

  #cd /opt/cloudera/parcel-repo/

  #wget ftp://192.168.10.211/public/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel

  #wget ftp://192.168.10.211/public/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha

  #wget ftp://192.168.10.211/public/manifest.json

3. 修改agent配置

  #vi /opt/cm-5.3.3/etc/cloudera-scm-agent/config.ini

server_host=n1

4. 拷贝agent到各datanode节点(n2-n4)

  #scp -r /opt/cm-5.3.3 root@n2:/opt/

5. 初始化数据库

  /opt/cm-5.3.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p{psd} --scm-host localhost scm scm scm

==================部署           ====================  

1. 在namenode启动server和agent(主节点也是要做到集群中的, 所以主节点也要开启Agent)

  #/opt/cm-5.3.3/etc/init.d/cloudera-scm-server start

  #/opt/cm-5.3.3/etc/init.d/cloudera-scm-agent start

2. 在所有datanode启动agent

  #/opt/cm-5.3.3/etc/init.d/cloudera-scm-agent start

3. 在局域网内访问: http://192.168.10.250:7180/cmf/login, 如果你是windows可以修改hosts文件后用: http://n1:7180/cmf/login

默认帐号密码:admin

选择Free版本

4. 选择需要部署的机器

5. 选择安装包

6. 部署完成

7. 服务器检查

这里有个问题: Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0, 当前设置为 60.

  #echo 0 > /proc/sys/vm/swappiness 即可解决。

  7.2 JAVA JDK 版本不匹配( 最佳好像是75?), 问题不是很大

8. 选择安装服务

9. 后面基本一路配置下去直到结束

10. 可能出的错

  10.1 Hive还是Hue启动不起来, 提示ImportError: libxslt.so.1 ... 其实真正的错是缺少libxml2. 但是用yum install libxml2并不能解决的, 要用yum install libxml2-python

  10.2 Hue起不来还有一个可能是没有装libxslt, 请用yum install libxslt.x86_64

  10.3 HDFS或是别的经常会有启动错误. 不用一直停在那个安装服务界面. 你可以进入http://n1:7180/home, 点Hosts, 然后一个个把节点的role启动起来

   10.4 NFS 有可能启不起来, 查看日志显示:

No portmap or rpcbind service is running on this host. Please start portmap or rpcbind service before attempting to start the NFS Gateway role on this host.
    
    需要安装rpcbind: yum install rpcbind.x86_64
    

离线安装 Cloudera ( CDH 5.x )的更多相关文章

  1. 离线安装 Cloudera ( CDH 5.x )(转载)

    要配置生产环境前,最好严格按照官方文档/说明配置环境.比如,官方说这个安装包用于RETHAT6, CENTOS6,那就要装到6的版本下,不然很容易出现各种各样的错. 配置这个CDH5我入了很多坑: C ...

  2. CentOS 6.4 离线安装 Cloudera 5.7.1 CDH 5.7.1

    因为项目开发需要要在本地组建一个Hadoop/Spark集群,除了Hadoop/Spark还要同时安装多个相关的组件,如果一个个组件安装配置,对于一个由多台服务器组成的集群来说,工作量是巨大的. 所以 ...

  3. 离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  4. 离线安装 Cloudera Manager 5 和 CDH5.10

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  5. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(六)CM的安装

    一.角色分配 Cloudera Manager Agent:向server端报告当前机器服务状态. Cloudera Manager Server:接受agent角色报告服务状态,以视图界面展现,方便 ...

  6. 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(一)环境说明

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  7. 离线安装Cloudera Manager 5和CDH5

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Cloudera 完全开源的Hadoop  ...

  8. 离线安装Cloudera Manager5.3.4与CDH5.3.4(二)

    Cloudera Manager Server和Agent所有后发先至.也能够进行CDH5的安装和配置. 然后,主节点可以通过浏览器访问7180port测试(因为CM Server需要花时间来启动,可 ...

  9. 离线安装Cloudera Manager5.3.4与CDH5.3.4

    文章转载:http://www.aboutyun.com/thread-14024-1-1.html 前期准备工作(系统环境搭建) 操作系统:CentOS 6.5 x64 CPU*2 64G 300G ...

随机推荐

  1. 一个简单的Servlet容器实现

    上篇写了一个简单的Java web服务器实现,只能处理一些静态资源的请求,本篇文章实现的Servlet容器基于前面的服务器做了个小改造,增加了Servlet请求的处理. 程序执行步骤 创建一个Serv ...

  2. Linux中如何解压iso类型文件

    在Linux下如何解压iso类型的文件呢? 可以使用mount命令来处理 [root@DB-Server tmp]# ls /tmp/rhel-server-5.7-x86_64-dvd.iso /t ...

  3. Java集合分组

    public class Data { private Long id ; private Long courseId ; private String content ; public Long g ...

  4. AS与.net的交互——加载web上的xml

    最近搞了个私活,需要用as去加载一个网站的xml,不过本人as也不咋滴,就去看看怎么玩,看完之后也蛮简单的. 由于业务上比较复杂,就随便说个小例子吧. 很多时候,为了页面区域更加灵活,生动,有吸引力, ...

  5. JBOSS目录结构详细说明

    一.下载与安装. 如何下载以及安装配置,请参考:Windows下JBOSS安装配置图文教程 二.现在主要了解一下JBOSS目录结构. 1. 主目录: E:\jboos\jboss-6.1.0.Fina ...

  6. iOS 判断内容是否是中文,两种实现

    用category实现 新建类别文件,代码 .h文件 #import <Foundation/Foundation.h> @interface NSString (Valid) - (BO ...

  7. Macbook无法上网,访问不了appstore、safria、网易云等,但QQ、谷歌浏览器可以用--解决方案

    ---------------------我是分割线  update 2016-09-22 20:55:22----------------------------- 发现之前那个方法也是不稳定,后来 ...

  8. linux下文件的特殊权限s和t

    先看看这两个文件的权限:[root@localhost ~]# ls -ld /usr/bin/passwd /tmpdrwxrwxrwt 4 root root 4096 Jun 2 17:33 / ...

  9. 网友转发的很全的 LISTCTL 控件使用的说明

    作者:lixiaosan 时间:04/06/2006 以下未经说明,listctrl默认view 风格为report 相关类及处理函数 MFC:CListCtrl类 SDK:以 "ListV ...

  10. android 中Activity的onStart()和onResume()的区别是什么

    首先你要知道Activity的四种状态:Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态.Paused 当 Ac ...