uce 调用执行。
但是包含“”的
查询,Hive 不会生成 MapRedcue 任务,因此程序开发中应尽量避免“”的使用,充分发挥分布式并行优势。
可以看出,它与关系型数据库的SQL 略有不同,但也支持了绝大多数的 SQL 语句如 DDL、DML 以及常见的聚合函数、连接查询、条件查询。
相比 Hbase9,Pig10,MapReduce 等等分布式数据处理工具,Hive 平台主要优势是: 1、将复杂紧耦合的 MapReduce 数据处理过程变成简单可松耦合的 SQL 语句查询,使分布式数据处理更简捷易懂; 2)、支持基于 X/Open 的 SQL 调用级接口 JDBC/ODBC 和 Thrift11服务开发框架,这使得开发人员可以使用更熟悉
常用的方式访问分布式环境中的数据;3、分布式的文档相似度开发运行环境 根据海量文档相似度计算总体策略和思路,充分利用 Hadoop 和关系型数据库在处理海量数据时的优缺点12,本文将需要大数据存储和计算的部分交给 Hive 平台完成,将需要较强表达能力的查询交互部分交给关系型数据库完成,形成可靠性高及数据处理能力强的大规模计算系统环境。
整个系统主要包括四部分,分布式环境(Hadoop),数据处理平台 ,开发平台(Eclipse)(HivePostgresql13) ,Web 应用平台(Tomcat)。
3.1 开源分布式环境 Hadoop 是 Hadoop 是 Apache
软件基金会管理的一个项目, Google 开发的用来支持互联网级数据处理的 MapReduce 编程模型和底层文件系统 GFS 的开源实现4,6。
在实际搭建 Hadoop环境时要注意选择稳定性较高的版本,同时也要考虑和其他系统组成部分(如 Hive 平台)的兼容性,本文选用 Hadoop0.20.2 版本。
搭建 Hadoop 环境的简要步骤: 1)、安装 Hadoop 之前,预安装 JAVA 环境,配置 SSH 服务,修改防火墙策略; 2)、解压安装配置 Hadoop,参数配置包括:在所有节点上配置 conf/core-site.xml,conf/hdfs-site.xml,conf/mapred-site.
xml,conf/hadoop-env.sh 及/etc/hosts 等文档,在主节点上配置 conf/master 和 slave 等文档。
同时,可考虑将 Hadoop 配置文件与其安装目录分离、配置适当的 Hadoop 数据冗余值和 PID 文件位置,构建更稳定的 Hadoop 分布式环境。
3)、启动 Hadoop 分布式环境,通过”jps”命令查看 Hadoop 启动后所有进程情况,正常应看到 NameNode,SecondaryNameNode,JobTracker,DataNode 和 TaskTracker。
3.2 数据处理平台 HivePostgresql 分布式并行计算环境中,对于大数据的处理,Hive 是通过将 HQL 语句转换成 Hadoop 环境中可运行的 MapReduce
程序来实现数据的并行处理的,同时 Hive 中的表结构信息需要保存在关系型数据库中,因此,Hive 服务启动前,除了必要的 Hadoop 分布式并行运行环境,还需安装配置关系型数据库系统环境作为 Hive 的元数据存储库。
Hive 默认使用嵌入式的Derby 数据库
系统,本文使用 PostgresSql 数据库系统保存 Hive 的表结构信息,包括表名字、属性、表的列和分区及其属性、表数据所在目录等等,并通过配置 hive-site.xml 中数据库的 URL,用户名,密码将表结构信息和实际 Hive 数据连接到一起。
而 Hive 表的实际数据内容保存在 Hadoop 的 HDFS 文件系统中,所以本文的相似度计算的数据处理系统环境由Postgresql 和 Hive 两部分组成。
主要实现步骤如下: 1)、安装配置 Postgresql 数据库系统,创建用于保存 Hive 表结构信息的数据库,默认数 据 库 名 为 “ default ” 及 相 关 的 用 户 名 和 口 令 ; 在/usr/java/jdk1.6.0_16/jre/lib/security/java.policy 文件中添加如下配置信息,开放Postgresql 的 socket 端口权限。
permission java.Net.SocketPer
mission quot127.0.0.1:5432quot,quotresolve,connectquot; 、 2 ) 安 装 配 置 Hive , 将 Postgresql 驱 动 放 到 ampHIVE_HOME/lib/ 目 录 下 , 在hive-default.xml 中,配置 Postgre
sql 数据库的 URL,用户名,密码等信息,关键代码如下: ltpropertygt ltnamegtjavax.Jdo.option.ConnectionURLlt/namegt ltvaluegtjdbc:postgresql://serverip/defaultlt/valuegt //URL 内容:接口方式、服务器名、数据库名 lt/propertygt ltpropertygt ltna