博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop: hive 1.2.0 在mac机上的安装与配置
阅读量:6614 次
发布时间:2019-06-24

本文共 4140 字,大约阅读时间需要 13 分钟。

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

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

hive官网地址:

建议:经个人实践,在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原生版本后,就正常了。

如果有朋友也遇到类似情况,请参考 

一、环境变量

...export HADOOP_HOME=/home/hadoop/hadoop-2.6.0export 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 
2 3
4 5
6
hive.metastore.local
7
true
8
9 10
21 22 23
24
javax.jdo.option.ConnectionURL
25
jdbc:mysql://127.0.0.1:3306/hive?characterEncoding=UTF-8
26
27 28
29
javax.jdo.option.ConnectionDriverName
30
com.mysql.jdbc.Driver
31
32 33
34
javax.jdo.option.ConnectionUserName
35
hive
36
37 38
39
javax.jdo.option.ConnectionPassword
40
hive
41
42 43 44
45
hive.exec.scratchdir
46
/tmp/hive
47
48 49
50
hive.exec.local.scratchdir
51
/Users/jimmy/app/hive-1.2.0/tmp
52
53 54
55
hive.downloaded.resources.dir
56
/Users/jimmy/app/hive-1.2.0/tmp/${hive.session.id}_resources
57
58 59
60
hive.metastore.warehouse.dir
61
/user/hive/warehouse
62
63 64

注: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语句方式来分析数据,确实比或方便太多了。

 

 

 

 

转载地址:http://ahhso.baihongyu.com/

你可能感兴趣的文章
SCOM 2012 R2_自动恢复服务脚本
查看>>
离现在的半年内
查看>>
Heartbeat+DRBD+NFS高可用实例配置
查看>>
Linux Iptables 简析
查看>>
设计模式(创建型模式)——工厂方法模式
查看>>
我的友情链接
查看>>
CPU个数、核数、逻辑个数
查看>>
浅谈运维必备技能
查看>>
Go 并发非阻塞缓存
查看>>
过时的广东省教育技术中级培训题答大全
查看>>
happyhbase 基本操作和增量操作
查看>>
JAVA API集
查看>>
开源类型
查看>>
onSaveInstanceState() 什么时候调用
查看>>
双十一高并发场景背后的数据库RDS技术揭秘
查看>>
数据流被污染?数据质量不高?蚂蚁金服数据资产管理平台了解一下
查看>>
我的友情链接
查看>>
DES 算法报告
查看>>
iscsiadm命令使用方法
查看>>
双机热备篇 VGMP招式详解.2
查看>>