CDH集群搭建总结

 

 

 

 

Centos6.7 + CDH5.4.5

HADOOP 集群环境离线安装

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

目录

Centos6.7 + CDH5.4.5. 1

HADOOP 集群环境离线安装... 1

一、集群系统环境准备... 4

1.        环境介绍... 4

2.        安装文件准备:... 4

3.        hostname配置... 4

4.        hosts文件修改... 5

5.        检查系统防火墙... 5

6.        硬盘挂载(如果有)... 6

二、JDK安装(集群内机器都要安装). 10

卸载系统自带JDK. 10

安装自选版本JDK. 11

三、mysql安装(只安装在master节点)... 13

1.     下载安装包... 13

2.     删除系统自带版本... 13

3.     添加mysql组和mysql用户... 13

4.     解压安装... 13

5.     数据库初始化... 14

6.     设置开机自启动项... 15

7.     添加系统环境变量... 16

8.     修改root用户密码... 17

四、配置SSH免密码登陆... 17

1.     生成公钥/私钥... 17

2.     收集所有公钥写入authorized_keys. 18

3.     分发authorized_keys到集群内节点... 19

4.     测试配置是否成功... 19

五、安装NTP服务(集群内所有节点)... 20

1.     安装ntp服务... 20

2.     设置开机启动: chkconfig  ntpd   on. 20

3.     修改/etc/ntp.conf:... 20

4.        修改/etc/ntp/keys文件(集群内所在节点)... 21

5.     修改时区... 22

6.        重启 ntp 服务  : 22

六、安装Cloudera Manager 5(master)... 23

1.     下载Cloudera Manager 5 安装文件... 23

2.     解压到/opt目录... 23

3.     添加mysql驱动... 23

4.     给所有节点添加cloudera-scm用户... 23

5.     修改cloudera-scm-agent配置... 24

6.     初始化mysql数据库... 24

7.     为Cloudera Manager 5建立数据库... 25

8.     开启Cloudera Manager 5 Server端:... 26

9.     开启Cloudera Manager 5 Agents端。... 26

l     将主节点/opt/cm-5.4.5集群内分发... 26

l     在所有datanode节点上,启动(注意必须以管理员权限启动)... 26

10.        浏览器登录Cloudera Manager 5 控制台... 26

七、安装CDH5(master)... 27

1.     下载安装源... 27

2.     制作CDH本地安装源... 29

3.     正式安装CDH.. 30

n     登陆控制http://192.168.58.93:7180,... 30

n     选择Hadoop及其组件安装选择Cloudera版本,  这里选择安装免费版... 30

n     选择主机, 这里要保证所有agents节点服务都启动了,才能检测到受控节点。... 31

n     选择安装方式... 31

n     将安装源分发到集群所有主机... 32

n     选择要安装的服务组件... 32

n     组件数据库设置... 32

n     集群基本参数配置。... 33

n     下一步继续,启动集群... 35

n     安装成功... 35

常见问题... 36

1.     Mysql驱动程序找不到... 36

2.     Oozie安装创建数据表找不到驱动... 36

 

 

 

一、集群系统环境准备

  1. 环境介绍
  1. 机器IP及hostname配置:

192.168.58.93 cdh1

192.168.58.94 cdh2

192.168.58.95 cdh3

 

  1. 集群内所以机器以root用户安装,使用统一密码 ******
  2. 操作系统:  Centos6.7
  3. CDH版本:CDH-5.4.5
  1. 安装文件准备:

 

  1. hostname配置
  1. 编辑/etc/sysconfig/network,修改hostname, (需重启使其生效)

NETWORKING=yes
HOSTNAME=qbcdhserv1
// 每台机器给出不同机器名

 

  1. hosts文件修改
  1. 修改集群内所有机器/etc/hosts文件, 添加如下配置 (需重启使其生效)

192.168.58.93 cdh1

192.168.58.94 cdh2

192.168.58.94 cdh3

 

  1. 修改/etc/selinux/config 文件 ,将SELINUX=enforcing改为SELINUX=disabled


 


 

  1. 检查系统防火墙
  1. 首先查看防火墙状态:

