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中取出符合的结果,返给前端。

    前端展现,即是分类的指标,筛选条件,指标内有图表和详细数据,以及多条件多指标横纵对比,导出等等。

参考技术A hadoop是一个开源的大数据分析软件,或者说编程模式。它是通过分布式的方式处理大数据的,因为开元的原因现在很多的企业或多或少的在运用hadoop的技术来解决一些大数据的问题,在数据仓库方面hadoop是非常强大的。但在数据集市以及实时的分析展现层面,hadoop也有着明显的不足,现在一个比较好的解决方案是架设hadoop的数据仓库而数据集市以及实时分析展现层面使用永洪科技的大数据产品,能够很好地解决hadoop的分时间长以及其他的问题。 参考技术B 那些认为已经有数据仓库的传统企业不需要Hadoop的,很快就要out了。
据我所知,很多银行已经开始评估将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?的主要内容,如果未能解决你的问题,请参考以下文章

如何基于Docker快速搭建多节点Hadoop集群

Hadoop技术在商业智能BI中的应用

(超详细)基于Zookeeper的Hadoop HA集群的搭建

一手教你如何搭建Hadoop基于Zookeeper的集群(5台主机)

基于Docker快速搭建Hadoop集群和Flink运行环境

基于Docker快速搭建Hadoop集群和Flink运行环境