Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行Ma
Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等。很早以前就听说过Hue的便利与强大,一直没能亲自尝试使用,下面先通过官网给出的特性,通过翻译原文简单了解一下Hue所支持的功能特性集合:
- 默认基于轻量级sqlite数据库管理会话数据,用户认证和授权,可以自定义为MySQL、Postgresql,以及Oracle
- 基于文件浏览器(File Browser)访问HDFS
- 基于Hive编辑器来开发和运行Hive查询
- 支持基于Solr进行搜索的应用,并提供可视化的数据视图,以及仪表板(Dashboard)
- 支持基于Impala的应用进行交互式查询
- 支持Spark编辑器和仪表板(Dashboard)
- 支持Pig编辑器,并能够提交脚本任务
- 支持Oozie编辑器,可以通过仪表板提交和监控Workflow、Coordinator和Bundle
- 支持HBase浏览器,能够可视化数据、查询数据、修改HBase表
- 支持Metastore浏览器,可以访问Hive的元数据,以及HCatalog
- 支持Job浏览器,能够访问MapReduce Job(MR1/MR2-YARN)
- 支持Job设计器,能够创建MapReduce/Streaming/Java Job
- 支持Sqoop 2编辑器和仪表板(Dashboard)
- 支持ZooKeeper浏览器和编辑器
- 支持MySql、PostGresql、Sqlite和Oracle数据库查询编辑器
下面,我们通过实际安装来验证Hue的一些功能。
环境准备
这里,我所基于的基本环境及其配置情况,如下所示:
- CentOS-6.6 (Final)
- JDK-1.7.0_25
- Maven-3.2.1
- Git-1.7.1
- Hue-3.7.0(branch-3.7.1)
- Hadoop-2.2.0
- Hive-0.14
- Python-2.6.6
基于上面的软件工具,要保证正确安装和配置。需要说明的是,我们通过Hue来执行Hive查询,需要启动HiveServer2服务:
cd /usr/local/hive bin/hiveserver2 &
否则通过Hue Web控制无法执行Hive查询。
安装配置
我新建了一个hadoop用户,以hadoop用户,首先使用yum工具来安装Hue相关的依赖软件:
sudo yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel
然后,执行如下命令进行Hue软件包的下载构建:
cd /usr/local/ sudo git clone https://github.com/cloudera/hue.git branch-3.7.1 sudo chown -R hadoop:hadoop branch-3.7.1/ cd branch-3.7.1/ make apps
上述过程如果没有任何问题,我们就已经安装好Hue。Hue的配置文件为/usr/local/branch-3.7.1/desktop/conf/pseudo-distributed.ini,默认的配置文件不能正常运行Hue,所以需要修改其中的内容,与我们对应的Hadoop集群配置相对应。该配置文件根据整合不同的软件,将配置分成多个段,每个段下面还有子段,便于管理配置,如下所示(省略子段名称):
- desktop
- libsaml
- libopenid
- liboauth
- librdbms
- hadoop
- filebrowser
- liboozie
- oozie
- beeswax
- impala
- pig
- sqoop
- proxy
- hbase
- search
- indexer
- jobsub
- jobbrowser
- zookeeper
- spark
- useradmin
- libsentry
我们很容易根据需要来配置自己需要的内容。我们修改配置文件的情况,如下表所示:
Hue配置段 | Hue配置项 | Hue配置值 | 说明 |
desktop | default_hdfs_superuser | hadoop | HDFS管理用户 |
desktop | http_host | 10.10.4.125 | Hue Web Server所在主机/IP |
desktop | http_port | 8000 | Hue Web Server服务端口 |
desktop | server_user | hadoop | 运行Hue Web Server的进程用户 |
desktop | server_group | hadoop | 运行Hue Web Server的进程用户组 |
desktop | default_user | yanjun | Hue管理员 |
hadoop/hdfs_clusters | fs_defaultfs | hdfs://hadoop6:8020 | 对应core-site.xml配置项fs.defaultFS |
hadoop/hdfs_clusters | hadoop_conf_dir | /usr/local/hadoop/etc/hadoop | Hadoop配置文件目录 |
hadoop/yarn_clusters | resourcemanager_host | hadoop6 | 对应yarn-site.xml配置项yarn.resourcemanager.hostname |
hadoop/yarn_clusters | resourcemanager_port | 8032 | ResourceManager服务端口号 |
hadoop/yarn_clusters | resourcemanager_api_url | http://hadoop6:8088 | 对应于yarn-site.xml配置项yarn.resourcemanager.webapp.address |
hadoop/yarn_clusters | proxy_api_url | http://hadoop6:8888 | 对应yarn-site.xml配置项yarn.web-proxy.address |
hadoop/yarn_clusters | history_server_api_url | http://hadoo6:19888 | 对应mapred-site.xml配置项mapreduce.jobhistory.webapp.address |
beeswax | hive_server_host | 10.10.4.125 | Hive所在节点主机名/IP |
beeswax | hive_server_port | 10000 | HiveServer2服务端口号 |
beeswax | hive_conf_dir | /usr/local/hive/conf | Hive配置文件目录 |
上面主要配置了Hadoop集群相关的内容,以及Hive(beeswax段配置的是Hive,通过HIveServer2与Hive交互)。
最后,启动Hue服务,执行如下命令:
cd /usr/local/branch-3.7.1/ build/env/bin/supervisor &
Hue功能验证
我们主要通过在Hue Web控制台上执行Hive查询,所以需要准备Hive相关的表和数据。
- Hive准备
我们首先在Hive中创建一个数据库(如果没有权限则授权):
GRANT ALL TO USER hadoop; CREATE DATABASE user_db;
这里,hadoop用户是Hive的管理用户,可以将全部权限赋给该用户。
创建示例表,建表DDL如下所示:
CREATE TABLE user_db.daily_user_info ( device_type int, version string, channel string, udid string) PARTITIONED BY ( stat_date string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
准备的数据文件格式,示例如下所示:
0 3.2.1 C-gbnpk b01b8178b86cebb9fddc035bb238876d 0 3.0.7 A-wanglouko e2b7a3d8713d51c0215c3a4affacbc95 0 1.2.7 H-follower 766e7b2d2eedba2996498605fa03ed33 0 1.2.7 A-shiry d2924e24d9dbc887c3bea5a1682204d9 0 1.5.1 Z-wammer f880af48ba2567de0f3f9a6bb70fa962 0 1.2.7 H-clouda aa051d9e2accbae74004d761ec747110 0 2.2.13 H-clouda 02a32fd61c60dd2c5d9ed8a826c53be4 0 2.5.9 B-ywsy 04cc447ad65dcea5a131d5a993268edf
各个字段之间使用TAB分隔,每个字段含义与上面表user_db.daily_user_info的字段对应,然后我们将测试数据加载到示例表的各个分区之中:
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-05.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-05'); LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-06.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-06'); LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-07.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-07'); LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-08.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-08'); LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-09.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-09'); LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-10.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-10'); LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-11.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-11');
可以通过Hive CLI接口登录,查看表中数据:
SELECT COUNT(1) FROM daily_user_info;
我这里有241709545条记录作为测试数据。
- Hue登录页面
Hue服务启动成功后,可以直接通过浏览器打开连接http://10.10.4.125:8000/,就可以登录。第一次打开,需要输入默认用户和口令,然后就可以登录进去,如下图所示:
首次登录,选择使用的用户即为Hue管理员用户,权限很大,可以添加用户并管理用户及其用户组的操作权限。
- Hue用户首页
登录成功以后,进入Hue Web控制台首页,如下图所示:
登录成功后,首先会执行一些基本环境的配置检查工作,它与我们实际修改配置时都指定了哪些应用有关系。
- Hive查询编辑器页面
用户登录成功后,选择Query Editors下面的Hive菜单项,如图所示:
在提交查询的时候,由于该查询执行时间较长,可以等待查询执行,最后结果显示在的现房的Results标签页上,也可以在执行过程中查看Hive后台执行情况。
- Job浏览器页面
通过Job浏览器(Job Browser)页面http://10.10.4.125:8000/jobbrowser/,可以查看运行在Hadoop集群上各种状态的Job,包括Succeeded、Running、Failed、Killed这4种状态,如图所示:
如果想要看到Job具体执行状态信息,需要正确配置并启动Hadoop集群的JobHistoryServer和WebAppProxyServer服务,可以通过Web页面看到相关数据,我们的示例,如图所示:
如果想看某个Job对应的MapTask或者ReduceTask执行情况,可以点击对应链接进去,和通过Hadoop YARN的Job Web管理界面类似,监控起来非常方便。
- 用户管理和授权认证
以授权管理员用户登录成功后,可以通过点击右上角用户(我这里是yanjun),下拉列表中有“Manage Users”菜单项,在这里面可以创建新用户,并指定访问权限,如下图所示:
上面,我创建了几个用户,并指定用户所属的组(Groups,支持组管理)。实际上,我们可以将不同的Hue应用设置为不同的组,然后将新建的用户分配到该相关组,通过这种方式可以控制用户访问Hue应用的权限。上面创建并分配权限的用户可以通过设置的用户名和口令登录Hue Web管理系统,与各种Hadoop相关的应用(不仅仅限于此,如MySQL、Spark等)进行交互。
总结
通过上面的了解,以及安装配置过程所遇到的问题,做一个总结:
- 如果基于CentOS环境安装配置Hue,可能相对复杂一点,不一定能够很容易的配置成功。我开始基于CentOS-5.11(Final)进行配置,没有配置成功,可能是使用的Hue的版本太高(branch-3.0和branch-3.7.1我都试过),或者可能是CentOS依赖的一些软件包无法安装等问题导致的。建议最好使用较新版本的CentOS,我这里使用的是CentOS-6.6 (Final),Hue使用的branch-3.7.1源码编译,并且Python版本需要2.6+。
- 使用Hue,我们可能会对用户管理及其权限分配也很感兴趣,所以数据存储,可以根据需要使用我们熟悉的其他关系数据库,如MySQL等,并做好备份,以防使用Hue应用的相关用户数据丢失,造成无法访问Hadoop集群等问题。需要修改Hue的配置文件,将默认存储方式sqlite3改成我们熟悉的关系数据库,目前支持MySQL、Postgresql,以及Oracle。
- 如果有必要,可能结合Hadoop集群底层的访问控制机制,如Kerberos,或者Hadoop SLA,配合Hue的用户管理和授权认证功能,更好地进行访问权限的约束和控制。
- 根据前面我们提到的Hue特性,我们可以根据自己实际的应用场景,来选择不同的Hue应用,通过这种插件式的配置来启动应用,通过Hue与其交互,如Oozie、Pig、Spark、HBase等等。
- 使用更低版本的Hive,如0.12,可能在验证过程中会遇到问题,可以根据Hive的版本来选择兼容版本的Hue来安装配置。
- 由于本次安装配置实践,并没有使用Cloudera发行的CDH软件包,如果使用CDH可能会更加顺利一些。
参考链接
- https://github.com/cloudera/hue
- https://github.com/cloudera/hue/wiki
- http://cloudera.github.io/hue/docs-3.5.0/manual.html
- http://cloudera.github.io/hue/docs-3.5.0/sdk/sdk.html
原文地址:Hue安装配置实践, 感谢原作者分享。

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL是一个开源的关系型数据库管理系统,适用于数据存储、管理、查询和安全。1.它支持多种操作系统,广泛应用于Web应用等领域。2.通过客户端-服务器架构和不同存储引擎,MySQL高效处理数据。3.基本用法包括创建数据库和表,插入、查询和更新数据。4.高级用法涉及复杂查询和存储过程。5.常见错误可通过EXPLAIN语句调试。6.性能优化包括合理使用索引和优化查询语句。

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