[root@cdh1 .ssh]# service iptables status 

iptables: Firewall is not running.    //已经关闭

  1. 关闭防火墙

service iptables stop  

  1. 永久性生效,重启后不会复原

chkconfigiptables off   //永久关闭

 

        

  1. 硬盘挂载(如果有)
  1. 检查系统是否有未挂载硬盘: fdisk -l

[root@i-A4A21CB9 ~]# fdisk -l    //查看硬盘分区信息

Disk /dev/vda: 64.4 GB, 64424509440 bytes //第一块硬盘(vda)大小

16 heads, 63 sectors/track, 124830 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000afe6b

//第一块硬盘分成三个区 vda1 vda2  vda3 
 

   Device Boot      Start         End      Blocks   Id  System

/dev/vda1   *           3         409      204800   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/vda2             409       17053     8388608   82  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/vda3           17053      124831    54320128   83  Linux

Partition 3 does not end on cylinder boundary.

 

Disk /dev/vdb: 536.9 GB, 536870912000 bytes  //第二块硬盘(vdb)大小

16 heads, 63 sectors/track, 1040253 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x650ed6ce

//第二块硬盘未分区
 

   Device Boot      Start         End      Blocks   Id  System


 

  1. 给第二块硬盘vdb创建分区 :fdisk  /dev/vdb ,进入分区交互对话状态. 键入m命令可以查看此交换状态的命令帮助,其中n:创建分区  d:删除分区  p:打印分区信息  w:保存

[root@i-6CBF585F ~]# fdisk  /dev/vdb

 

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').

 

Command (m for help): m

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition  //删除一个分区 

   l   list known partition types

   m   print this menu

   n   add a new partition   //增加一个分区 

   o   create a new empty DOS partition table

   p   print the partition table  //打印分区信息

   q   quit without saving changes   //退出交互状态 

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit   //将所有的操作写入磁盘即保存

   x   extra functionality (experts only) 


 

Command (m for help): 

  1. 输入n增加一个分区:

Command (m for help): n     //增加一个分区

Command action

   e   extended                            //扩展分区

   p   primary partition (1-4)      //主分区 

e   //输入的e键,即创建一个扩展分区 

Partition number (1-4): 1        //分区的id号,此为第一个分区

First cylinder (1-1040253, default 1): //分区的起始柱面大小,默认直接回车就行 

Using default value 1  //默认卷标

Last cylinder, +cylinders or +size{K,M,G} (1-1040253, default 1040253):

Using default value 1040253

Command (m for help): p    //打印分区信息

Disk /dev/vdb: 536.9 GB, 536870912000 bytes

16 heads, 63 sectors/track, 1040253 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xc5d68871


 

//分区信息列表 刚刚创建的为扩展分区,

   Device Boot      Start         End      Blocks   Id  System

/dev/vdb1               1     1040253   524287480+   5  Extended

Command (m for help): n

   l   logical (5 or over) 

   p   primary partition (1-4)

l    //接下来在扩展分区上创建逻辑分区

First cylinder (1-1040253, default 1): //分区的起始柱面大小,默认直接回车就行

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-1040253, default 1040253):

Using default value 1040253

Command (m for help): p   //打印分区信息

Disk /dev/vdb: 536.9 GB, 536870912000 bytes

16 heads, 63 sectors/track, 1040253 cylinders

Units = cylinders of 1008 * 512 = 516096 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xc5d68871

//一个扩展分区,在扩展分区上的逻辑分区  

   Device Boot      Start         End      Blocks   Id  System

/dev/vdb1               1     1040253   524287480+   5  Extended

/dev/vdb5               1     1040253   524287449   83  Linux

Command (m for help): w    //w保存修改

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

  1. 在新分区上建立文件系统(格式化)

mkfs.ext4  /dev/vdb5               

  1. 手动分区挂载到系统中

[root@i-6CBF585F ~]# mkdir  /data1            //创建要挂载的目标目录

[root@i-6CBF585F ~]# mount /dev/vdb5  /data1  //手动挂载到创建的目录 

  1. 修改系统配置,开机自动挂载。将挂载信息写入/etc/fstab文件中

