Hadoop 和 BI 如何结合?搭建一个基于 Hadoop+Hive 的数据仓库,它的前端展现如何实现?如何实现 BI?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop 和 BI 如何结合?搭建一个基于 Hadoop+Hive 的数据仓库,它的前端展现如何实现?如何实现 BI?相关的知识,希望对你有一定的参考价值。
刚好不久前做过一个,使用hadoop+hive+elasticsearch给公司做的BI。
过程是这样的:
数据由产生端向数据收集服务器发送请求,json文本形式存在收集服务器磁盘上。
定时任务,通过MR Job将数据清洗整理修复分类,云端持久化,之后的数据作为BI的基础数据存入hive。
定时任务,每天跑hive sql(写了一个动态渲染sql语句的引擎),更新累积表,并分析出具体各个指标的分析结果,存入elasticsearch。
前端用的highcharts,jquery请求后端,传入一些范围限制条件,后端拿到限制条件组出查询语句,从ES中取出符合的结果,返给前端。
前端展现,即是分类的指标,筛选条件,指标内有图表和详细数据,以及多条件多指标横纵对比,导出等等。
据我所知,很多银行已经开始评估将data warehouse迁移到Hadoop相关产品上来了,倒不是为了利用Hadoop的低成本优势做传统BI,而是看中大数据平台上的各种成熟的machine learning,data mining,大数据对传统行业的改造和洗牌刚刚开始。
至于传统BI工具如何结合Hive,接口上问题不大,JDBC,ODBC都可以,自己写thrift client也问题不大,麻烦在于,目前Hive(以及Impala,Shark)这些支持的都不是标准SQL,历史遗留下来的那些动辄几页的SQL根本没法在Hive上执行。 参考技术C 搜索easyhadoop
如何搭建基于Hadoop的大数据平台
Hadoop: 一个开源的分布式存储、分布式计算平台.(基于Apache)Hadoop的组成:
HDFS:分布式文件系统,存储海量的数据。
MapReduce:并行处理框架,实现任务分解和调度。
Hadoop的用处:
搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
比如搜索引擎、网页的数据处理,各种商业智能、风险评估、预警,还有一些日志的分析、数据挖掘的任务。
Hadoop优势:高扩展、低成本、成熟的生态圈(Hadoop Ecosystem Map)
Hadoop开源工具:
Hive:将SQL语句转换成一个hadoop任务去执行,降低了使用Hadoop的门槛。
HBase:存储结构化数据的分布式数据库,habase提供数据的随机读写和实时访问,实现 对表数据的读写功能。
zookeeper:就像动物管理员一样,监控hadoop集群里面每个节点的状态,管理整个集群 的配置,维护节点针之间数据的一次性等等。
hadoop的版本尽量选稳定版本,即较老版本。
===============================================
Hadoop的安装与配置:
1)在Linux中安装JDK,并设置环境变量
安装jdk: >> sudo apt-get install openjdk-7-jdk
设置环境变量:
>> vim /etc/profile
>> :wq
2)下载Hadoop,并设置Hadoop环境变量
下载hadoop解压缩:
>> cd /opt/hadoop-1.2.1/
>> ls
>> vim /etc/profile
>>:wq
3)修改4个配置文件
(a)修改hadoop-env.sh,设置JAVA_HOME
(b)修改core-site.xml,设置hadoop.tmp.dir, dfs.name.dir, fs.default.name
(c)修改mapred-site.xml, 设置mapred.job.tracker
(d)修改hdfs-site.xml,设置dfs.data.dir
>> cd conf
>> ls
>> vim mapred-site.xml
>> :wq
>> vim core-site.xml
第一部分
第二部分
>> :wq
>> vim hdfs-site.xml
>> :wq
>> vim hadoop-env.sh
>> :wq
# hadoop格式化
>> hadoop namenode -format
# hadoop启动
>> start-all.sh
# 通过jps命令查看当前运行进程
>> jps
看见以下进程即说明hadoop安装成功 参考技术A Hadoop中有很多方法可以加入多个数据集。MapReduce提供了Map端和Reduce端的数据连接。这些连接是非平凡的连接,并且可能会是非常昂贵的操作。Pig和Hive也具有同等的能力来申请连接到多个数据集。Pig提供了复制连接,合并连接和倾斜连接(skewed join),并且Hive提供了map端的连接和完整外部连接来分析数据。
一个重要的事实是,通过使用各种工具,比如MapReduce、Pig和Hive等,数据可以基于它们的内置功能和实际需求来使用它们。至于在Hadoop分析大量数据,Anoop指出,通常,在大数据/Hadoop的世界,一些问题可能并不复杂,并且解决方案也是直截了当的,但面临的挑战是数据量。在这种情况下需要不同的解决办法来解决问题。
一些分析任务是从日志文件中统计明确的ID的数目、在特定的日期范围内改造存储的数据、以及网友排名等。所有这些任务都可以通过Hadoop中的多种工具和技术如MapReduce、Hive、Pig、Giraph和Mahout等来解决。这些工具在自定义例程的帮助下可以灵活地扩展它们的能力。
以上是关于Hadoop 和 BI 如何结合?搭建一个基于 Hadoop+Hive 的数据仓库,它的前端展现如何实现?如何实现 BI?的主要内容,如果未能解决你的问题,请参考以下文章
(超详细)基于Zookeeper的Hadoop HA集群的搭建
一手教你如何搭建Hadoop基于Zookeeper的集群(5台主机)