>>分享SPSS,Hadoop等大数据处理技术,以及分布式架构以及集群系统的构建 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20558 个阅读者 刷新本主题
 * 贴子主题:  使用Ambari搭建Hadoop集群 回复文章 点赞(0)  收藏  
作者:Jacky    发表时间:2020-03-11 21:55:14     消息  查看  搜索  好友  邮件  复制  引用

  

Hadoop 介绍

Hadoop是一个开发和运行处理大规模数据的软件平台,是Apache的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计就是:MapReduce和HDFS。MapReduce提供了对数据的分布式计算,HDFS提供了海量数据的分布式存储。
在Hadoop家族中,收入了20多个用于计算、分析、存储、监控、管理等组件和工具,这些家族成员极大的丰富了Hadoop的各方面的功能。

Hadoop常见家族成员

下面简单的列举几个常见的组件:
  • Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架构。
  • Apache Hive: 是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
  • Apache Pig: 是一个基于Hadoop的大规模数据分析工具,它提供的SQL-LIKE语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。
  • Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
  • Apache Sqoop: 是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  • Apache Zookeeper: 是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高性能的分布式服务
  • Apache Mahout:是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用MapReduce实现了部分数据挖掘算法,解决了并行挖掘的问题。
  • Apache Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身
  • Apache Avro: 是一个数据序列化系统,设计用于支持数据密集型,大批量数据交换的应用。Avro是新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制
  • Apache Ambari: 是一种基于Web的工具,支持Hadoop集群的供应、管理和监控。
  • Apache Chukwa: 是一个开源的用于监控大型分布式系统的数据收集系统,它可以将各种各样类型的数据收集成适合 Hadoop 处理的文件保存在 HDFS 中供 Hadoop 进行各种 MapReduce 操作。
  • Apache Hama: 是一个基于HDFS的BSP(Bulk Synchronous Parallel)并行计算框架, Hama可用于包括图、矩阵和网络算法在内的大规模、大数据计算。
  • Apache Flume: 是一个分布的、可靠的、高可用的海量日志聚合的系统,可用于日志数据收集,日志数据处理,日志数据传输。
  • Apache Giraph: 是一个可伸缩的分布式迭代图处理系统, 基于Hadoop平台,灵感来自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。
  • Apache Oozie: 是一个工作流引擎服务器, 用于管理和协调运行在Hadoop平台上(HDFS、Pig和MapReduce)的任务。
  • Apache Crunch: 是基于Google的FlumeJava库编写的Java库,用于创建MapReduce程序。与Hive,Pig类似,Crunch提供了用于实现如连接数据、执行聚合和排序记录等常见任务的模式库
  • Apache Whirr: 是一套运行于云服务的类库(包括Hadoop),可提供高度的互补性。Whirr学支持Amazon EC2和Rackspace的服务。
  • Apache Bigtop: 是一个对Hadoop及其周边生态进行打包,分发和测试的工具。
  • Apache HCatalog: 是基于Hadoop的数据表和存储管理,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图。
  • Cloudera Hue: 是一个基于WEB的监控和管理系统,实现对HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。

Ambari介绍

Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目。目前最新的发布版本是 2.6.0。Ambari 是用来创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。

     Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含:
  • 通过一步一步的安装向导简化了集群供应。
  • 预先配置好关键的运维指标(metrics),可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。
  • 支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。
  • 通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。
  • 用户界面非常直观,用户可以轻松有效地查看信息并控制集群。

使用Ambari部署Hadoop集群

在使用Ambari安装部署Hadoop时,需要对下载镜像源,配置本地环境。

配置说明

[root@node-1 html]# tar xf ambari-2.6.1.0-centos7.tar.gz
[root@node-1 html]# tar xf HDP-2.6.4.0-centos7-rpm.tar.gz
[root@node-1 html]# tar xf HDP-GPL-2.6.4.0-centos7-rpm.tar.gz
[root@node-1 html]# mkdir HDP-UTILS
[root@node-1 html]# tar xf HDP-UTILS-1.1.0.22-centos7.tar.gz -C HDP-UTILS/

  4、配置基础源,创建hadoop的repo文件,修改repo文件源路径:    

# ambari 源
vim /etc/yum.repo.d/ambari.repo

[url=]
name=ambari Version - ambari-2.6.1.0
baseurl=http://192.168.10.11/ambari/centos7/2.6.1.0-143
gpgcheck=1
gpgkey=http://192.168.10.11/ambari/centos7/2.6.1.0-143/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

# HDP源:

vim /etc/yum.repo.d/hdp.repo

#VERSION_NUMBER=2.6.4.0-91
[HDP-2.6.4.0]
name=HDP Version - HDP-2.6.4.0
baseurl=http://192.168.10.11/HDP/centos7/2.6.4.0-91
gpgcheck=1
gpgkey=http://192.168.10.11/HDP/centos7/2.6.4.0-91/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://192.168.10.11/HDP-UTILS/
gpgcheck=1
gpgkey=http://192.168.10.11/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

[HDP-GPL-2.6.4.0]
name=HDP-GPL Version - HDP-GPL-2.6.4.0
baseurl=http://192.168.10.11/HDP-GPL/centos7/2.6.4.0-91
gpgcheck=1
gpgkey=http://192.168.10.11/HDP-GPL/centos7/2.6.4.0-91/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

  启动httpd。
5、将本地源的repo配置拷贝到其它节点,并创建缓存:    