root@i-6CBF585F ~]# vim /etc/fstab  //编辑

 

# /etc/fstab

tmpfs     /dev/shm  tmpfs   defaults        0 0

devpts    /dev/pts  devpts  gid=5,mode=620  0 0

sysfs     /sys      sysfs   defaults        0 0

proc      /proc     proc    defaults        0 0

/dev/vdb5 /data1    ext4    defaults        0 0

 

  1. 检查挂载是否成功:输入df -h 列出磁盘分区

[root@i-6CBF585F ~]# df -h 

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda3        51G  2.2G   47G   5% /

tmpfs            32G     0   32G   0% /dev/shm

/dev/vda1       190M   40M  141M  22% /boot

/dev/vdb5       493G   70M  467G   1% /data1

 


 

二、JDK安装(集群内机器都要安装)


 

卸载系统自带JDK

  1. 查看已安装版本:java -version

[root@cdh3 tools]# java -version

java version "1.7.0_79"

OpenJDK Runtime Environment (rhel-2.5.5.4.el6-x86_64 u79-b14)

OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

[root@cdh3 tools]# 

 

  1. 查看相关安装包: rpm -qa | grep openjdk

[root@cdh3 tools]# rpm -qa | grep openjdk

java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64

java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64

[root@cdh3 tools]# 

 

  1. 卸载系统自带JDK安装包

rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
rpm -e --nodeps  java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64
 


 

安装自选版本JDK

  1. 宫方下载新版本:http://www.oracle.com/technetwork/java/javase/downloads

 

  1. 下载到指定目录:/data1/bxji/software/tools/

  1. 解压到指定目录:/usr/java

tar -zxvf   /data1/bxji/software/tools/jdk-7u80-linux-x64.gz  -C /usr/java

chown -R  root   /usr/java/jdk1.7.0_80 

 

  1. 配置环境变量,修改/etc/profile 文件增加以下内容

export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

 

 

  1. 生效 profile(或重启机器)

source /etc/profile(只对当前终端有效,最好重启系统)

 

  1. 检查是否安装成功 :终端输入 java -version

[root@cdh3 usr]# 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)

[root@cdh3 usr]# 

 


 

三、mysql安装(只安装在master节点) cdh1

  1. 下载安装包

官方下载地址:http://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.50-linux2.6-x86_64.tar.gz 

  1. 删除系统自带版本
  1. 检查当前系统是否已安装 : rpm -qa | grep -i mysql

[root@cdh1 software]# rpm -qa|grep -i mysql

mysql-libs-5.1.73-5.el6_6.x86_64

[root@cdh1 software]# 

 

  1. 删除已经安装

rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

  1. 添加mysql组和mysql用户

用于设置mysql安装目录文件所有者和所属组。

groupadd mysql //添加用户组

useradd -r -g mysql mysql// -r参数表示mysql用户是系统用户,不可用于登录系统。

  1. 解压安装 
  1. 解压到指定的安装目录,我们这里指定为/usr/local。

tar -zxvf /data1/bxji/software/tools/mysql-5.5.50-linux2.6-x86_64.tar.gz -C  /usr/local

  1.  解压后在/usr/local/生成了解压后的文件夹mysql-5.5.50-linux2.6-x86_64,这名字太长,我们为它建立一个符号链接mysql,方便输入。

[root@cdh1 local]# cd /usr/local 

[root@cdh1 local]# ln -s mysql-5.5.50-linux2.6-x86_64/  mysql


 

  1. 更改mysql所在的目录所属的组和用户,为之前创建的mysql用户。

chown -R mysql /usr/local/mysql-5.5.50-linux2.6-x86_64 

chgrp -R mysql /usr/local/mysql-5.5.50-linux2.6-x86_64

chown -R mysql mysql

chgrp -R mysql mysql

  1. 数据库初始化
  1. 执行mysql_install_db脚本,对mysql中的data目录进行初始化并创建一些系统表格。注意mysql服务进程mysqld运行时会访问data目录,所以必须由启动mysqld进程的用户(就是我们之前设置的mysql用户)执行这个脚本,或者用root执行,但是加上参数--user=mysql。

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

  1. 将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。

