hadoop: hive 1.2.0 在mac机上的安装与配置

环境:mac OS X Yosemite + hadoop 2.6.0 + hive 1.2.0 + jdk 1.7.0_79

前提:hadoop必须先安装,且处于运行状态(伪分式模式或全分布模式均可)

hive官网地址:http://hive.apache.org/

建议:经个人实践,在mac OS X Yosemite 环境下,如果使用apache下载的原始hadoop 2.6.0,不管jdk安装成什么版本(1.6\1.7\1.8都试过),hive 1.2.0启动时,始终报jdk版本不匹配,后来在mac上将hadoop 2.6.0源编译成mac原生版本后,就正常了。

如果有朋友也遇到类似情况,请参考  mac OS X Yosemite 上编译hadoop 2.6.0/2.7.0及TEZ 0.5.2/0.7.0 注意事项

一、环境变量

...
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0
export HIVE_HOME=/home/hadoop/hive-1.2.0
...
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
...
export PATH=${HIVE_HOME}/bin:$PATH:$HOME/bin:

三、修改hive中的xml配置

cp hive-default.xml.template hive-default.xml

cp hive-default.xml.template hive-site.xml

cp hive-exec-log4j.properties.template hive-exec-log4j.properties

cp hive-log4j.properties.template hive-log4j.properties

cp beeline-log4j.properties.template beeline-log4j.properties

即:把几个带.template后缀的模板文件,复制一份变成不带.template的配置文件,注意hive-default.xml.template这个要复制二份,一个是hive-default.xml,另一个是hive-site.xml,其中hive-site.xml为用户自定义配置,hive-default.xml为全局配置,hive启动时,-site.xml自定义配置会覆盖-default.xml全局配置的相同配置项。

 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2
 3 <configuration>
 4
 5     <property>
 6         <name>hive.metastore.local</name>
 7         <value>true</value>
 8     </property>
 9
10    <!--
11     <property>
12         <name>javax.jdo.option.ConnectionURL</name>
13         <value>jdbc:postgresql://localhost:5432/hive</value>
14     </property>
15
16     <property>
17         <name>javax.jdo.option.ConnectionDriverName</name>
18         <value>org.postgresql.Driver</value>
19     </property>
20     -->
21
22
23     <property>
24         <name>javax.jdo.option.ConnectionURL</name>
25         <value>jdbc:mysql://127.0.0.1:3306/hive?characterEncoding=UTF-8</value>
26     </property>
27
28     <property>
29         <name>javax.jdo.option.ConnectionDriverName</name>
30         <value>com.mysql.jdbc.Driver</value>
31     </property>
32
33     <property>
34         <name>javax.jdo.option.ConnectionUserName</name>
35         <value>hive</value>
36     </property>
37
38     <property>
39         <name>javax.jdo.option.ConnectionPassword</name>
40         <value>hive</value>
41     </property>
42
43
44     <property>
45         <name>hive.exec.scratchdir</name>
46         <value>/tmp/hive</value>
47     </property>
48
49     <property>
50         <name>hive.exec.local.scratchdir</name>
51         <value>/Users/jimmy/app/hive-1.2.0/tmp</value>
52     </property>
53
54     <property>
55         <name>hive.downloaded.resources.dir</name>
56         <value>/Users/jimmy/app/hive-1.2.0/tmp/${hive.session.id}_resources</value>
57     </property>
58
59     <property>
60         <name>hive.metastore.warehouse.dir</name>
61         <value>/user/hive/warehouse</value>
62     </property>
63
64 </configuration>

注:hive中有一个元数据的概念,元数据记录了当前有哪些表,哪些字段,字段数据类型等,由于hdfs是没有这些额外信息的,因此hive需要借助传统数据库来记录这些元数据信息,默认情况下,采用内置数据库derby来记录,也可以通过配置将这些元数据记录到mssql\mysql\oracle\postgreSQL等大型RDMBS中,上面的配置中,演示了MYSQL、PostgreSQL二种配置,如果把23-41注释掉,就变成derby独立模式。

另:上面的配置文件中,有一些关于目录的参数,先提前把目录建好,

hive.exec.local.scratchdir
hive.downloaded.resources.dir

这二项对应的目录,是指本地目录(必须先手动建好),其它目录为hdfs中的目录(hive启动时,先自动建好,如果自动创建失败,也可以手动通过shell在hdfs中创建)

 

四、替换hadoop 2.6.0中的jline jar包

由于hive 1.2.0自带的jline包跟hadoop 2.6.0自带的版本不一致,因此需要将$HIVE_HOME/lib/jline-2.12.jar 这个文件替换掉$HADOOP_HOME/share/hadoop/yarn/lib 下原来的版本 (即:将旧版本删除,复制新版本到此目录),否则hive启动将失败

 

五、测试及验证

$HIVE_HOME/bin/hive

如果能正常进入 hive> 即表示正常

a) 创建表测试

hive>create table test(id int);

b) 将hdfs中的文件内容加载到表中

hive> load data inpath '/input/duplicate.txt' into table test;

注:duplicate.txt的内容可在以前的博客文章中找到

c) 测试求平均值

hive> select avg(id) from test;

Query ID = jimmy_20150607191924_ccfb231f-6c92-47ac-88f1-eb32882a0010

Total jobs = 1

