首页 > 编程知识 正文

大数据应用场景和优势,大数据平台的优势

时间:2023-05-04 11:20:59 阅读:116901 作者:1044

本文系统地说明了Hue作为大数据分析交互平台的优点! 欢迎您的批评指正。

Hue web APP应用程序的体系结构hue是一个web APP应用程序,用于简化用户与Hadoop群集之间的交互。 在Hue技术体系结构中,通常,hue APP应用程序采用B/S体系结构,该web APP应用程序的后台采用的是不以python编程语言编写的,如下图所示。 大致分为三层,分别是前端视图层、Web服务层、Backend服务层。 在Web服务层和Backend服务层之间使用RPC调用。

Hue集成大数据技术堆栈架构由于大数据框架多,一般使用多个框架来解决某些问题,但每个框架都有自己的web UI监控接口,可以支持不同的端口号例如HDFS(50070 )、yarn )、8088 )、MapReduce )、19888 )等。 在这种情况下,有一个统一的web UI界面来管理每个大数据的常用框架是非常有用的。 这将使大数据的开发、监测和运输更加便利。

从上图可以看到,Hue几乎可以支持所有大数据框架,HDFS文件系统对中的页面(调用HDFS API进行添加/删除检查的操作)、HIVE UI接口、HiveServer2 可以进行数据分析查询),YARN监控和Oozie工作流Hue集成了这些大数据技术堆栈,通过统一的Web UI进行访问和管理,大大提高了大数据用户和管理员的工作效率。 这里总结了Hue支持的功能。

缺省情况下,基于轻量级sqlite数据库管理会话数据、用户验证和授权,基于MySQL、Postgresql和Oracle文件浏览器访问HDFSHive编辑器来开发hive查询仪表板(Dashboard )支持基于Impala的APP应用程序,交互式查询支持Spark编辑器和仪表板,脚本任务支持Pig编辑器,文件夹支持可可视化数据、查询数据、修改HBase表的Metastore浏览器,可以访问Hive的元数据。 此外,HCatalog支持作业浏览器,MapReduceJob(Mr1/Mr2-Yarn )支持作业设计器。 MapReduce/Streaming/Java Job支持Sqoop 2编辑器和仪表板支持ZooKeeper浏览器和编辑器支持MySql、PostGresql、Sqlite和Oracle数据库查询编辑器(Hue 2.x or 3.x ) Hue操作数据Hue允许您创建solr集合作为图形界面,将数据导入solr中,并创建数据搜索索引。 提供了将数据从Linux文件系统、HDFS等文件系统导入到Hive的人性化UI页面,在导入时可以将数据转换为相应的Hive表。 导入完成后,可以使用Hive SQL直接查询刚刚导入的数据。 使用[^import-hive]hue将HDFS用作图形界面,包括导入、移动、重命名、删除、复制、修改、下载、排序和查看数据等操作。 由于Hue集成了Sqoop组件,因此可以通过Hue将数据从其他文件系统批量导入Hadoop或从Hadoop导出。 [ ^ 3358 blog.cloud era.com/blog/2013/11/sqooping-data-with-hue/]可以在图形界面中操作HBase,并将数据导入HBase 可以删除[ ^ 3358 blog.cloud era.com/blog/2013/09/how-to-manage-h base-data-via-hue/] hue数据查询分析通过hue 通过使用Hue,用户还可以使用自定义函数,然后在Hue中使用SQL引用执行。

基于Hue的使用Impala的数据分析

与Hive一样,Hue为使用Impala进行数据查询分析提供了类似的图形界面。 形式与Hive相似。 如下图所示。

使用Hue使用Pig进行数据分析

与Hue中的Hive和Impala编辑器一样,Pig功能和表达式可以直接在Hue中进行编辑和运行等操作。 用户可以自定义函数和参数,编辑器自动补充Pig关键字、别名和HDFS路径,还支持语法突出显示,创建脚本后,单击即可提交执行。 用户可以查看执行进度、执行结果和日志。

Hue数据可视化Hue以Web图形界面的可视化格式显示搜索到的数据。 显示格式有表、条形图、折线图、饼图、地图等。 使用这些可视化功能非常简单。 例如,如果您使用Hive SQL查找相关数据并退出,则希望在条形图中显示它们。 只需选中横轴和纵轴字段即可显示所需的条形图。



Hue提供了可视化的HDFS文件系统,使得对HDFS中的数据的操作完全能够通过UI界面完成,包括查看文件中的内容。

类似地,Hue提供了可视化的UI界面操作HBase中的数据。包含了数据展示,各个版本的数据的查看和其他编辑操作的UI界面,提供了展示数据的排序方式等等。

下图表示,编辑HBase数据的可视化界面

