要配置生产环境前,最好严格按照官方文档/说明配置环境。比如,官方说这个安装包用于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. 在IDEA 上使用Git查看主干和分支等

    使用IDEA 查看提交历史时,IDEA默认显示的页面是你当前页面的提交历史: 然后,你点击左侧的 log 键,则可以显示整个团队每个人的提交记录: 在选中每一次的记录以后,会弹出每次提交的所有文件(对 ...

  2. mysql一些小技巧

    1 强制命中索引:force index 某些时候查询,索引会失效,可以进行强制命中索引 2 group_concat 能将相同的行组合起来. 当然,我推荐这种操作可以在代码中操作,如果必须在特定情况 ...

  3. Windows Phone 8.0 Updates 2 and 3模拟器更新

    2014年元旦后,微软发布了Windows Phone 8 Updates 2 and 3的模拟器更新,即系统版本号分别是8.0.10322和 8.0.10512.其中,在Update 3 Emula ...

  4. 成为 Linux 终端高手的七种武器 之七 条件执行&&

    7.条件执行 Bash 也可以连续执行两条命令。 第二条命令仅在第一条命令成功执行后才会开始执行。如要如此,你可以通过键入“&&”,也就是两个“&”字符进行分隔,在同一行输入两 ...

  5. JAVA构造函数(方法)与方法是啥意思

    成员方法必须有返回类型即使是没有返回,也要写上void 构造函数(方法)没有返回类型,而且和类名一样!一个类里面,一看就知道了譬如:public class Test{public Test(){} ...

  6. 构建 ARM Linux 4.7.3 嵌入式开发环境 —— U-BOOT 引导 Kernel

    经过若干天的反复测试,搜索.终于成功利用 Qemu 在 u-boot 下引导 ARM Linux 4.7.3 内核.如下详细解释整个构建过程. 准备环境 运行环境:Ubuntu 16.04 需要的虚拟 ...

  7. js实现打开网页自动弹出添加QQ好友邀请窗口

    我们有时进一些网面或专题页面会自动弹出一个加为好友的对话框了,在研究了很久之后发现可以直接使用js来实现,下面我们一起来看js实现打开网页自动弹出添加QQ好友邀请窗口的方法. 第一步.JS脚本 这个是 ...

  8. 使用HTTP方式远程连接PowerShell

    借助Windows PowerShell,我们可以像管理Linux一样使用命令行来远程管理Windows服务器.但是默认情况下,我们只能在域环境中使用PowerShell Remoting.如果是通过 ...

  9. 扩展欧几里德算法 cogs.tk 2057. [ZLXOI2015]殉国

    2057. [ZLXOI2015]殉国 ★☆   输入文件:BlackHawk.in   输出文件:BlackHawk.out   评测插件时间限制:0.05 s   内存限制:256 MB [题目描 ...

  10. Episode 388: Testing vs Monitoring

    A user-facing bug causes search results to be unavailable for your service. Someone suggests adding ...