Launching Job 1 out of 1

Number of reduce tasks determined at compile time: 1

In order to change the average load for a reducer (in bytes):

  set hive.exec.reducers.bytes.per.reducer=<number>

In order to limit the maximum number of reducers:

  set hive.exec.reducers.max=<number>

In order to set a constant number of reducers:

  set mapreduce.job.reduces=<number>

Job running in-process (local Hadoop)

2015-06-07 19:19:27,980 Stage-1 map = 100%,  reduce = 100%

Ended Job = job_local1537497991_0001

MapReduce Jobs Launched: 

Stage-Stage-1:  HDFS Read: 190 HDFS Write: 0 SUCCESS

Total MapReduce CPU Time Spent: 0 msec

OK

3.909090909090909

Time taken: 3.322 seconds, Fetched: 1 row(s)

从输出的信息看,hive底层仍然是将SQL语句翻译成mapreduce作业,提交给hadoop的MR引擎。从使用层面看,采用SQL语句方式来分析数据,确实比MapReducePIG方式方便太多了。

 

 

 

 

时间: 2024-09-19 09:25:59

hadoop: hive 1.2.0 在mac机上的安装与配置的相关文章

《Hadoop实战第2版》——2.2节在Mac OSX上安装与配置Hadoop

2.2 在Mac OSX上安装与配置Hadoop 由于现在越来越多的人使用Mac Book,故笔者在本章中增加了在Mac OS X上安装与配置Hadoop的内容,供使用Mac Book的读者参考. 2.2.1 安装Homebrew Mac OS X上的Homebrew是类似于Ubuntu下apt的一种软件包管理器,利用它可以自动下载和安装软件包,安装Homebrew之后,就可以使用Homebrew自动下载安装Hadoop.安装Homebrew的步骤如下: 1)从Apple官方下载并安装内置GCC

在Mac OSX上安装与配置Hadoop

在Mac OSX上 安装与配置Hadoop 博客分类: Hadoop hadoopbrewxcodegccosx&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 由于现在越来越多的人使用Mac Book,故笔者在本章中增加了在Mac OS X上安装与配置Hadoop的内容,供使用Mac Book的读者参考. 2.2.1 安装Homebrew Mac OS X上的Homebrew是类似于 Ubuntu下apt的一种

[Hadoop]Hive r0.9.0中文文档(二)之联表查询Join

一.Join语法 join_table: table_reference [INNER] JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI JOIN table_reference join_condition table_reference: table_fac

[Hadoop]Hive r0.9.0中文文档(一)之数据操作语句

一.创建表的语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY

苹果mac机上如何安装windows 8系统

windows8正式版已经发布一段时间了,很多朋友都纷纷尝试,本文小编为大家介绍一下如何在mac系统中安装win8系统. 很多Mac用户偶尔也需要用一下Windows应用程序,使用像Parallels Desktop .VMware Fusion 和VirtualBox这样的虚拟机解决方案往往最为方便.这会造成部分性能损失,但对于大多数人来说,无需重新启动就能运行程序的方便足以弥补这种缺陷. 但玩游戏是一个例外.使用虚拟化解决方案,3D性能会大幅削弱,甚至彻底没有(如果你用VirtualBox)

Hive-0.12.0的Web接口HWI安装、配置、改造及使用

使用Hive的HWI接口,可以通过在Web页面上提交HQL查询操作,并浏览查询结果数据.默认情况下,HWI只支持浏览结果数据,不能够下载查询结果文件(当然,HWI可能也是考虑通过Web下载大量的结果数据,对服务器造成压力,或者处于安全方面的考虑).我们对HWI进行了简单的改造,改造内容主要是增加了一个内置的文件服务器,可以通过页面进行查询,然后下载结果文件. HWI安装配置 首先,要保证Hadoop集群正常运行,Hive能够正常使用. 先要安装Ant,如下所示: 1 wget http://mi

《Hadoop实战第2版》——2.4节安装和配置Hadoop集群

2.4 安装和配置Hadoop集群 2.4.1 网络拓扑 通常来说,一个Hadoop的集群体系结构由两层网络拓扑组成,如图2-3所示.结合实际应用来看,每个机架中会有30~40台机器,这些机器共享一个1GB带宽的网络交换机.在所有的机架之上还有一个核心交换机或路由器,通常来说其网络交换能力为1GB或更高.可以很明显地看出,同一个机架中机器节点之间的带宽资源肯定要比不同机架中机器节点间丰富.这也是Hadoop随后设计数据读写分发策略要考虑的一个重要因素. 2.4.2 定义集群拓扑 在实际应用中,为

[Hadoop]Hive r0.9.0中文文档(三)之Hive相关命令

一.Hive命令选项 Usage: Usage: hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S] -i <filename> Initialization Sql from file (executed automatically and silently before any other commands) -e 'quoted query stri

[Hadoop]Hive r0.9.0中文文档(四)之Hive变量的使用

一.介绍 例子: $ a=b $ hive -e " describe $a " 如果你hive数据库中没有b这个表,则会提示Table b does not exist  hive的变量设置可以放在hiveconf中,使变量赋值与查询合并为一句话: 例子: $ bin/hive -hiveconf a=b -e 'set a; set hiveconf:a; \ create table if not exists b (col int); describe ${hiveconf:a