[root@node-1 ~]# scp /etc/yum.repos.d/ambari.repo 192.168.10.12:/etc/yum.repos.d/
[root@node-1 ~]# scp /etc/yum.repos.d/ambari.repo 192.168.10.13:/etc/yum.repos.d/
[root@node-1 ~]# scp /etc/yum.repos.d/hdp.repo 192.168.10.12:/etc/yum.repos.d/
[root@node-1 ~]# scp /etc/yum.repos.d/hdp.repo 192.168.10.13:/etc/yum.repos.d/

  在各个节点创建缓存:    

# yum clean all
# yum makecache fast

初始化环境

1、各个节点安装java-1.8.0-openjdk:    

  yum install java-1.8.0-openjdk -y

  2、解析主机名:    

  echo "192.168.10.11 node-1" >> /etc/hosts
echo "192.168.10.12 node-2" >> /etc/hosts
echo "192.168.10.13 node-3" >> /etc/hosts

  3、创建主机信任关系,主要是master节点到slave节点:    

  [root@node-1 ~]# ssh-keygen -t rsa
[root@node-1 ~]# cp id_rsa.pub /root/.ssh/authorized_keys
[root@node-1 ~]# scp id_rsa.pub 192.168.10.12:/root/.ssh/authorized_keys
[root@node-1 ~]# scp id_rsa.pub 192.168.10.13:/root/.ssh/authorized_keys

  4、安装配置数据库:    

yum install mariadb-server -y
systemctl start mariadb
mysql_secure_installation

# 创建数据库:

MariaDB [(none)]> create database ambari default character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on ambari.* to ambari@localhost identified by 'bigdata';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on ambari.* to ambari@'%' identified by 'bigdata';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> create database hive default character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on hive.* to hive@localhost identified by 'hive';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all on hive.* to hive@'%' identified by 'hive';

安装Amabri服务

1、在node-1上安装ambari-server,并启动配置向导:    

[root@node-1 ~]# yum install ambari-server -y
[root@node-1 ~]# ambari-server setup

  提示: 如果安装配置用户时,出现如下报错:
ERROR: Unexpected error 'getpwuid(): uid not found: 1001',可以查看ambari.repo文件的权限,修改为默认的root 644权限即可。
2、按照配置向导信息,配置用户,java_home:    

  [root@node-1 ~]# ambari-server setup
Using python  /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):ambari  
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3
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/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre  # 填写java_home
Validating JDK on Ambari Server...done.
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n
Completing setup...
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
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):
Configuring ambari database...
WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java and set property "server.jdbc.driver.path=" in ambari.properties.
Press <enter> to continue.

  3、到上面一步时,根据提示上传mysql的 jdbc驱动,并修改配置文件,指定jdbc驱动文件位置:    

[root@node-1 ~]# cd /usr/share/java
[root@node-1 java]# ll
total 3388
-rw-r--r-- 1 root root 3467861 Jan 22 16:16 mysql-connector-java-5.1.45.tar.gz
[root@node-1 java]# tar xf mysql-connector-java-5.1.45.tar.gz
[root@node-1 java]# mv mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar ./

  修改配置文件:    

  vim /etc/ambari-server/conf/ambari.properties

server.jdbc.driver.path=/usr/share/java/mysql-connector-java-5.1.45-bin.jar

  配置完成后继续,会出现如下提示:    

Press <enter> to continue.
Configuring remote database connection properties...
WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)?

  4、出现上述提示时,根据信息导入数据库:    

[root@node-1 ~]# mysql -uroot -p ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

  5、启动服务:    

[root@node-1 ~]# ambari-server start

  6、服务启动成功后,会监听8080端口,使用浏览器登录,账号密码admin/admin正常登录,则安装完成。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

创建集群

使用ambari的web界面课完成对集群的所有管理操作,创建一个实例集群。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     选择本地源,移除不必要的版本:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     添加主机节点,上传id_rsa文件:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     安装成功后,会显示如下界面:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     选择需要安装的服务:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     根据需要选择服务配置:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     在后续的配置中,会提示配置账户密码,数据库等信息,根据提示配置即可。

     点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

     参考文档:

     https://baike.baidu.com/item/Ambari
https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin
http://blog.fens.me/hadoop-family-roadmap/



----------------------------
原文链接:https://blog.51cto.com/tryingstuff/2066561

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-03-12 13:46:55 重新编辑]
  Java面向对象编程-->图形用户界面(上)
  JavaWeb开发-->Servlet技术详解(Ⅰ)
  JSP与Hibernate开发-->Java对象持久化技术概述
  Java网络编程-->Java反射机制
  精通Spring-->Vue指令
  Vue3开发-->创建综合购物网站应用
  30岁女IT工程师感叹:靠这工具,把报表做成养老工作,月薪快...
  Spark批量读取Redis数据-Pipeline(Scala)
  spark读取redis,连接池配置的范例代码
  MapReduce实现自定义排序功能
  Nginx+Keepalived高可用集群
  基于Spark MLlib平台的协同过滤算法---电影推荐系统
  Java处理大数据小技巧总结
  Hadoop入门——初识Hadoop
  Hive 企业级调优
  大数据到底有多大
  大数据的学习方向
  云计算和大数据到底有什么关系
  Hadoop起源及其四大特性详解
  Hadoop中文版使用文档
  Hadoop生态系统介绍
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。