chown -R root /usr/local/mysql-5.5.50-linux2.6-x86_64 

chown -R mysql /usr/local/mysql-5.5.50-linux2.6-x86_64/data

  1. 复制配置文件到/etc/my.cnf

cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

  1. 设置开机自启动项
  1. 将mysqld服务加入开机自启动项。
    • 首先需要将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysqld。

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

    • 通过chkconfig命令将mysqld服务加入到自启动服务项中。注意服务名称mysqld就是我们将mysql.server复制到/etc/init.d/时重命名的名称 

chkconfig --add mysqld

    • 查看是否添加成功:chkconfig --list mysqld 

[root@cdh1 mysql-5.5.50-linux2.6-x86_64]# chkconfig --list mysqld

mysqld         0:off 1:off 2:on 3:on 4:on 5:on 6:off

    • 重启系统,mysqld就会自动启动了。
  1. 直接手动启动

service mysqld start

 

  1. 添加系统环境变量
  1. 配置环境变量,修改/etc/profile 文件增加以下内容

export  MYSQL_HOME=/usr/local/mysql 

export PATH=$PATH:$MYSQL_HOME/bin

使 profile生效,执行命令source /etc/profile(当前终端生效), 这样就可以在shell中直接输入mysql命令来启动客户端程序了:

 

  1. 修改root用户密码

进入mysql客户端口命令行,用root用户登录后,执行如下命令,修改root密码为hadoop

use mysql;

UPDATE user SET password=PASSWORD('hadoop') WHERE user='root';

FLUSH PRIVILEGES;

 

  1. 修改字符集utf-8

使用 mysql> SHOW VARIABLES LIKE 'character_set_%';查看,发现数据库编码均已改成utf8,说明就不需要修改了。

  1. +--------------------------+---------------------------------+   
  2. | Variable_name | Value |   
  3. +--------------------------+---------------------------------+    
  4. | character_set_client | utf8 |   
  5. | character_set_connection | utf8 |   
  6. | character_set_database | utf8 |  
  7. | character_set_filesystem | binary |   
  8. | character_set_results | utf8 |   
  9. | character_set_server | utf8 |   
  10. | character_set_system | utf8 |   
  11. | character_sets_dir | D:"mysql-5.0.37"share"charsets" |   
  12. +--------------------------+---------------------------------+ 

 

使用mysql的命令,修改mysql默认字符集的方法:

mysql> SET character_set_client = utf8 ; 

mysql> SET character_set_connection = utf8 ;  

mysql> SET character_set_database = utf8 ;  

mysql> SET character_set_results = utf8 ;   

mysql> SET character_set_server = utf8 ;  

 

mysql> SET collation_connection = utf8 ; 

mysql> SET collation_database = utf8 ;  

mysql> SET collation_server = utf8 ;

 

 

四、配置SSH免密码登陆   cdh3

我用的是root用户,每台服务器都生成公钥,合并到authorized_keys后,分发到集群内各节点 。

  1. 生成公钥/私钥 
  1. 在集群内每台机器上生成公钥/私钥对,执行命令:

 ssh-keygen -t rsa -P ''

P表示密码, -P '' 就表示空密码, 也可以不用-P参数, 这样就要个车回车, 用-P就一次回车


 

  1. 在当前用户目录/root下生成.ssh目录, .ssh下有id_rsa和id_rsa.pub

 

  1. 收集所有公钥写入authorized_keys  cdh1
  1. 将cdh1、 cdh2 生成公钥文件/root/.ssh/id_rsa.pub复制到cdh1下, 在cdh1机的.ssh/authorized_keys文件里'  
    1. 在cdh1上,新建authorized_keys文件, 并修改权限为600

touch /root/.ssh/authorized_keys      

chmod 600 /root/.ssh/authorized_keys  //authorized_keys的权限要是600 

    1. 分别复件cdh2 cdh3密钥文件到cdh1

scp /root/.ssh/id_rsa.pub root@192.168.58.93:/root/.ssh/cdh2_id_rsa.pub // cdh2 机器上执行

