准备实验环境
- CentOS-7-x86_64-Everything-1708.iso
- jdk-8u144-linux-x64.tar.gz
- ambari-2.6.0.0-centos7.tar.gz
- HDP-2.6.3.0-centos7-rpm.tar.gz
- HDP-UTILS-1.1.0.21-centos7.tar.gz
(一)安装CentOS操作系统
- 总共需要三台CentOS,每台机器分配4G内存
- 注意把下面的两个选项选上
- Development Tools
- MariaDB Server(就是MySQL数据库):只需要在第一台机器上安装
(二)配置CentOS
- 关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
- 配置主机名:编辑/etc/hosts文件
192.168.163.21 hdp21
192.168.163.22 hdp22
192.168.163.23 hdp23
- 配置免密码登录
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@hdp21
- 安装JDK(使用tar.gz安装到/root/training的目录下)
(三)安装配置Apache HTTP服务器和NTP服务
- 挂载光盘:mount /dev/cdrom /mnt
- 删除原来的所有repo文件 rm -rf /etc/yum.repos.d/*.repo
- 创建yum的源文件: vi /etc/yum.repos.d/my.repo
[centos-yum]
baseurl=file:///mnt
enabled=1
gpgcheck=0
注意:每台机器都需要挂载光盘
- 开启NTP服务 (所有节点都需要操作)
yum install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
2.安装Apache Http服务(只需要在hdp21上安装)
yum install httpd
3.启动Apache Http服务
systemctl start httpd.service
systemctl enable httpd.service
4.验证Http服务,使用浏览器访问如下网页:
(四)配置MariaDB数据库
-
启动MariaDB
systemctl start mariadb
systemctl enable mariadb (开机自启动)
- 配置MariaDB
mysql_secure_installation
#首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
#设置密码
Set root password? [Y/n] <–是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
#其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
#初始化MariaDB完成,接下来测试登录,输入密码能正常登陆就完成了
- 初始化MariaDB
登录数据库:mysql -uroot -pWelcome_1
(1)安装完成后创建ambari数据库及用户:
create database ambari;
CREATE USER 'ambari'@'%'IDENTIFIED BY 'Welcome_1';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:
create database hive;
CREATE USER 'hive'@'%'IDENTIFIED BY 'Welcome_1';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:
create database oozie;
CREATE USER 'oozie'@'%'IDENTIFIED BY 'Welcome_1';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
- 安装mysql jdbc 驱动
yum install mysql-connector-java
安装路径:/usr/share/java/mysql-connector-java.jar
(五)配置Ambari本地源(在hdp21上)
- 一定注意:解压后,需要删除目录下所有的html文件。
- 在httpd网站根目录,默认是即/var/www/html/,创建目录ambari
mkdir /var/www/html/ambari
- 将ambari-2.6.0.0-centos7.tar.gz和HDP-2.6.3.0-centos7-rpm.tar.gz解压到该目录
tar -zxvf ambari-2.6.0.0-centos7.tar.gz -C /var/www/html/ambari
tar -zxvf HDP-2.6.3.0-centos7-rpm.tar.gz -C /var/www/html/ambari
- 将HDP-UTILS-1.1.0.21-centos7.tar.gz解压到/var/www/html/ambari/HDP-UTILS/
mkdir /var/www/html/ambari/HDP-UTILS/
tar -zxvf HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/ambari/HDP-UTILS/
- 配置ambari、HDP、HDP-UTILS的本地源(路径 : /var/www/html/ambari/HDP/centos7/2.6.3.0-235/)
- 修改ambari.repo文件
#VERSION_NUMBER=2.6.0.0-267
[ambari-2.6.0.0]
name=ambari Version - ambari-2.6.0.0
baseurl=http://192.168.163.21/ambari/ambari/centos7/2.6.0.0-267
gpgcheck=1
gpgkey=http://192.168.163.21/ambari/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
2. 修改hdp.repo文件
#VERSION_NUMBER=2.6.3.0-235
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://192.168.163.21/ambari/HDP/centos7/2.6.3.0-235
gpgcheck=1
gpgkey=http://192.168.163.21/ambari/HDP/centos7/2.6.3.0-235/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.21]
name=HDP Utils Version - HDP-UTILS-1.1.0.21
baseurl=http://192.168.163.21/ambari/HDP-UTILS
gpgcheck=1
gpgkey=http://192.168.163.21/ambari/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
3.将ambari.repo和hdp.repo拷贝到/etc/yum.repos.d/目录下
(六)安装Ambari
- 安装Ambari Server:yum install ambari-server(前提是必须挂载光盘 mount)
- 配置Ambari Server:ambari-server setup
- 将Ambari数据库脚本导入到数据库
mysql -uambari -pWelcome_1
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
- 启动Ambari Server
ambari-server start
- 访问Ambari Server的Web Console:http://192.168.163.21:8080
出现登录界面,默认管理员账户登录, 账户:admin 密码:admin
(七)安装配置HDP 2.6.3集群
(安装的所有服务的路径--->/usr/hdp/2.6.3.0-235)
- 点击上面登录成功页面的Launch Install Wizard 按钮进行集群配置
- 设置集群名称
3.设置HDP安装源
4.主机信息确认
5.选择要安装部署的服务
6.各个服务Master节点配置
7.从节点的配置
8.服务的定制化配置
namenode | /root/training/bigdata/namenode |
datanode | /root/training/bigdata/datanode |
yarn.nodemanager.local-dirs | /root/training/bigdata/nodemanager/local |
yarn.nodemanager.log-dirs | /root/training/bigdata/nodemanager/log |
所有密码 | password |
9.显示配置信息
10.开始部署集群
11.全部安装成功界面如下
12.执行jps命令查看后台进程
13.安装完成
14.集群管理首页
15. 执行WordCount程序
- 切换到hdfs用户
- 创建目录:hdfs dfs -mkdir /input
- 上传数据文件:hdfs dfs -put data.txt /input
- Example jar的位置:
/usr/hdp/2.6.3.0-235/hadoop-mapreduce/hadoop-mapreduce-examples.jar
- 执行WordCount
hadoop jar hadoop-mapreduce-examples.jar wordcount /input /output/wc
(八)节点的扩展(以HDFS为例)
① 从节点的准备工作
- 安装一台新的Linux
- 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
- 配置主机名:编辑/etc/hosts文件(主节点也需要加入从节点的信息)
- 配置免密码登录(各个节点之间,都需要配置)
- 安装JDK
- 挂载光盘:mount /dev/cdrom /mnt
- 删除原来的所有repo文件
- 创建yum的源文件: vi /etc/yum.repos.d/my.repo
[centos-yum]
baseurl=file:///mnt
enabled=1
gpgcheck=0
- 开启NTP服务 (所有节点都需要操作)
yum install ntp
systemctl is-enabled ntpd
systemctl enable ntpd
systemctl start ntpd
- 在新节点上创建目录:mkdir -p /var/lib/ambari-agent/data
②添加一个新的节点,如下图所示:
- 配置新节点的主机信息和私钥文件
- 确认主机信息
- 部署一个新的DataNode到新的节点
- 确认部署信息,并部署
- 部署成功,并在从节点上执行jps命令检查新的DataNode
(九)启用HA(以NameNode为例)
注意:至少需要三个ZooKeeper节点,否则会出现以下错误:
- 按照上一节的步骤,在集群中再添加一个新的节点,并部署DataNode。
- 将ZooKeeper服务部署到三个节点上,并启动。
选择:“Service Actions” ---> “Add ZooKeeper Server”
- 重启所有的ZooKeeper服务
注意:如果遇到有的节点无法启动,在Console上重启所有的服务。正常情况下,应该是所有服务都能正常启动。
- 为HDFS NameNode添加HA的服务
- 输入一个NameService
- 配置NameNode HA
- 检查配置信息
- 需要手动配置的内容,执行下面的命令:
- Login to the NameNode host hdp71.
- Put the NameNode in Safe Mode (read-only mode):
- sudo su hdfs -l -c 'hdfs dfsadmin -safemode enter'
- Once in Safe Mode, create a Checkpoint:
- sudo su hdfs -l -c 'hdfs dfsadmin -saveNamespace'
- You will be able to proceed once Ambari detects that the NameNode is in Safe Mode and the Checkpoint has been created successfully.
- 开始进行HA的配置:
- 需要手动配置的内容,执行下面的命令:
sudo su hdfs -l -c 'hdfs namenode -initializeSharedEdits'
- 启动HA
- 需要手动配置的内容,执行下面的命令:
- 进行最后的安装配置
- 验证HA:(自己完成)如果一个NameNode宕机,验证是否会进行自动的切换。
(十)删除节点和服务
(1)停止要删除节点(hdp23)上的所有服务
(2)删除该节点(hdp23)
(3)删除HDFS、Yarn、MapReduce2服务
(4)删除节点hdp22,只保留hdp21
(5) 停止所有服务,并将hdp21的内存改为8g
注意:由于需要重启虚拟机,一定要重新挂载光盘
(6) 重新部署HDFS、Yarn、MapReduce2服务。注意清空下面的目录:
namenode | /root/training/bigdata/namenode |
datanode | /root/training/bigdata/datanode |
yarn.nodemanager.local-dirs | /root/training/bigdata/nodemanager/local |
yarn.nodemanager.log-dirs | /root/training/bigdata/nodemanager/log |
所有密码 | password |
(十一)安装部署其他服务(内存8g)
注意:一定保证httpd service和yum的源可用。
(1)部署Hive和Pig
注意:
- Hive的执行引擎需要选择:MapReduce,如下图
- MetaStore选择:MySQL
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
(2)部署Flume和Sqoop:很简单。
(3)部署Spark:很简单。
(4)部署Kafka:很简单。
(5)部署Storm:很简单。
(6)部署Mahout:很简单。