一, 机子分配
注意, 本安装教程是在真机上进行, 而非虚拟机. 另, 此次搭建主要的目的是搭建测试环境, 让 Hadoop 各组件能够运作起来即可, 完成搭建后, 将用小数据量进行相关数据的计算与测试. 线上环境将会使用阿里云主机.
以下是四台真机配置:
机子内网 IP 地址 | 主机名 | 内存大小 | 磁盘大小 | CPU |
192.168.0.29 | bigdata01(主) | 8GB | 2T | 1 个物理 CPU,4 核 |
192.168.0.133 | bigdata02(从) | 8GB | 500GB | 1 个物理 CPU,2 核 |
192.168.0.135 | bigdata03(从) | 8GB | 500GB | 1 个物理 CPU,2 核 |
192.168.0.115 | bigdata04(从) | 8GB | 500GB | 1 个物理 CPU,2 核 |
根据机子的配置, 建议 Hadoop 的 NameNode 放在 29 这台机子上, 配置高可用的话, NameNodeStandby 放在除 29 以外任意一台机子均可, DataNode 四台机子都要配. 其它组件如何放置, 后续会说到.
Tips:
在 Linux 系统环境下, 查看机子的内存大小命令: cat /proc/meminfo |grep MemTotal
查看机子的硬盘大小: fdisk -l | grep Disk
查看机子的 CPU 情况:
有两个公式可以记一下: 总核数 = 物理 CPU 个数 * 每颗物理 CPU 的核数;
总逻辑 CPU 数 = 物理 CPU 个数 * 每颗物理 CPU 的核数 * 超线程数
查看物理 CPU 个数: cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
查看每个物理 CPU 的核数: cat /proc/cpuinfo| grep "cpu cores"| uniq
查看逻辑 CPU 的个数: cat /proc/cpuinfo| grep "processor"| wc -l
二, 下载相关文件
1,Ubuntu 系统
http://old-releases.ubuntu.com/releases/16.04.3/ubuntu-16.04.4-server-amd64.iso
关于操作系统的选择, 其实区别不大, 这种级别的问题, 对我这种水平的人, 不太能够感知得到, 当然会继续努力, 去感知操作系统级别的问题.
2,cloudera manager 相关下载
先下载好来, 然后传到各个节点上去, 不然安装过程中下载, 速度慢得让你分分钟想砸键盘.
tar 包下载:
https://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz
parcles 下载:
- http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel
- http://archive.cloudera.com/cdh5/parcels/5.15.2/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel.sha1
- http://archive.cloudera.com/cdh5/parcels/5.15.2/manifest.json
下载的 tar 包, 包含了 cloudera manager server,cloudera manager daemons,cloudera manager agents.
parcles 包则是 CM 特有的包格式, 安装的各个组件就是从 parcles 里面取出来的.
三, 系统环境的设置
1,root 用户的设置 (四个节点都要)
Ubuntu 系统在刚安装完成后, root 用户默认不被启用, 也没有密码, 因此需要给 root 用户设置一个登陆密码, 还要设置 root 用户允许 SSH 登陆, 这样会方便我们进行软件的安装.
给 root 用户设置密码: sudo passwd root
开启 root 用户 SSH 远程登陆权限: sudo vi /etc/SSH/sshd_config, 将文件中的 PermitRootLogin prohibit-password 改为 PermitRootLogin yes
要使修改的配置生效, 需要重启 SSH 服务: service SSH restart
设置好了之后, 登录 root 用户, 后面都是用 root 用户操作了: su root
2, 修改 hosts 文件 (四个节点都要)
命令: VIM /etc/hosts
将 ip 和主机名添加到文件末尾:
注意 ip 和主机名修改为你自己的.
3, 免密登录 SSH 设置 (四个节点都要)
这一步很重要, 不然在安装 CM 的过程中会出错, 一定要完成这一步.
首先, 在每个节点上分别生成密钥
命令: SSH-keygen -t rsa
一路回车, 结束后, 在 / root/.SSH 文件夹中, 会有 id_rsa,id_rsa.pub 两个文件.
每个节点都生成密钥成功后, 然后我们把每个节点的 id_rsa.pub 文件中的内容, 集中到一个名为 authorized_keys 文件中, 然后把这个文件分别传送到各节点的. SSH 文件夹中, 这样我们就可以在任意节点使用 SSH 命令免密登录到别的节点上去.
最终,.SSH 文件夹中, 我们可以看到以下几个文件:
试试效果:
可以看到, 这里并没有提示要求我们输入密码登录到 bigdata02 机子上.
4, 安装 jdk1.8(四个节点都要)
安装包已经下载好了, 就在之前已经下载好的 cm6.3.0-ubuntu1604.tar.gz 这个包里.
将包上传到机子上, 之后使用命令: tar -zxvf cm6.3.0-ubuntu1604.tar.gz, 解压.
java 安装包在路径:/cm6.3.0/pool/contrib/o/oracle-j2sdk1.8
注意这里是一个 deb 包, 我们需要使用 dpkg 命令进行包的安装.
命令: dpkg -i oracle-j2sdk1.8_1.8.0+update181-1_amd64.deb
默认的安装路径为:/usr/lib/jvm/java-8-oracle-cloudera.
接下来配置 jdk 的全局环境变量
编辑 /etc/profile 文件: VIM /etc/profile
在文件末尾加上下面的代码:
- export JAVA_HOME=/usr/lib/jvm/java-8-oracle-cloudera
- export JRE_HOME=${
- JAVA_HOME
- }/jre
- export CLASSPATH=.:${
- JAVA_HOME
- }/lib:${
- JRE_HOME
- }/lib
- export PATH=${
- JAVA_HOME
- }/bin:$PATH
加入完成后, 要使全局变量生效, 使用命令: source /etc/profile
之后, 输入: java -version, 出现下面的提示, 则说明安装成功了:
5, 安装 ntp(四个节点都要)
安装 ntp 包的目的是, 为了保障各节点的时间能够同步, 否则安装 CDH 过程中, 会出现时间不同步的错误.
使用命令: apt-get install ntp 进行安装
使用命令: service ntp start 启动服务
6, 安装 MySQL 数据库 (主节点需要, 其它节点不需要安装)
使用命令安装: apt-get install MySQL-server
安装完成后, 修改一下配置文件: VIM /etc/MySQL/MySQL.conf/mysqld.cnf
在 [mysqld] 下, 添加:
- lower_case_table_names=1
- default-time_zone = '+8:00'
- skip_ssl
重启 MySQL:service MySQL restart
7, 将下载的 parcle 文件放到主节点的目录下
将 parcle 文件上传到主节点目录, 可以方便后续 CM 安装 parcle, 提高安装速度.
8, 修改 swappniness 的值 (四个节点都要)
根据 cloudera manager 的建议, 将值设定为 10
命令: echo 10> /proc/sys/vm/swappiness
四, 测试配置好的环境
1, 测试各节点是否网络通畅
- ping bigdata01
- ping bigdata02
- ping bigdata03
- ping bigdata04
2, 测试各节点免密登录
- SSH bigdata01
- SSH bigdata02
- SSH bigdata03
- SSH bigdata04
都不需要输入密码, 直接能够登录上, 说明此项配置成功
五, 安装 Cloudera Manager 并启动 Server 以及 Agent
1, 文件操作 (主节点上操作)
首先解压到 / opt / 文件夹下:
tar zxvf ~/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz -C /opt/
然后在 opt 文件夹下, 再创建以下几个文件夹:
mkdir /opt/cloudera /opt/cloudera/parcels /opt/cloudera/parcel-repo
剪切过去:
mv ~/CDH-5.15.2-2.cdh5.15.2.p0.3-xenial.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel.sha
剪切过去:
mv ~/CDH-5.15.2-2.cdh5.15.2.p0.3-xenial.parcel /opt/cloudera/parcel-repo/CDH-5.15.2-1.cdh5.15.2.p0.3-xenial.parcel
剪切过去:
mv ~/manifest.JSON /opt/cloudera/parcel-repo/manifest.JSON
删除压缩包:
rm -rf ~/cloudera-manager-xenial-cm5.15.2_amd64.tar.gz
2, 添加 MySQL 驱动 (主节点上操作)
cp /usr/share/java/MySQL-connector-java.jar /opt/cm-5.15.2/share/cmf/lib/MySQL-connector-java.jar
3, 创建数据库 (主节点上操作)
这里创建的数据库, 是用来存放各个大数据组件的元数据的.
这里数据库已经配置好了远程 root 可以登录, 因此在 Windows 电脑上, 使用 Navicate 连接数据库. 在 Navicate 里之行下面的数据库创建语句:
- CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';
- CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
- GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
4, 创建 SCM 数据库 (主节点上操作)
命令:/opt/cm-5.15.2/share/cmf/schema/scm_prepare_database.sh MySQL scm scm
5, 修改 Agent 配置 (主节点上操作)
命令: VIM /opt/cm-5.15.2/etc/cloudera-scm-agent/config.INI
修改 server_host=localhost, 改为 server_host=192.168.0.29
6, 复制到从节点 (主节点上操作)
将整个 Cloudera Manager 的文件从主节点复制到其他三个从节点上:
- scp -r /opt/cm-5.15.2 bigdata02:/opt/
- scp -r /opt/cm-5.15.2 bigdata03:/opt/
- scp -r /opt/cm-5.15.2 bigdata04:/opt/
7, 创建 cloudera-scm 用户 (四个节点都要)
命令:
- useradd --system --home=/opt/cm-5.15.1/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
- bigdata01:
bigdata02:
bigdata03:
bigdata04:
我这里之前已经创建过了, 所有会提示用户已经存在.
8, 更改文件夹所属用户和用户组 (四个节点都要)
命令:
- mkdir /opt/cloudera /opt/cloudera/parcels /opt/cloudera/parcel-repo
- chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels
- chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
- chown -R cloudera-scm:cloudera-scm /opt/cm-5.15.2
更改前:
更改后:
9, 启动 Cloudera Manager Server(主节点) 和 Agent(四个节点都要)
在 bigdata01 节点上输入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-server start
在 bigdata02,bigdata03,bigdata04 上输入命令:
/opt/cm-5.15.2/etc/init.d/cloudera-scm-agent start
六, 进入图形化界面安装 CM 和 CDH
1, 访问 CM 的图形化界面管理页面
当启动 cloudera-scm-server 成功后, 等待几分钟之后, 访问主节点的 7180 端口, 就可以进入到图形化安装界面. 刚开始启动完成之后, 不能立马访问, 因为程序还在数据库创建响应的表:
创建完成后, scm 数据库中会有 47 张表格, 之后再访问 7180 端口, 就能看到登录页面了.
初始登录的账号密码为: admin admin
2, 安装过程可能会出现的问题
来源: https://www.cnblogs.com/getMyCodes/p/12048776.html