scp /root/.ssh/id_rsa.pub root@192.168.58.93:/root/.ssh/cdh3_id_rsa.pub  // cdh3 机器上执行

    1. 查看cdh1上, 已复制的文件

 

  1. 将复制来的密钥添加到authorized_keys

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
cat /root/.ssh/cdh2_id_rsa.pub >> /root/.ssh/authorized_keys
cat /root/.ssh/cdh3_id_rsa.pub >> /root/.ssh/authorized_keys


 

  1. 分发authorized_keys到集群内节点
  1. 将cdh1上的authorized_keys文件, 分发到集群内其它机器

scp /root/.ssh/authorized_keys root@192.168.58.94:/root/.ssh/authorized_keys

scp /root/.ssh/authorized_keys root@192.168.58.95:/root/.ssh/authorized_keys

  1. 测试配置是否成功
  1. 测试集群间机器ssh免密码登陆:第一次要输入 yes

 

 


五、安装NTP服务(集群内所有节点)

集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下 :1.  master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。2. 所有datanode节点以master节点为基础同步时间。

  1. 安装ntp服务
    1. 查看是否已经安装:rpm -qa | grep ntp。 如果已安装就不需要再安装了。

 

    1. 如果没安装,使用:  yum install ntp   安装
  1. 设置开机启动: chkconfig  ntpd   on
  2. 修改/etc/ntp.conf
    1. restrict default kod nomodify notrap nopeer noquery注释掉,这个对客户端的限制太多。添加,restrict   default  nomodify  notrust(允许任何IP的客户机都可以进行时间同步)以允许所有客户端获取时间数据。notrust 参数的功能是并需通过认证才能同步,也就是客户端同步命令中必须有keyid 和key才能通过。
    2. 注释掉所有的trustedkey, 添加 trustedkey 1 2 3,后边指定数字任意,但必须与/etc/ntp/keys文件中的 值保持一致。也就是说1 2 3 这三个数分别作为认证 的 keyid。
    3. 配置时间源, 指定同步参考的服务器时间。如果连接不了外网就把所有外网时间服务器都注释掉。

server 192.168.58.93 // 局域网(GA)内,客户机(slaver)配置为集群内master服务器IP

server ntp.api.bz               // 连接不了外网就注释掉

server 2.centos.pool.ntp.org  // 连接不了外网就注释掉


 

    1. 添加如下配置项目,以让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。 客户端不需要配置,只在服务端配置即可。

server  127.127.1.0     # local clock    //服务端如果连接不了外网,使用本地时间提供给客户端同步

fudge   127.127.1.0 stratum 2

 

    1. 最后保存退出


 

  1. 修改/etc/ntp/keys文件(集群内所在节点)
    1. 添加如下配置, 前面的数字必须与  /etc/ntp.conf 文件中 trustedkey 后边指定的数字一致才行,字符串任意。

1 M gao

2 M tian

3 M di

  1. 修改时区

rm -f  /etc/localtime

cp -f /usr/share/zoneinfo/Asia/Shanghai   /etc/localtime

 

  1. 重启 ntp 服务  :
    1. service ntpd restart 。要注意ntp的重启是有延迟的,所以有的时候重启以后没发现修改配置生效,是因为这个延迟导致的, 这是因为NTP server还没有和其自身或者它的server同步上。
    2. 如果集群内所在节点都安装了NTP服务,服务端时间源外网时间源不可用时,可与本地时间同步,且客户端时间源配置了集群内服务端,那么启动所有节点NTP服务,集群内节点即可实现时间同步。
    3. 如果客户端NTP服务未启动,或者未配置集群内时间源,可通过执行 ntpdate<ntp server> 来同步,我们只要指定与master节点同步就可以了。
    4. 手动在集群内所客户端系统上执行 ntpdate 192.168.58.93  ,测试服务器是否成功配置;

 成功返回:ntpdate[15522]: adjust time server 192.168.84.29 offset 0.290456 sec

 