InnoDB的锁机制包括共享锁、排他锁、意向锁、记录锁、间隙锁和下一个键锁。1.共享锁允许事务读取数据而不阻止其他事务读取。2.排他锁阻止其他事务读取和修改数据。3.意向锁优化锁效率。4.记录锁锁定索引记录。5.间隙锁锁定索引记录间隙。6.下一个键锁是记录锁和间隙锁的组合,确保数据一致性。

MySQL查询性能不佳的原因主要包括没有使用索引、查询优化器选择错误的执行计划、表设计不合理、数据量过大和锁竞争。 1.没有索引导致查询缓慢,添加索引后可显着提升性能。 2.使用EXPLAIN命令可以分析查询计划,找出优化器错误。 3.重构表结构和优化JOIN条件可改善表设计问题。 4.数据量大时,采用分区和分表策略。 5.高并发环境下,优化事务和锁策略可减少锁竞争。

在数据库优化中,应根据查询需求选择索引策略:1.当查询涉及多个列且条件顺序固定时,使用复合索引;2.当查询涉及多个列但条件顺序不固定时,使用多个单列索引。复合索引适用于优化多列查询,单列索引则适合单列查询。

要优化MySQL慢查询,需使用slowquerylog和performance_schema:1.启用slowquerylog并设置阈值,记录慢查询;2.利用performance_schema分析查询执行细节,找出性能瓶颈并优化。

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版
SublimeText3 Linux最新版

记事本++7.3.1
好用且免费的代码编辑器