Centos6.7 + CDH5.4.5
HADOOP 集群环境离线安装
目录
2. 收集所有公钥写入authorized_keys. 18
3. 分发authorized_keys到集群内节点... 19
2. 设置开机启动: chkconfig ntpd on. 20
4. 修改/etc/ntp/keys文件(集群内所在节点)... 21
六、安装Cloudera Manager 5(master)... 23
1. 下载Cloudera Manager 5 安装文件... 23
4. 给所有节点添加cloudera-scm用户... 23
5. 修改cloudera-scm-agent配置... 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
n 登陆控制http://192.168.58.93:7180,... 30
n 选择Hadoop及其组件安装选择Cloudera版本, 这里选择安装免费版... 30
n 选择主机, 这里要保证所有agents节点服务都启动了,才能检测到受控节点。... 31
一、集群系统环境准备
- 机器IP及hostname配置:
192.168.58.93 cdh1 192.168.58.94 cdh2 192.168.58.95 cdh3 |
- 集群内所以机器以root用户安装,使用统一密码 ******
- 操作系统: Centos6.7
- CDH版本:CDH-5.4.5
- hostname配置
- 编辑/etc/sysconfig/network,修改hostname, (需重启使其生效)
NETWORKING=yes |
- hosts文件修改
- 修改集群内所有机器/etc/hosts文件, 添加如下配置 (需重启使其生效)
192.168.58.93 cdh1 192.168.58.94 cdh2 192.168.58.94 cdh3 |
- 修改/etc/selinux/config 文件 ,将SELINUX=enforcing改为SELINUX=disabled
- 首先查看防火墙状态:
[root@cdh1 .ssh]# service iptables status iptables: Firewall is not running. //已经关闭 |
- 关闭防火墙
service iptables stop |
- 永久性生效,重启后不会复原
chkconfigiptables off //永久关闭 |
- 检查系统是否有未挂载硬盘: 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 |
- 给第二块硬盘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): |
- 输入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. |
- 在新分区上建立文件系统(格式化)
mkfs.ext4 /dev/vdb5 |
- 手动分区挂载到系统中
[root@i-6CBF585F ~]# mkdir /data1 //创建要挂载的目标目录 [root@i-6CBF585F ~]# mount /dev/vdb5 /data1 //手动挂载到创建的目录 |
- 修改系统配置,开机自动挂载。将挂载信息写入/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 |
- 检查挂载是否成功:输入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
- 查看已安装版本: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]# |
- 查看相关安装包: 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]# |
- 卸载系统自带JDK安装包
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64 |
安装自选版本JDK
- 下载到指定目录:/data1/bxji/software/tools/
- 解压到指定目录:/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 |
- 配置环境变量,修改/etc/profile 文件增加以下内容
export JAVA_HOME=/usr/java/jdk1.7.0_80 |
- 生效 profile(或重启机器)
source /etc/profile(只对当前终端有效,最好重启系统) |
- 检查是否安装成功 :终端输入 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
官方下载地址:http://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.50-linux2.6-x86_64.tar.gz
- 检查当前系统是否已安装 : 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]# |
- 删除已经安装
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64 |
- 添加mysql组和mysql用户
用于设置mysql安装目录文件所有者和所属组。
groupadd mysql //添加用户组 useradd -r -g mysql mysql// -r参数表示mysql用户是系统用户,不可用于登录系统。 |
- 解压到指定的安装目录,我们这里指定为/usr/local。
tar -zxvf /data1/bxji/software/tools/mysql-5.5.50-linux2.6-x86_64.tar.gz -C /usr/local |
- 解压后在/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 |
- 更改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 |
- 执行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 |
- 将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 |
- 复制配置文件到/etc/my.cnf
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf |
- 将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就会自动启动了。
- 直接手动启动
service mysqld start |
- 配置环境变量,修改/etc/profile 文件增加以下内容
export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin |
使 profile生效,执行命令source /etc/profile(当前终端生效), 这样就可以在shell中直接输入mysql命令来启动客户端程序了:
- 修改root用户密码
进入mysql客户端口命令行,用root用户登录后,执行如下命令,修改root密码为hadoop
use mysql; UPDATE user SET password=PASSWORD('hadoop') WHERE user='root'; FLUSH PRIVILEGES; |
- 修改字符集utf-8
使用 mysql> SHOW VARIABLES LIKE 'character_set_%';查看,发现数据库编码均已改成utf8,说明就不需要修改了。
|
使用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后,分发到集群内各节点 。
- 生成公钥/私钥
- 在集群内每台机器上生成公钥/私钥对,执行命令:
ssh-keygen -t rsa -P '' |
P表示密码, -P '' 就表示空密码, 也可以不用-P参数, 这样就要个车回车, 用-P就一次回车
- 在当前用户目录/root下生成.ssh目录, .ssh下有id_rsa和id_rsa.pub
- 收集所有公钥写入authorized_keys cdh1
- 将cdh1、 cdh2 生成公钥文件/root/.ssh/id_rsa.pub复制到cdh1下, 在cdh1机的.ssh/authorized_keys文件里'
- 在cdh1上,新建authorized_keys文件, 并修改权限为600
touch /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys //authorized_keys的权限要是600 |
-
- 分别复件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 机器上执行 |
-
- 查看cdh1上, 已复制的文件
- 将复制来的密钥添加到authorized_keys
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys |
- 分发authorized_keys到集群内节点
- 将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 |
- 测试集群间机器ssh免密码登陆:第一次要输入 yes
五、安装NTP服务(集群内所有节点)
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下 :1. master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。2. 所有datanode节点以master节点为基础同步时间。
- 安装ntp服务
- 查看是否已经安装:rpm -qa | grep ntp。 如果已安装就不需要再安装了。
-
- 如果没安装,使用: yum install ntp 安装
- 设置开机启动: chkconfig ntpd on
- 修改/etc/ntp.conf:
- 将
restrict default kod nomodify notrap nopeer noquery注释掉,这个对客户端的限制太多。添加,restrict default nomodify notrust(允许任何IP的客户机都可以进行时间同步)以允许所有客户端获取时间数据。notrust 参数的功能是并需通过认证才能同步,也就是客户端同步命令中必须有keyid 和key才能通过。 - 注释掉所有的
trustedkey, 添加 trustedkey 1 2 3,后边指定数字任意,但必须与/etc/ntp/keys文件中的 值保持一致。也就是说1 2 3 这三个数分别作为认证 的 keyid。 - 配置时间源, 指定同步参考的服务器时间。如果连接不了外网就把所有外网时间服务器都注释掉。
- 将
server 192.168.58.93 // 局域网(GA网)内,客户机(slaver)配置为集群内master服务器IP server ntp.api.bz // 连接不了外网就注释掉 server 2.centos.pool.ntp.org // 连接不了外网就注释掉 |
-
- 添加如下配置项目,以让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。 客户端不需要配置,只在服务端配置即可。
server 127.127.1.0 # local clock //服务端如果连接不了外网,使用本地时间提供给客户端同步 fudge 127.127.1.0 stratum 2 |
-
- 最后保存退出
- 修改/etc/ntp/keys文件(集群内所在节点)
- 添加如下配置, 前面的数字必须与 /etc/ntp.conf 文件中 trustedkey 后边指定的数字一致才行,字符串任意。
1 M gao 2 M tian 3 M di |
rm -f /etc/localtime cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
- 重启 ntp 服务 :
- service ntpd restart 。要注意ntp的重启是有延迟的,所以有的时候重启以后没发现修改配置生效,是因为这个延迟导致的, 这是因为NTP server还没有和其自身或者它的server同步上。
- 如果集群内所在节点都安装了NTP服务,服务端时间源外网时间源不可用时,可与本地时间同步,且客户端时间源配置了集群内服务端,那么启动所有节点NTP服务,集群内节点即可实现时间同步。
- 如果客户端NTP服务未启动,或者未配置集群内时间源,可通过执行 ntpdate<ntp server> 来同步,我们只要指定与master节点同步就可以了。
- 手动在集群内所客户端系统上执行 ntpdate 192.168.58.93 ,测试服务器是否成功配置;
成功返回:ntpdate[15522]: adjust time server 192.168.84.29 offset 0.290456 sec |
六、安装Cloudera Manager 5(master)
- 下载Cloudera Manager 5 安装文件
- 下载地址:http://archive.cloudera.com/cm5/cm/5/ ,根据自己的系统选择相应的版本,本次安装选用的是cloudera-manager-el6-cm5.4.5_x86_64.tar.gz 。
- 解压到/opt目录
- 上传并解压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 |
- 添加mysql驱动
- 将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/ |
useradd --system --home=/opt/cm-5.4.5/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm |
- 修改/opt/cm-5.4.5/etc/cloudera-scm-agent/config.ini 下面的serer_host为主节点的hostname
- 初始化mysql数据库
- 进入mysql数据库控制台,创建以下数据库
- 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; |
- 检查创建的数据库:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | amon | | hive | | hue | | mysql | | performance_schema | | test | +--------------------+ 7 rows in set (0.00 sec) |
- 以上数据库,可能会根据安装组件的不同略有差别。 给root用户授权(密码为hadoop),后面安装CDH组件hive、hue、集群监控时要用到这里设置 的用户及密码。
grant all on *.* to root@"%" Identified by "hadoop"; |
- 为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! |
/opt/cm-5.4.5/etc/init.d/cloudera-scm-server start |
注意server首次启动不要立即关闭或重启,因为首次启动会自动创建相关表以及数据,如果因为特殊原因中途退出,请先删除所有表以及数据之后再次启动,否则将会出现启动不成功的情况。
- 将主节点/opt/cm-5.4.5集群内分发
- 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 |
-
- 在所有datanode节点上,创建cloudera-scm-agent目录,否则启动报错
mkdir /opt/cm-5.4.5/run/cloudera-scm-agent (如果有此目录请忽略该操作) |
- 在所有datanode节点上,启动(注意必须以管理员权限启动)
sudo /opt/cm-5.4.5/etc/init.d/cloudera-scm-agent start |
- 浏览器登录Cloudera Manager 5 控制台
- 浏览器启动Cloudera Manager 5 控制台(默认端口号是7180),启动成功就会看到登陆页面。http://192.168.58.93:7180/cmf/login 初次登录 用户名:admin 密码:admin
七、安装CDH5(master)
首先下载与自己系统版本相对应的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 。
- 制作CDH本地安装源
- 下载完成后,将这两个文件放到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 |
- 新建文件命名为: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 |
- 重启cloudera-scm-server 以识别安装源
sudo /opt/cm-5.4.5/etc/init.d/cloudera-scm-server restart |
- 正式安装CDH
- &bsp; 登陆控制http://192.168.58.93:7180,
-
- &bsp; 选择Hadoop及其组件安装选择Cloudera版本, &bsp;这里选择安装免费版
-
- &bsp; 选择主机, 这里要保证所有agets节点服务都启动了,才能检测到受控节点。
因为我们是离线安装,(Cloudera推荐使用Parcel)
这里数据库存用户名root,密码之前修改为haoop。如果报mysql数据驱动没找到,就需要上载获取到组件lib目录。
这里有几个重要的目录配置,作为hdfs根目录应该指向存储空间较大的硬盘目录(本次安装环境磁盘空间都在/根路径,这里就不修改了)。
常见问题
- 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 |
- 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没有配置(很诡异,我明明配置了,只是重启机器)