六、安装Cloudera Manager 5(master)

  1. 下载Cloudera Manager 5 安装文件
  1. 下载地址:http://archive.cloudera.com/cm5/cm/5/ ,根据自己的系统选择相应的版本,本次安装选用的是cloudera-manager-el6-cm5.4.5_x86_64.tar.gz  。
  1. 解压到/opt目录
  1. 上传并解压cloudera-manager-el6-cm5.4.5_x86_64.tar.gz 到master(cdh1)节点/opt目录下(不能解压到其他地方,因为cdh5的源会默认在/opt/cloudera/parcel-repo寻找)

tar -zxvf   /data1/bxji/software/tools/ cloudera-manager-el6-cm5.4.5_x86_64.tar.gz  -C /opt

 

  1. 添加mysql驱动
  1. 将mysql驱动 mysql-connector-java-5.1.25.jar 放到/opt/cm-5.4.5/share/cmf/lib/目录, CM连接mysql数据需要提供jdbc驱动。

cp /data1/bxji/software/tools/mysql-connector-java-5.1.25.jar /opt/cm-5.4.5/share/cmf/lib/

 

  1. 给所有节点添加cloudera-scm用户  

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

 

  1. 修改cloudera-scm-agent配置
  1. 修改/opt/cm-5.4.5/etc/cloudera-scm-agent/config.ini 下面的serer_host为主节点的hostname

 

  1. 初始化mysql数据库 
  1. 进入mysql数据库控制台,创建以下数据库
  2. Mysql –uroot -phadoop

--hive数据库 

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci ;

--集群监控数据库

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci ;

--hue数据库

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

-- oozie数据库

create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  1. 检查创建的数据库:

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| amon               |

| hive               |

| hue                |

| mysql              |

| performance_schema |

| test               |

+--------------------+

7 rows in set (0.00 sec)

  1. 以上数据库,可能会根据安装组件的不同略有差别。 给root用户授权(密码为hadoop),后面安装CDH组件hive、hue、集群监控时要用到这里设置 的用户及密码。

grant all on *.* to root@"%" Identified by "hadoop";

 

  1. 为Cloudera Manager 5建立数据库  

格式:scm_prepare_database.sh [数据库类型] [数据库] [主节点服务器] [用户名] [密码] [--scm-host Cloudera_Manager_Server所在的机器] 后面那三个直接照抄官网。

/opt/cm-5.4.5/share/cmf/schema/scm_prepare_database.sh mysql cm -hqbcdhserv1 -uroot -phadoop  --scm-host qbcdhserv1  scm  scm  scm

[root@qbcdhserv1 ~]# /opt/cm-5.4.5/share/cmf/schema/scm_prepare_database.sh mysql cm -hqbcdhserv1 -uroot -phadoop  --scm-host qbcdhserv1  scm  scm  scm

JAVA_HOME=/usr/java/jdk1.7.0_67

Verifying that we can write to /opt/cm-5.4.5/etc/cloudera-scm-server

Creating SCM configuration file in /opt/cm-5.4.5/etc/cloudera-scm-server

Executing:  /usr/java/jdk1.7.0_67/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cm-5.4.5/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cm-5.4.5/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.

[main] DbCommandExecutor      INFO  Successfully connected to database.

All done, your SCM database is configured correctly!

 

  1. 开启Cloudera Manager 5 Server端:

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

注意server首次启动不要立即关闭或重启,因为首次启动会自动创建相关表以及数据,如果因为特殊原因中途退出,请先删除所有表以及数据之后再次启动,否则将会出现启动不成功的情况。


 

  1. 开启Cloudera Manager 5 Agents端。 
  1. 将主节点/opt/cm-5.4.5集群内分发
    1. scp/opt/cm-5.4.5到所有datanode节点上,然后在每台机器上开启Agents端:

scp -r /opt/cm-5.4.5  root@192.168.58.94:/opt 

scp -r /opt/cm-5. 4.5  root@192.168.58.95:/opt 

 

    1. 在所有datanode节点上,创建cloudera-scm-agent目录,否则启动报错 

mkdir /opt/cm-5.4.5/run/cloudera-scm-agent  (如果有此目录请忽略该操作)

 

  1. 在所有datanode节点上,启动(注意必须以管理员权限启动)

