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语句:
DROP TABLE IF EXISTS access_logs; CREATE EXTERNAL TABLE access_logs( remote_addr STRING comment 'client IP', time_local STRING comment 'access time', request STRING comment 'request URL', status STRING comment 'HTTP status', body_bytes_sent STRING comment 'size of response body', http_referer STRING comment 'referer', http_cookie STRING comment 'cookies', remote_user STRING comment 'client name', http_user_agent STRING comment 'client browser info', request_time STRING comment 'consumed time of handling request', host STRING comment 'server host', msec STRING comment 'consumed time of writing logs' ) COMMENT 'web access logs' ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "([0-9\\.]+) - \\[([^\\]]+)\\] \"([^\"]*)\" ([\\d]+) ([\\d]*) \"([^\"]*)\" \"([^\"]*)\" ([\\S]+) \"([^\"]*)\" ([0-9\\.]+) ([\\S]+) ([0-9\\.]+)" ) STORED AS TEXTFILE LOCATION "bos://datamart-bj/web-log-10k";
- 输入语句后点击执行按钮,Hive会重建access_logs表,然后通过正则表达式来解析日志文件。
- 成功创建access_logs表之后,点击左侧“Table”栏中的刷新按钮,找到access_logs表并预览示例数据:
查询
定了表之后,便可以进行查询了。
- 若统计网页请求的结果,可使用以下语句:
SELECT status, count(1) FROM access_logs GROUP BY status
查询结果可切换到图表页,还可以以饼图的形式可视化数据,如下图所示:
- 若想了解网页访问量最大的时段,可使用下面的语句:
SELECT hour(from_unixtime(unix_timestamp(time_local, 'dd/MMMM/yyyy:HH:mm:ss Z'))) as hour, count(1) as pv
FROM access_logs
GROUP BY hour(from_unixtime(unix_timestamp(time_local, 'dd/MMMM/yyyy:HH:mm:ss Z')))
查询结果可切换到图表页,或以柱状图来更直观的查看结果:
在百度智能云,不仅可通过Hue使用Hive,还可通过Hue轻松制作地图的可视化效果,如下图所示,根据日志信息生成用户地图。欲了解详情,请联系bce@baidu.com。
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官方文档。