Hue提供了用户自定义仪表盘(Dashboard)展示数据的功能。数据的来源是Solr这个搜索引擎。通过拖拽的方式设置仪表盘(也就是数据展示的方式),有文本框、时间表、饼状图、线、地图、HTML等组件。图表支持实时动态更新。设置仪表盘的全部操作都是通过图形界面完成的,对于不同的展示方式,用户可以选择相应的字段,整个过程非常简单方便。保存好刚刚配置好的仪表盘之后,我们可以选择分享给相应权限的用户,拥有不同的权限的用户将看到不同的内容。[^http://gethue.com/hadoop-search-dynamic-search-dashboards-with-solr/]

上图表示表盘设置中的以地图的方式展示国家码。

上图表示:多种展示方式的表盘。

Hue对任务调度的可视化

Hue以可视化的方式向用户展示任务的执行情况,具体包括任务的执行进度、任务的执行状态(正在运行、执行成功、执行失败、被killed),任务的执行时间,还能够显示该任务的标准输出信息、错误日志、系统日志等等信息。还可以查看该任务的元数据、向用户展示了正在运行或者已经结束的任务的详细的执行情况。除此之外,Hue还提供了关键字查找和按照任务执行状态分类查找的功能。


上图表示:任务执行情况和相关信息显示


上图表示:任务的日志显示。

Hue权限控制

Hue在HueServer2中使用了Sentry进行细粒度的、基于角色的权限控制。这里的细粒度是指,Sentry不仅仅可以给某一个用户组或者某一个角色授予权限,还可以为某一个数据库或者一个数据库表授予权限,甚至还可以为某一个角色授予只能执行某一类型的SQL查询的权限。Sentry不仅仅有用户组的概念,还引入了角色(role)的概念,使得企业能够轻松灵活的管理大量用户和数据对象的权限,即使这些用户和数据对象在频繁变化。除此之外,Sentry还是“统一授权”的。具体来讲,就是访问控制规则一旦定义好之后,这些规则就统一作用于多个框架(比如Hive、Impala、Pig)。举一个例子:我们为某一个角色或者用户组授权只能进行Hive查询,我们可以让这个权限不仅仅作用于Hive,还可以是Impala、MapReduce、Pig和HCatalog。

Sentry的优势还体现在它本身对Hadoop生态组件的集成。如下图所示,我们可以使用Sentry为Hadoop中的多个框架进行权限控制。

管理员使用浏览器就能修改相关权限。

Airflow工作流

工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述。

Airflow目前正在Apache孵化器中[^airflow-incubator],但是已经被包括雅虎在内的很多公司使用[^github-airflow]。

这个平台拥有和 Hive、Presto、MySQL、HDFS、Postgres和S3交互的能力,并且提供了钩子使得系统拥有很好的扩展性。

Airflow的优势 动态的:Airflow通过代码(python)来配置管道(pipeline)而不是通过xml配置文件,这使得用户可以编写代码来实例化动态管道。使用代码定义任务(DAG)在执行一个特定的可重复的任务时非常管用。用代码来定义工作流是这个系统最强大之处。这在没有人工干预的情况下自动接入新的数据源的时候非常有用。可伸缩的:可以很容易地编辑、运行和扩展相关的库文件,优雅的:Airflow的管道(pipeline)是精炼直接的,Airflow的核心使用了参数化的脚本,还使用了强大的Jinja模板引擎。可拓展的:Airflow具有模块化结构,使用消息队列来整合任意数量的worker。[^apache-airflow]任务隔离:在一个分布式环境中,宕机是时有发生的。Airflow通过自动重启任务来适应这一变化。到目前为止一切安好。当我们有一系列你想去重置状态的任务时,你就会发现这个功能简直是救世主。为了解决这个问题,我们的策略是建立子DAG。这个子DAG任务将自动重试自己的那一部分,因此,如果你以子DAG设置任务为永不重试,那么凭借子DAG操作你就可以得到整个DAG成败的结果。如果这个重置是DAG的第一个任务设置子DAG的策略就会非常有效,对于有一个相对复杂的依赖关系结构设置子DAG是非常棒的做法。注意到子DAG操作任务不会正确地标记失败任务,除非你从GitHub用了最新版本的Airflow。解决这个问题的另外一个策略是使用重试柄,这样你的重试柄就可以将任务隔离,每次执行某个特定的任务。人性化的:Airflow提供了非常人性化的Web UI,用户可以使用浏览器编辑、查看等操作工作流,提供了人性化的任务监控UI。


上图表示:Airflow的web UI.

Airflow其他有趣的特点

服务级别协议:用户能够通过设置某一个任务或者DAG(在一定时间内)必须要成功执行,如果一个或多个任务在规定时间内没有成功完成,就会有邮件提醒用户。

XCom:XCom使得任务(task)之间能够交换信息,从而实现更微妙的控制和状态共享。

变量:这可以让用户在Airflow中自定义任意key-value形式的变量。用户可以通过web UI或者代码对变量进行增删改查操作。把这些变量当作系统的配置项是非常有用的。[^http://bytepawn.com/airflow.html]

使用Airflow 下载安装Airflow是一件很简单的事情,使用pip就可以了。编写DAG(有向无环图),使用python语言编写。Airflow提供了和Hive、Presto、MySQL、HDFS、Postgres和S3等交互的接口。导入DAG到Airflow中,开始执行。使用Airflow提供的web UI查看BAG执行情况,运行结束之后还可以通过Web UI查看各个任务的执行状况,比如执行时间,便于进一步优化。[^https://www.pandastrike.com/posts/20150914-airflow]

^import-hive

^http://blog.cloudera.com/blog/2013/11/sqooping-data-with-hue/

^http://blog.cloudera.com/blog/2013/09/how-to-manage-hbase-data-via-hue/

^http://bytepawn.com/airflow.html

^https://www.pandastrike.com/posts/20150914-airflow

^http://gethue.com/hadoop-search-dynamic-search-dashboards-with-solr/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。