sudo /opt/cm-5.4.5/etc/init.d/cloudera-scm-agent start

 

  1. 浏览器登录Cloudera Manager 5 控制台
    1. 浏览器启动Cloudera Manager 5 控制台(默认端口号是7180),启动成功就会看到登陆页面。http://192.168.58.93:7180/cmf/login  初次登录 用户名:admin 密码:admin

      

 


 

七、安装CDH5(master)

  1. 下载安装源

首先下载与自己系统版本相对应的parcel包,manifest.json文件。下载地址 http://archive.cloudera.com/cdh5/parcels/5.4.5/。注意我们操作系统是centos 6.7,  所以我们选择el6对应的版本。下图标识的三个文件(下图是5.7.0,GA网无法截图,有时间再替换成5.4.5版本的)。

 

下载安装CDH依赖rpm包文件。 根据当前操作系统版本选择  http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.7.0/RPMS/x86_64/  下, cloudera-manager-daemons  与 cloudera-manager-agent  。

 

 


 

 

  1. 制作CDH本地安装源
  1. 下载完成后,将这两个文件放到master(cdh1)节点的 /opt/cloudera/parcel-repo下

cp /data1/bxji/software/tools/CDH-5.4.5-1.cdh5.4.5.p0.7-el6.parcel /opt/cloudera/parcel-repo 

cp /data1/bxji/software/tools/CDH-5.4.5-1.cdh5.4.5.p0.7-el6.parcel.sha1 /opt/cloudera/parcel-repo

cp /data1/bxji/software/tools/manifest.json  /opt/cloudera/parcel-repo 

 

  1. 新建文件命名为:CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha, 与下载的文件只是后缀名不同

cp /opt/cloudera/parcel-repo/ CDH-5.4.5-1.cdh5.4.5.p0.7-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.4.5-1.cdh5.4.5.p0.7-el6.parcel.sha 

 

  1. 重启cloudera-scm-server 以识别安装源

sudo /opt/cm-5.4.5/etc/init.d/cloudera-scm-server  restart

 

  1. 正式安装CDH
    1. &bsp; 登陆控制http://192.168.58.93:7180,

 

    1. &bsp; 选择Hadoop及其组件安装选择Cloudera版本, &bsp;这里选择安装免费版

 

    1. &bsp; 选择主机, 这里要保证所有agets节点服务都启动了,才能检测到受控节点。

 

    1. &bsp; 选择安装方式

因为我们是离线安装,(Cloudera推荐使用Parcel)

 

    1. &bsp; 将安装源分发到集群所有主机

    1. &bsp; 选择要安装的服务组件

 

    1. &bsp; 组件数据库设置

    这里数据库存用户名root,密码之前修改为haoop。如果报mysql数据驱动没找到,就需要上载获取到组件lib目录。

    1. &bsp; 集群基本参数配置。

这里有几个重要的目录配置,作为hdfs根目录应该指向存储空间较大的硬盘目录(本次安装环境磁盘空间都在/根路径,这里就不修改了)。

    1. &bsp; 下一步继续,启动集群

    1. &bsp; 安装成功

常见问题

  1. Mysql驱动程序找不到

在安装hive、oozie等需要访问数据库组件时,经常遇到java.lang.ClassNotFoundException: com.mysql.jdbc.Drive。这是因为组件默认lib库存下无驱动jar,需要手动将mysql驱动 mysql-connector-java-5.1.25.jar 放到组件对应的lib目录。如:/opt/cloudera/parcels/CDH-5.4.5-1.cdh5.4.5.p0.7/lib/hive/lib/目录。如果不知道对应的组件在哪个节点,那么最好是所有节点都上传驱动jar。

cp /data1/bxji/software/tools/mysql-connector-java-5.1.25.jar /opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hive/lib

 

  1. Oozie安装创建数据表找不到驱动

将驱动复制到安装节点的:/var/lib/oozie 目录

cp  /data1/bxji/software/tools/mysql-connector-java-5.1.25.jar   /var/lib/oozie

 

 

 

 

 

    • 注意再次重启机器后,启动cloudera-scm-server、cloudera-scm-agent会报JAVA_HOMEI没有配置(很诡异,我明明配置了,只是重启机器)

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值