一、 相关概念

Hive Metastore有三种配置方式,分别是:

Embedded Metastore Database (Derby) 内嵌模式
Local Metastore Server 本地元存储
Remote Metastore Server 远程元存储
1.1 Metadata、Metastore作用

metadata即元数据。元数据包含用Hive创建的database、tabel等的元信息。
元数据存储在关系型数据库中。如Derby、MySQL等。

Metastore的作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。

1.2三种配置方式区别

内嵌模式使用的是内嵌的Derby数据库来存储元数据,也不需要额外起Metastore服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。

本地元存储和远程元存储都采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server.在这里我们使用MySQL。

本地元存储和远程元存储的区别是:本地元存储不需要单独起metastore服务,用的是跟hive在同一个进程里的metastore服务。远程元存储需要单独起metastore服务,然后每个客户端都在配置文件里配置连接到该metastore服务。远程元存储的metastore服务和hive运行在不同的进程里。

在生产环境中,建议用远程元存储来配置Hive Metastore。

前提: 已经安装好三个节点的 hadoop 集群,参考 http://blog.csdn.net/zhang123456456/article/details/77621487
这里选用mySql作为元数据库,将mySql和Hive安装在master服务器上
统一给放到/usr/local/hadoop

1.下载安装文件,并解压:
cd /usr/local/hadoop
wget http://mirrors.cnnic.cn/apache/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/hadoop

-- 如果 hive 有专属的用户,记得赋权
sudo chown -R XXX:XXX /usr/local/hadoop/apache-hive-1.2.1-bin

2.设置环境变量
sudo vim /etc/profile
在最后加上
export HIVE_HOME=/usr/local/hadoop/apache-hive-1.2.1-bin(这儿是你的hive的解压路径)
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile ->使配置文件生效

安装mysql , 参考 http://blog.csdn.net/zhang123456456/article/details/53608554 ,注意MySQL数据库不能设置为BINLOG_FORMAT = STATEMENT,否则报Cannot execute statement: impossible to write to binary log 。

3. 在 mysql 数据库中创建 hive 专属数据库 与 用户
mysql -u root -p ->输入之后会提示你输入之前你设置的root密码
create database hiveDB; -> 建立数据库
create user 'hive' identified by 'hive'; ->创建用户
grant all privileges on hivedb.* to 'hive'@'%' identified by 'hive'; ->将允许从任意地点登陆的hive用户对hiveDB数据库的所有表执行增删查改四种操作
flush privileges; -> 刷新系统权限表

4.拷贝JDBC驱动包
将mySql的JDBC驱动包复制到Hive的lib目录下
cp mysql-connector-java-5.1.34-bin.jar  /usr/local/hadoop/apache-hive-1.2.1-bin/lib

5.修改Hive配置文件:
cd apache-hive-1.2.1-bin/conf/
cp hive-default.xml.template hive-site.xml
vi hive-site.xml  #修改相应配置

hive.exec.scratchdir       ## 所有${system:java.io.tmpdir}和@{system:user.name}  都替换掉

/usr/local/hadoop/apache-hive-1.2.1-bin/iotmp

javax.jdo.option.ConnectionURL
jdbc:mysql://HadoopMaster:3306/hivedb?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true

jdbc:mysql://hadp-master:3306/hivedb?useUnicode=true&createDatabaseIfNotExist=true

javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver

javax.jdo.option.ConnectionUserName
hive

javax.jdo.option.ConnectionPassword
hive

hive.metastore.warehouse.dir
/user/hive/warehouse
location of default database for the warehouse

说明:
hive.exec.scratchdir->执行HIVE操作访问HDFS用于临时存储数据的目录。目录权限设置为733。我这儿用的是/tmp/hive目录。
javax.jdo.option.ConnectionURL -> 设置hive通过JDBC链接MYSQL数据库存储metastore存放的数据库地址
javax.jdo.option.ConnectionDriverName ->设置链接mysql的驱动名称。
javax.jdo.option.ConnectionUserName -> 设置存储metastore内容的数据库用户名
javax.jdo.option.ConnectionPassword -> 设置存储metastore内容的数据库用户名密码
hive.metastore.warehouse.dir -> 设置用于存放hive元数据的目录位置,改配置有三种模式,内嵌模式,本地元数据,远程元数据。如果hive.metastore.uris是空,则是本地模式。否则则是远程模式。

②配置hive-env.sh,这个文件也是没有的,是hive-env.sh.template复制过来的

sudo cp hive-env.sh.template hive-env.sh
sudo vim hive-env.sh
将jdk的路径和hadoop的家目录导入到这个文件中:
export JAVA_HOME=/usr/local/jdk1.8.0_131
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.4/

