赞
踩
目前而言,不收费的Hadoop版本主要有三个国外厂商,分别是:
Apache(最原始的版本,所有发行版均基于这个版本进行改进)。
Hortonworks版本(Hortonworks Data Platform,简称“HDP”)。
Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)。
对比:
(1)Apache版本建议学习使用,不建议在生产环境使用。
(2)Hortonworks 主打产品是Hortonworks Data Platform (HDP),也同样是100%开源的产品,HDP除了常见的项目外还包含了Ambari,一款开源的安装和管理系统。
(3)Cloudera 最成型的发行版本,拥有最多的部署案例。提供强大的部署、管理和监控工具。其开发并贡献了可实时处理大数据的Impala项目,CDH有免费版和企业版,企业版只有60天试用期。
需求使用到的分别为Ambari、HDP和HDP-UTILS。
Ambari是一个基于web的工具,用于配置、管理和监视Hadoop集群,支持HDFS、MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Kafka、Oozie、Pig、Sqoop和Spark等服务。Ambari同样还提供了集群状况仪表盘,以友好的用户界面对它们的性能特性进行诊断。
HDP是hortonworks的软件栈,里面包含了hadoop生态系统的所有软件项目。
HDP-UTILS是工具类库。
2.X与3.X的主要区别:
1:Java运行环境升级为1.8;
2:HDFS支持纠删码:
纠删码相比于副本机制节省了一半以上的存储空间,普通副本机制需要3倍存储空间而这种机制只需1.4倍即可。
3::YARN时间线服务:
4:支持多余2个以上的NameNodes
3.0支持单active namenode+多standby namenode部署方式进一步提升了可用性。
5:MapReduce本地优化,性能提升了30%。
准备3台机器,均是centos7系统,分析修改主机名为hdp-01、hdp-02、hdp-03,并修改/etc/hosts文件如下:
10.8.12.50 hdp-01
10.8.12.51 hdp-02
10.8.12.52 hdp-03
HDP介质8.9G,在线安装特别慢,所以使用离线安装
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/ambari-2.7.4.0-centos7.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.4.0/HDP-3.1.4.0-centos7-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
在安装Ambari-server的主机(hdp-01)操作:
1、首先生成密钥对
ssh-keygen (提示时,直接回车即可)
2、再将自己的公钥拷贝并追加到其他机器的授权列表文件authorized_keys中
ssh-copy-id hdp-02
ssh-copy-id hdp-03
systemctl stop firewalld
systemctl disable firewalld
reboot
Jdk版本要求1.8及以上,配置过程省略
准备一个版本5.6之前的mysql数据库,安装过程省略
创建ambari-server需要用到的库表
CREATE DATABASE ambari;
use ambari;
CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
CREATE USER 'ambari'@'master' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'master';
FLUSH PRIVILEGES;
执行所需要的sql
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
创建hive库
CREATE DATABASE hive;
use hive;
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
CREATE USER 'hive'@'master' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master';
FLUSH PRIVILEGES;
1、修改时区
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2、安装并设置开机自启dat
yum install -y ntp
systemctl start ntpd
systemctl enable ntpd
3、配置开机启动校验
vim /etc/rc.d/rc.local
/usr/sbin/ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
4、配置定时任务
crontab -e
0 */1 * * * ntpdate ntp1.aliyun.com > /dev/null 2>&1; /sbin/hwclock -w
所有节点均执行以上操作
vi /etc/selinux/config
修改SELINUX=disabled
vi /etc/security/limits.conf
soft nofile 65536
hard nofile 65536
soft nproc 131072
hard nproc 131072
以下操作都是在要安装ambari-server服务的机器(hdp-01)上操作
1、安装httpd服务(hdp-01节点)
[root@hdp-01 ~]# yum -y install httpd
[root@hdp-01 ~]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
[root@hdp-01 ~]# chkconfig httpd on
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to usr/lib/systemd/system/httpd.service.
2、将下载好的3个包放到/var/www/html目录下
[root@hdp-01 ~]# mkdir -p /var/www/html/hdp 在http服务默认目录下添加目录
[root@hdp-01 ~]# cd /var/www/html/hdp 进入添加的目录
[root@hdp-01 ~]# mkdir -p /var/www/html/hdp/HDP-UTILS-1.1.0.22
[root@hdp-01 hdp]# tar -zxvf ambari-2.7.4.0-centos7.tar.gz 解压
[root@hdp-01 hdp]# tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz 解压
[root@hdp-01 hdp]# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22/ 解压
[root@hdp-01 hdp]# rm -rf ambari-2.7.4.0-centos7.tar.gz HDP-UTILS-1.1.0.22-centos7.tar.gz HDP-3.1.4.0-centos7-rpm.tar.gz 删除tar包
[root@hdp-01 hdp]# ls 查看
ambari HDP HDP-UTILS-1.1.0.22
3、访问http://ip/hdp,看是否成功
http://10.8.12.50/hdp
4、制作本地yum源
安装本地源制作相关工具
[root@hdp-01 hdp]# yum install yum-utils createrepo yum-plugin-priorities -y
[root@hdp-01 hdp]# createrepo ./
修改文件里面的源地址
1)设置ambari的yum源
[root@hdp-01 hdp]# vi ambari/centos7/2.7.4.0-118/ambari.repo
baseurl=http://10.8.12.50/hdp/ambari/centos7/2.7.4.0-118
gpgkey=http://10.8.12.50/hdp/ambari/centos7/2.7.4.0-118/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
2)把设置好的yum文件,复制到/etc/yum.repos.d/
[root@hdp-01 hdp]# cp ambari/centos7/2.7.4.0-118/ambari.repo /etc/yum.repos.d/
[root@hdp-01 hdp]# scp -r ambari/centos7/2.7.4.0-118/ambari.repo hdp-02:/etc/yum.repos.d/
[root@hdp-01 hdp]# scp -r ambari/centos7/2.7.4.0-118/ambari.repo hdp-03:/etc/yum.repos.d/
3)设置HDP的yum源
[root@hdp-01 hdp]# vi HDP/centos7/3.1.4.0-315/hdp.repo
#VERSION_NUMBER=3.1.0.0-78
[HDP-3.1.4.0]
baseurl=http://10.8.12.50/hdp/HDP/centos7/3.1.4.0-315
gpgkey=http://10.8.12.50/hdp/HDP/centos7/3.1.4.0-315/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
[HDP-UTILS-1.1.0.22]
baseurl=http://10.8.12.50/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22
gpgkey=http://10.8.12.50/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
4)把设置好的yum文件,复制到/etc/yum.repos.d/
[root@hdp-01 hdp]# cp HDP/centos7/3.1.4.0-315/hdp.repo /etc/yum.repos.d/
[root@hdp-01 hdp]# scp -r HDP/centos7/3.1.4.0-315/hdp.repo hdp-02:/etc/yum.repos.d/
[root@hdp-01 hdp]# scp -r HDP/centos7/3.1.4.0-315/hdp.repo hdp-03:/etc/yum.repos.d/
5)把设置好的yum重置
[root@hdp-01 ambari]# yum clean all
[root@hdp-01 ambari]# yum makecache
[root@hdp-01 ambari]# yum repolist
首先执行
[root@hdp-01 hdp]# yum -y install ambari-server
检查是否有自带的mariadb,有的话先删除
[root@hdp-01 hdp]# rpm -qa | grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@hdp-01 hdp3]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
建立mysql与ambari-server的连接
网上下载mysql-connector-java-5.1.47.jar放到/usr/share/java目录下并重命名,注意目录必须按照下面规定得否则无法启动
[root@hdp-01 ~]# mkdir -p /usr/share/java
[root@hdp-01 ~]# cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar
[root@hdp-01 ~]# vi /etc/ambari-server/conf/ambari.properties
添加 server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar
yum install mysql-connector-java
下面是配置执行流程,按照提示操作
[root@hdp-01 ~]# ambari-server setup
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
(1) 提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)? y
(2)ambari-server 账号。
如果直接回车就是默认选择root用户,我们在此输入:ambari
如果输入已经创建的用户就会显示:
Enter user account for ambari-server daemon (root):ambari
Adjusting ambari-server permissions and ownership...
(3)检查防火墙是否关闭
Checking firewall status...
(4)设置JDK。输入:2
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
如果上面选择自定义JDK,则需要设置JAVA_HOME。输入:/usr/local/jdk1.8
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /usr/local/jdk1.8
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
ambari服务下载,输入n
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n
Completing setup...
5)数据库配置。选择:y
Configuring database...
Enter advanced database configuration [y/n] (n)? y
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
==============================================================================
Enter choice (1): 3
(7)设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。如果想重命名,就输入。
Hostname (localhost): 10.8.12.121
Port (3306):
Database name (ambari): ambari
Username (ambari): ambari
Enter Database Password (bigdata): ambari
Re-enter password: ambari
Configuring ambari database...
Should ambari use existing default jdbc /usr/share/java/mysql-connector-java.jar [y/n] (y)? y
Configuring remote database connection properties...
(8)将Ambari数据库脚本导入到数据库
WARNING: Before starting Ambari Server, you must run the following DDL directly from the database shell to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)? y
Extracting system views...
ambari-admin-2.7.4.0.118.jar
....
Ambari repo file contains latest json url http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json, updating stacks repoinfos with it...
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
启动
[root@hdp-01 ~]# ambari-server start
启动日志查看
[root@hdp-01 ~]# tail -f /var/log/ambari-server/ambari-server.log
所有节点安装ambari-agent
[root@hdp-01 ~]# yum -y install ambari-agent
[root@hdp-01 ~]# chkconfig --add ambari-agent
然后再进入ambari-server管理界面账号密码默认都为admin
http://10.8.12.50:8080 默认帐号:admin 密码:admin
执行命令
[root@hdp-01 ~]#ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
登录进去后的页面,创建一个集群
输入集群名字:ipass_bigdata_cluster,点击next
选择要安装的hdp版本,并选择本地仓库安装
HDP3.1输入:
http://10.8.12.50/hdp/HDP/centos7/3.1.4.0-315/
HDP-UTILS-1.1.0.22输入: http://10.8.12.50/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/
以上都是之前配置的httpd上的连接
点击next
在target hosts中输入集群节点,就是hosts文件中配置的
hdp-01
hdp-02
hdp-03
在ssh private key选择hdp-01有私钥文件
[root@hdp-01 3.1.4.0-315]# cd ~
[root@hdp-01 ~]# cd .ssh/
[root@hdp-01 .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
[root@hdp-01 .ssh]#
id_rsa为私钥文件,放到本地
点击继续
确认安装ambari的agent
选择要安装的组件
每个服务所在节点分配
进程分配到节点
数据库用户密码填上之前创建好的
Hive测试连接
Hive database 选择existing mysql/mariadb
Database url:jdbc:mysql://10.8.12.121/hive?characterEncoding=UTF-8
Database password : hive
下一步
下一步
下一步
主界面
注意:安装集群过程中如果出现错误可以执行以下操作
1.清除数据库。
2.执行以下命令
[root@hdp-01 ~]# ambari-server stop
[root@hdp-01 ~]# ambari-server reset
[root@hdp-01 ~]# ambari-server setup
[root@hdp-01 ~]# ambari-server start
3.清除浏览器的缓存。
4.重新运行整个安装向导。
问题:重启ambari,感知不到其他节点的心跳。
vim /etc/ambari-agent/conf/ambari-agent.ini
在[security] 新增如下一行
[security] 的节点下,加入:
force_https_protocol=PROTOCOL_TLSv1_2
重启ambari-agent,# ambari-agent restart
Reboot重启服务器
注:
关闭服务时从下往上关,启动时,从上往下启动
各服务默认安装目录:/usr/hdp/3.1.4.0-315
Hdfs会有权限写入问题,解决方法,命令硬解决
eg:sudo -u hdfs hadoop fs -chmod 777 /warehouse
sqoop需要替换mysql的jar包:/usr/hdp/3.1.4.0-315/sqoop/lib
在主节点上新建用户:admin,并加入到hdfs组
[root@prod-hdp-01 ~]# useradd admin
[root@prod-hdp-01 ~]# passwd admin
Changing password for user admin.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@prod-hdp-01 ~]# usermod -a -G hdfs admin
[root@prod-hdp-01 ~]# usermod -G hdfs,root root
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。