Hue Web应用的架构
Hue 是一个Web应用,用来简化用户和Hadoop集群的交互。Hue技术架构,如下图所示,从总体上来讲,Hue应用采用的是B/S架构,该web应用的后台采用python编程语言别写的。大体上可以分为三层,分别是前端view层、Web服务层和Backend服务层。Web服务层和Backend服务层之间使用RPC的方式调用。
由于大数据框架很多,为了解决某个问题,一般来说会用到多个框架,但是每个框架又都有自己的web UI监控界面,对应着不同的端口号。比如HDFS(50070)、YARN(8088)、MapReduce(19888)等。这个时候有一个统一的web UI界面去管理各个大数据常用框架是非常方便的。这就使得对大数据的开发、监控和运维更加的方便。
2
从上图可以看出,Hue几乎可以支持所有大数据框架,包含有HDFS文件系统对的页面(调用HDFS API,进行增删改查的操作),有HIVE UI界面(使用HiveServer2,JDBC方式连接,可以在页面上编写HQL语句,进行数据分析查询),YARN监控及Oozie工作流任务调度页面等等。Hue通过把这些大数据技术栈整合在一起,通过统一的Web UI来访问和管理,极大地提高了大数据用户和管理员的工作效率。这里总结一下Hue支持哪些功能:
Hue操作数据
Hue数据查询分析
通过Hue使用Hive进行数据分析
通过Hue使用Impala进行数据分析
使用Hue使用Pig进行数据分析
Hue以可视化的方式向用户展示任务的执行情况,具体包括任务的执行进度、任务的执行状态(正在运行、执行成功、执行失败、被killed),任务的执行时间,还能够显示该任务的标准输出信息、错误日志、系统日志等等信息。还可以查看该任务的元数据、向用户展示了正在运行或者已经结束的任务的详细的执行情况。除此之外,Hue还提供了关键字查找和按照任务执行状态分类查找的功能。
上图表示:任务执行情况和相关信息显示
Hue在HueServer2中使用了Sentry进行细粒度的、基于角色的权限控制。这里的细粒度是指,Sentry不仅仅可以给某一个用户组或者某一个角色授予权限,还可以为某一个数据库或者一个数据库表授予权限,甚至还可以为某一个角色授予只能执行某一类型的SQL查询的权限。Sentry不仅仅有用户组的概念,还引入了角色(role)的概念,使得企业能够轻松灵活的管理大量用户和数据对象的权限,即使这些用户和数据对象在频繁变化。除此之外,Sentry还是“统一授权”的。具体来讲,就是访问控制规则一旦定义好之后,这些规则就统一作用于多个框架(比如Hive、Impala、Pig)。举一个例子:我们为某一个角色或者用户组授权只能进行Hive查询,我们可以让这个权限不仅仅作用于Hive,还可以是Impala、MapReduce、Pig和HCatalog。
Sentry的优势还体现在它本身对Hadoop生态组件的集成。如下图所示,我们可以使用Sentry为Hadoop中的多个框架进行权限控制。
img
工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述。
Airflow目前正在Apache孵化器中[^airflow-incubator],但是已经被包括雅虎在内的很多公司使用[^github-airflow]。
服务级别协议:用户能够通过设置某一个任务或者DAG(在一定时间内)必须要成功执行,如果一个或多个任务在规定时间内没有成功完成,就会有邮件提醒用户。
XCom:XCom使得任务(task)之间能够交换信息,从而实现更微妙的控制和状态共享。
变量:这可以让用户在Airflow中自定义任意key-value形式的变量。用户可以通过web UI或者代码对变量进行增删改查操作。把这些变量当作系统的配置项是非常有用的。[^http://bytepawn.com/airflow.html]
使用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/-airflow
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212584.html原文链接:https://javaforall.net
