hive环境搭建

 Hive2.1.1安装部署

一、Hive 运行模式

与 Hadoop 类似,Hive也有 3 种运行模式:

1. 内嵌模式

将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。

2. 本地模式

这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。

3. 远程模式

此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。

二、下载安装Hive

http://hive.apache.org/downloads.html

tar -xzvf apache-hive-2.1.1-bin.tar.gz    ##解压

三、配置系统环

centos

修改 /etc/profile 文件  vi /etc/profile 来修改(root操作):

1.  设置 Hive环境变量

2.  # Hive environment

export HIVE_HOME=/home/hadoop/cloud/apache-hive-2.1.1-bin

 export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH  

1.  使环境变量生效:  source /etc/profile

ubuntu

修改~/.bashrc 文件  vim  ~/.bashrc 来修改(root操作):

设置 Hive环境变量

 # Hive environment

export HIVE_HOME=/home/hadoop/cloud/apache-hive-2.1.1-bin

 export PATH=$HIVE_HOME/bin:$HIVE_HOME/conf:$PATH  

4. 使环境变量生效:source ~/.bashr

四、内嵌模式

(1)修改 Hive 配置文件

$HIVE_HOME/conf 对应的是 Hive 的配置文件路径,类似于之前学习的Hbase,该路径下的hive-site.xml 是 Hive 工程的配置文件。默认情况下,该文件并不存在,我们需要拷贝它的模版来实现:

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

hive-site.xml的主要配置有:

hive.metastore.warehouse.dir

该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。

hive.exec.scratchdir

该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。

们还要修改 Hive /conf/hive-env.sh 文件(根据自己的实际路径修改),文件默也不存在,同是拷它的模版来修改:

cp hive-env.sh.template hive-env.sh

 #Set HADOOP_HOME to point to a specific hadoop install directory

1. HADOOP_HOME=/home/hadoop/cloud/hadoop-2.7.3 

 # Hive Configuration Directory can be controlled by:

 2. export HIVE_CONF_DIR=/home/hadoop/cloud/apache-hive-2.1.1-bin/conf 

#Folder containing extra ibraries required for hive compilation/execution can be controlled by:

3.exportHIVE_AUX_JARS_PATH=/home/hadoop/cloud/apache-hive-2.1.1-bin/lib  

(2)创建必要目录

前面我看到 hive-site.xml 文件中有两个重要的路径,切hadoop HDFS 是否有些路径:

1.  hadoop fs -ls /

没有发现上面提到的路径,因此我需要自己新建些目,并且们赋予用写(W限。

1.  $HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse

2. $HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp/hive/

3.  hadoop fs -chmod 777 /user/hive/warehouse

4.  hadoop fs -chmod 777 /tmp/hive

检查是否新建成功 hadoop fs -ls / 以及 hadoop fs -ls /user/hive/ :

(3)修改 io.tmpdir 路径

同时,要修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 字段的 value 即路径(vim下 / 表示搜索,后面跟你的关键词,比如搜索 hello,则为 /hello , 再回车即可),你可以自己新建一个目录来替换它,例如 /home/Hadoop/cloud/apache-hive-2.1.1-bin/iotmp

1. mkdir /home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp

2.  chmod 777 /home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp

3.  把hive-site.xml 中所有包含 ${system:Java.io.tmpdir}替换成/home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp

全局替命令 先按Esc  再同shift+:把以下替命令粘按回即可全局替

1.${system:java.io.tmpdir}#/home/hadoop/cloud/apache-hive-2.1.1-bin/iotmp#g

(4)运行Hive

1.  ./bin/hive

报错

解决办法:./bin/schematool-initSchema -dbType derby

报错

解决方法:删除/home/hadoop/cloud/apache-hive-2.1.1-bin目录下 rm -rf metastore_db/在初始化:./bin/schematool-initSchema -dbType derby

重新运行

./bin/hive

报错

原因:/tem/hive 没写的权限

Hive本身自带一个数据库,但是有弊端,hive本身数据库,每次只允许一个用户登录

mysql安装:http://blog.csdn.net/u014695188/article/details/51532410

设置mysqlhive

修改配置文件

### 创建hive-site.xml文件在hive/conf/目录下创建hive-site.xml文件

用户信息报错:hive.exec.scratchdir默认值是/tmp/hive-${system.user.name}

解决:改为/tmp/hive-${user.name}  或/tmp/hive


报错:Caused by:MetaException(message:Version information not found in metastore. )

解决:hive-site.xml加入

报错:缺少mysqljar包

解决:将其(如mysql-connector-Java-5.1.15-bin.jar)拷贝到$HIVE_HOME/lib下即可。

报错:

解决:#数据库的初始化。

2.  bin/schematool -initSchema -dbType mysql

启动

1. bin/hive

启动后mysql 多了hive 数据库

测试

创建数据库

create databasedb_hive_test;

创建测试表

use db_hive_test;

create table student(id int,name string) row format delimitedfields terminated by '\t';

数据到表中

新建student.txt 文件写入数据(id,name 按tab键分隔)

vi student.txt

1.  1001    zhangsan

2.  1002    lisi

3.  1003    wangwu

4.  1004    zhaoli

load data local inpath '/home/hadoop/student.txt' into table db_hive_test.student

查询表信

select * from student;

查看表的详细信息

desc formatted student;

通过ui页面查看创建的数据位置

http://192.168.169.132:50070/explorer.html#/user/hive/warehouse/db_hive_test.db

通过Mysql查看创建的表

查看hive的函数

show functions;

查看函数详细信息

desc function sum;

desc function extended

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容