6.分发Hive分别到slave1,slave2上
scp -r /usr/local/hadoop/apache-hive-1.2.1-bin hadp-node1:/usr/local/hadoop/
scp -r /usr/local/hadoop/apache-hive-1.2.1-bin hadp-node2:/usr/local/hadoop/

配置环境变量如同master。

7.测试Hive

进入到Hive的安装目录,命令行:
cd $HIVE_HOME/bin
./hive --service metastore &
./hive --service hiveserver2 &
./hive

hive> show tables;
OK
Time taken: 1.995 seconds

Hive之 hive-1.2.1 + hadoop 2.7.4 集群安装的更多相关文章

  1. hadoop 2.2.0集群安装详细步骤(简单配置,无HA)

    安装环境操作系统:CentOS 6.5 i586(32位)java环境:JDK 1.7.0.51hadoop版本:社区版本2.2.0,hadoop-2.2.0.tar.gz 安装准备设置集群的host ...

  2. hadoop 2.2.0集群安装

    相关阅读: hbase 0.98.1集群安装 本文将基于hadoop 2.2.0解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net ...

  3. Hadoop 2.6.1 集群安装配置教程

    集群环境: 192.168.56.10 master 192.168.56.11 slave1 192.168.56.12 slave2 下载安装包/拷贝安装包 # 存放路径: cd /usr/loc ...

  4. Hadoop 2.4.x集群安装配置问题总结

    配置文件:/etc/profile export JAVA_HOME=/usr/java/latest export HADOOP_PREFIX=/opt/hadoop-2.4.1 export HA ...

  5. CentOS系统下Hadoop 2.4.1集群安装配置(简易版)

    安装配置 1.软件下载 JDK下载:jdk-7u65-linux-i586.tar.gz http://www.oracle.com/technetwork/java/javase/downloads ...

  6. Hadoop完全高可用集群安装

    架构图(HA模型没有SNN节点) 用vm规划了8台机器,用到了7台,SNN节点没用   NN DN SN ZKFC ZK JNN RM NM node1 *     *         node2 * ...

  7. Hadoop 2.5.1集群安装配置

    本文的安装只涉及了hadoop-common.hadoop-hdfs.hadoop-mapreduce和hadoop-yarn,并不包含HBase.Hive和Pig等. http://blog.csd ...

  8. hadoop 2.7.3 集群安装

    三台虚拟机,centos6.5 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: loca ...

  9. hadoop 1.0.1集群安装及配置

    1.hadoop下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/core/ 2.下载java6软件包,分别在三台安装 3.三台虚拟机,一台作为mast ...

随机推荐

  1. selenium 中装饰器作用

    前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间.于是就想是不是可以只打开一 ...

  2. bzoj1602 / P2912 [USACO08OCT]牧场散步Pasture Walking(倍增lca)

    P2912 [USACO08OCT]牧场散步Pasture Walking 求树上两点间路径--->lca 使用倍增处理lca(树剖多长鸭) #include<iostream> # ...

  3. 20135320赵瀚青LINUX期中总结

    期中总结 心得与体会 本学期的LINUX内核这门课程已经进行了一半,这门课的学习方法和上个学期深入理解计算机系统的方式差不多,所以也没有特别多不适应,LINUX内核在我看来,就是理解一个操作系统是如何 ...

  4. POJ 1185 炮兵阵地(状压DP)题解

    思路:和上一篇思路一样,但是这里要求最大能排几个,这里要开三维,记录上次和上上次的状态,再一一判定,状态转移方程为 dp[i][j][k] = max(dp[i][j][k],dp[i - 1][k] ...

  5. POJ3278_Catch that cow

    一个简单的bfs题. 用结构体的目的在于保存bfs到达此处时走的步数. 不多言,上AC代码: //18:18 #include<iostream> #include<cstdio&g ...

  6. about SpringBoot学习后记

    <SpringBoot实战>第一章节入门的名称为Spring风云再起 看起来Spring的功能确实受Java开发者喜爱 在SpringBoot中,继续将Spring框架做了另一次的封装使框 ...

  7. Codeforces Round #390 (Div. 2) D. Fedor and coupons(区间最大交集+优先队列)

    http://codeforces.com/contest/754/problem/D 题意: 给定几组区间,找k组区间,使得它们的公共交集最大. 思路: 在k组区间中,它们的公共交集=k组区间中右端 ...

  8. Intel Caffe 与原生Caffe

    1.  首先安装好docker,拉取intel caffe image: $ docker pull bvlc/caffe:intel 试着运行: $ docker run -it bvlc/caff ...

  9. 3个方法实现JavaScript判断移动端及pc端访问不同的网站

    3个方法比较简单,分别在页面头部加入如下js代码: 对于简单地直接从www.maslinkcom跳转到m.maslink.com,此方法仅从首页而言: <script>(function ...

  10. VS2010快捷键大全----养成良好的习惯

    VS2010版快捷键Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O ...