Hue
Hue简介
本文以网站日志分析来介绍可Web访问的Hue服务。开发者可以在Web界面中通过SQL语句就能分析海量日志,大大降低了使用门槛。
Hue为Hadoop数据分析提供了图形界面系统,仅使用浏览器便能够在Hadoop平台上导入数据、处理数据以及分析数据。
Hue 3.10.0使用
创建集群
- 准备数据,请参考数据准备。
- 准备百度智能云环境。
-
登录控制台,选择“产品服务->MapReduce BMR”,点击“创建集群”,进入集群创建页,并做如下配置:
- 选择集群类型【hadoop】
- 选择集群版本“BMR 1.2.0(hadoop 2.7.1)”
- 在可选服务中选择需要的服务,如spark(2.1.0)/hive(1.2.0)/hue(3.10.0)/tez(0.7.0)
- 打开日志开关
- 设置集群名称
- 设置管理员密码
- 点击下一步,选择对于的实例,支付即可。
- 请保持集群的其他默认配置不变,点击“提交订单”。支付订单后,可在集群列表页可查看已创建的集群,当集群状态由“启动中”变为“运行中”时,集群创建成功。
登录Hue Web界面
- 登录控制台,选择“产品服务->MapReduce BMR”,点击已创建的集群,进入该集群详情页。
- 在“相关应用”栏中点击“Hue Web UI”。
- 在弹出的认证页面中输入创建集群时设置的用户名和密码,并点击“登录”。
- 创建您登录Hue服务的用户名和密码,输入后点击“Create Account”后进入Hue Web界面。
建表
-
在分析之前,首先需要根据网站日志建立一张Hive表。在Hue菜单栏中选择“Query Editors>Hive”,并输入以下SQL语句:
SQL1DROP TABLE IF EXISTS access_logs; 2CREATE EXTERNAL TABLE access_logs( 3 remote_addr STRING comment 'client IP', 4 time_local STRING comment 'access time', 5request STRING comment 'request URL', 6status STRING comment 'HTTP status', 7body_bytes_sent STRING comment 'size of response body', 8http_referer STRING comment 'referer', 9http_cookie STRING comment 'cookies', 10remote_user STRING comment 'client name', 11http_user_agent STRING comment 'client browser info', 12request_time STRING comment 'consumed time of handling request', 13host STRING comment 'server host', 14msec STRING comment 'consumed time of writing logs' 15) 16COMMENT 'web access logs' 17ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' 18WITH SERDEPROPERTIES ( 19"input.regex" = "([0-9\\.]+) - \\[([^\\]]+)\\] \"([^\"]*)\" ([\\d]+) ([\\d]*) \"([^\"]*)\" \"([^\"]*)\" ([\\S]+) \"([^\"]*)\" ([0-9\\.]+) ([\\S]+) ([0-9\\.]+)" 20) 21STORED AS TEXTFILE 22LOCATION "bos://datamart-bj/web-log-10k";
- 输入语句后点击执行按钮,Hive会重建access_logs表,然后通过正则表达式来解析日志文件。
- 成功创建access_logs表之后,点击左侧“Table”栏中的刷新按钮,找到access_logs表并预览示例数据:
查询
定了表之后,便可以进行查询了。
- 若统计网页请求的结果,可使用以下语句:
1SELECT status, count(1) FROM access_logs GROUP BY status
查询结果可切换到图表页,还可以以饼图的形式可视化数据,如下图所示:
- 若想了解网页访问量最大的时段,可使用下面的语句:
1 SELECT hour(from_unixtime(unix_timestamp(time_local, 'dd/MMMM/yyyy:HH:mm:ss Z'))) as hour, count(1) as pv
2 FROM access_logs
3 GROUP BY hour(from_unixtime(unix_timestamp(time_local, 'dd/MMMM/yyyy:HH:mm:ss Z')))
查询结果可切换到图表页,或以柱状图来更直观的查看结果:
在百度智能云,不仅可通过Hue使用Hive,还可通过Hue轻松制作地图的可视化效果,如下图所示,根据日志信息生成用户地图。欲了解详情,请联系[email protected]。
Hue 4.8.0使用
创建集群
- 准备数据,请参考数据准备。
- 准备百度智能云环境。
-
登录控制台,选择“产品服务->MapReduce BMR”,点击“创建集群”,进入集群创建页,并做如下配置:
- 选择集群类型【hadoop】
- 选择集群版本“BMR 2.3.0(hadoop 3.1.1)”
- 在可选服务中选择需要的服务,如spark(2.4.4)/hive(3.1.0)/hue(4.8.0)/tez(0.9.1)
- 打开日志开关,填写对应的存放日志的BOS bucket
- 设置集群名称
- 设置管理员密码
- 点击下一步,选择对于的实例,支付即可。
- 请保持集群的其他默认配置不变,点击“提交订单”。支付订单后,可在集群列表页可查看已创建的集群,当集群状态由“启动中”变为“运行中”时,集群创建成功。
登录Hue Web界面
- 登录控制台,选择“产品服务->MapReduce BMR”,点击已创建的集群,进入该集群详情页。
- 在“相关应用和工具”栏中可以查看“Hue Web UI”。
Hue4.8.0默认不可点击,需要在给对应的master实例绑定EIP后并且开通对应的端口后才可以访问。 具体需要绑定EIP的实例ID可以将鼠标指针上浮在Hue Web UI 叹号处查看。绑定EIP见绑定EIP。若无EIP,请先于产品【网络——弹性公网IP EIP】创建EIP。详见:创建EIP实例。
3.给BMR安全组添加8888端口访问规则。 在给对应的节点绑定eip后,在集群详情-网络处可以查看对应BMR安全组ID。
复制对应的BMR安全组ID,进入VPC-安全组中,找到对应的BMR安全组。
点击添加规则,选择HTTP,规则类型为IPV4,协议为tcp,端口范围为8888,source建议填写为需要访问BMR集群的IP或者IP段,不建议为all,本示例为方便演示选择all(0.0.0.0/0)。

添加完成后如下图所示:
- 完成上述工作后,在BMR集群详情页面中点击Hue Web UI即可访问。创建您登录Hue服务的用户名和密码,输入后点击“Create Account”后进入Hue Web界面。

运维相关
hue 忘记管理员密码怎么办?
重置管理员密码操作如下:
1.登录集群主master节点,使用hue用户(su hue)
2.执行:/opt/bmr/hue/build/env/bin/hue shell
3.依次运行以下命令:
In [1]: from django.contrib.auth.models import User
In [2]: a = User.objects.get(username='用户名')
In [3]: a.is_staff = True
In [4]: a.is_superuser = True
In [5]: a.set_password('xxxxxx')
In [6]: a.save()
In [7]:quit()
重置成功,密码为第五步执行的xxxxxx,用户可以自行从新设置管理员密码。
hue 使用登录 hue 的用户提交作业,新增用户步骤
在hue web 页面左下角进入 Manage Users
点击右上角 Add user,依次按照引导进行即可。
更多使用方式
请参考Hue官方文档。