1.文档编写目的
本文主要是描述使用VM+Centos7.2+Ambari2.6+HDP2.6搭建HDP大数据平台的过程。由于在个人PC虚拟机中安装的全过程,学习Hadoop生态圈各组件时,通过一些理论资料或书籍学习,过程会非常枯燥的,而且很难深入理解其中的原理,因此搭建一个学习使用的Hadoop的生态大数据环境,是非常有必要的。在综合考虑单独部署各个组件和使用发行版的Hadoop产品,我选择后者,如果乐于自己动手但不部署也是可以的。写这个博客,一方面,为了自己重新梳理HDP的安装过程,另一方面,可以为大数据入门者提供搭建基础环境的参考。搭建完成基础环境后,计划将目前hadoop生态圈的各组件产品的使用进行详细总结和分析,请持续关注。
-
目录
①平台技术栈
②介质准备
③虚拟机及系统安装
④集群服务器配置(IP静态化、SSH免密、NTP、关闭防火墙等)
⑤配置本地yum源
⑥Java、Mysql安装配置
⑦安装Ambari
⑧安装HDP集群
⑨集群完整性检查,包括 HDFS 文件系统、MapReduce、Hive 等是否可以正常运行。
2.平台技术栈
在Hadoop的发行版中进行选择,综合对比HDP、CDH、MapR之后,选择资料和使用者较多的HDP版本。HDP是由Hortonworks公司根据开源的各组件进行开发整合,形成的发行版本,https://hortonworks.com/ 访问官方站点,可以参阅安装、使用指南等资料,在安装部署过程中,如果遇到错误,解决办法很有可能可以从官网的指南中找到。
3.介质准备
在开始安装之前,在Hortonworks官方ambari安装指南梳理,由于考虑网络等因素,采用离线安装ambari和HDP,并根据版本兼容性下载介质:
-
VMware-workstation-full-14.1.2-8497320 下载地址
-
CentOS-7-x86_64-DVD-1511 下载地址
-
Ambari 2.6.2 下载地址
-
HDP-2.6.5.0 下载地址
-
JDK8 下载地址
-
Mysql 下载地址
也可以选择在线安装,前提是网速稳定切带宽大,整个安装过程会耗时较长。
4.虚拟机系统安装
在安装之前,对PC的硬件配置的建议:内存8G以上,最好16G;硬盘500G以上; CPU双核、i7及以上;
(1)安装VMware
(2)安装centos7
拷贝生成的虚拟机文件,规划四个虚拟服务器节点,如下
(3)VMware管理个虚拟机节点,并配置修改主机名称,并根据实际运行要求,配置内存、磁盘大小,其中主节点内存、硬盘多分配一些,性能要求较高。
5.集群服务器配置
推荐使用xshell、filezilla进行连接集群服务器
(1)修改节点名称
hostnamectl set-hostname master
(2)静态化IP地址及hosts配置
静态化IP: vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
BOOTPROTO=static #dhcp改为static
IPADDR=192.168.8.10 #静态IP
GATEWAY=192.168.8.2 #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=10.30.20.254 #DNS 配置
DNS2=192.168.31.1
IP地址分配: master:192.168.8.10
node1: 192.168.8.11
node2: 192.168.8.12
node3: 192.168.8.13
配置生效: source /etc/hosts
注:遇到的问题重启网卡:service network restart 重启之后,发现IP地址还是自动分配的,解决办法:需要关闭NetworkManager服务,命令如下:
systemctl disable NetworkManager.service
chkconfig network on
systemctl stop NetworkManager
systemctl restart network
(3)SSH免密登陆
SSH配置:sudo vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
生成SSH秘钥:ssh -keygen -t rsa
将pub秘钥放到认证文件中:cat id_rsa.pub >> authorized_keys
目录权限设置:
sudo chmod 700 ~
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
汇集pub秘钥到master认证文件:cat ~/.ssh/id_rsa.pub | ssh master 'cat >> ~/.ssh/authorized_keys'
拷贝认证文件到节点:
scp ~/.ssh/authorized_keys node1:~/.ssh/
scp ~/.ssh/authorized_keys node2:~/.ssh/
scp ~/.ssh/authorized_keys node3:~/.ssh/
重启SSH:sudo service sshd restart
测试验证:ssh node1/node2/node3
详细参考:https://www.cnblogs.com/keitsi/p/5653520.html
(4)启用NTP,保证个节点时钟一致,保持彼此同步
yum install -y ntp
systemctl enable ntpd
6.配置本地yum源
(1)安装apchehttpd
yum install httpd
httpd -k start
(2)上传ambari、hdp的文件并解压
cd /var/www/html/
tar -zxvf xx.tar.gz -C /var/www/html
(3)配置本地源repo
ambari.repo
#VERSION_NUMBER=2.6.2.0-155
[ambari-2.6.2.0]
name=ambari Version – ambari-2.6.2.0
baseurl=http://master/ambari/centos7/2.6.2.0-155
gpgcheck=1
gpgkey=http://master/ambari/centos7/2.6.2.0-155/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
hdp.repo
[HDP-2.6]
name=HDP Version – HDP-2.6.5.0
baseurl=http://master/HDP/centos7/2.6.5.0-292
gpgcheck=1
gpgkey=http://master/HDP/centos7/2.6.5.0-292/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version – HDP-UTILS-1.1.0.22
baseurl=http://master/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://master/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
hdp.gpl.repo
[HDP-2.6-GPL]
name=HDP-GPL Version – HDP-GPL-2.6.5.0
baseurl=http://master/HDP-GPL/centos7/2.6.5.0-292
gpgcheck=1
gpgkey=http://master/HDP-GPL/centos7/2.6.5.0-292/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
(4)验证yum源可用性
yum clean all
yum list update
yum makecache
yum repolist
7.Java、Mysql安装配置
(1)JDK安装和配置
linux版本:http://www.oracle.com/technetwork/java/javase/downloads/index.htm查看:rpm -qa | grep java
卸载openjdk:
rpm -e –nodeps tzdata-java-2015g-1.el7.noarch
rpm -e –nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
rpm -e –nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
rpm -e –nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e –nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
上传java安装文件。
执行权限:
chmod +x jdk-8u121-linux-x64.rpm
安装:
rpm -ivh jdk-8u121-linux-x64.rpm
配置环境变量:
vim /etc/profile
#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_121
JRE_HOME=/usr/java/jdk1.8.0_121/jre
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH
使配置文件生效:source /etc/profile
(2)mysql数据库安装
安装:https://www.cnblogs.com/pythonal/p/6141516.html
安装完成后创建ambari数据库及用户,登录数据库root用户执行下面语句:
mysql -uroot -p
create database ambari character set utf8 ;
CREATE USER 'ambari'@'%'IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
如果要安装Oozie,再创建Oozie数据库和用户 再执行下面的语句:
create database oozie character set utf8 ;
CREATE USER 'oozie'@'%'IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
安装mysql jdbc 驱动:yum install mysql-connector-java
8.安装Ambari
(1)主节点运行安装ambari-server
yum install ambari-server -y
(2)初始化ambari
ambari-server setup
设置用户、jdk、数据库等配置,完成安装。
(3)执行数据sql
mysql -u ambari -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
(4)配置数据库驱动
ambari-server setup –jdbc-db=mysql –jdbc-driver=/usr/share/java/mysql-connector-java.jar
(5)启动Ambari-server并登陆控制台
ambari-server start
控制台:http://master:8080
9.安装HDP集群
(1)配置集群名称、节点、HDP版本等
(2)Ambari-Agent安装
(3)选择安装的服务、并逐步配置
这里为了加快安装,选择常用的几个服务:
(4)安装完成,进入监控台
启动所有服务
运行情况
10.集群完整性检查
(1)HDFS功能验证
[root@master ~]# sudo -u hdfs hdfs dfs -mkdir /test
[root@master ~]# sudo -u hdfs hdfs dfs -chown root:root /test
[root@master ~]# hdfs dfs -put a.txt /test
[root@master ~]# hdfs dfs -cat /test/a.txt
(可左右滑动)
(2)Hive功能验证
创建Hive表并插入测试数据,执行以下命令:
CREATE TABLE table_date2(s1 STRING, s2 STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ",";
INSERT INTO TABLE table_date2 values('2018-7-3 22:23:00','test');
(可左右滑动)
(3)MapRuduce任务验证
hadoop jar /usr/hdp/2.6.4.0-91/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5
(可左右滑动)
后续学习Hadoop生态圈组件内容分享,请关注公众号:
