Hive之 hive-1.2.1 + hadoop 2.7.4 集群安装

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:

一、 相关概念

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

 

文章可以转载,必须以链接形式标明出处。

本文转自 张冲andy 博客园博客,原文链接: http://www.cnblogs.com/andy6/p/7536958.html ,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
771 6
|
10月前
|
分布式计算 Hadoop Java
CentOS中构建高可用Hadoop 3集群
这个过程像是在一个未知的森林中探索。但当你抵达终点,看到那个熟悉的Hadoop管理界面时,所有的艰辛都会化为乌有。仔细观察,尽全力,这就是构建高可用Hadoop 3集群的挑战之旅。
370 21
|
SQL 分布式计算 关系型数据库
基于云服务器的数仓搭建-hive/spark安装
本文介绍了在本地安装和配置MySQL、Hive及Spark的过程。主要内容包括: - **MySQL本地安装**:详细描述了内存占用情况及安装步骤,涉及安装脚本的编写与执行,以及连接MySQL的方法。 - **Hive安装**:涵盖了从上传压缩包到配置环境变量的全过程,并解释了如何将Hive元数据存储配置到MySQL中。 - **Hive与Spark集成**:说明了如何安装Spark并将其与Hive集成,确保Hive任务由Spark执行,同时解决了依赖冲突问题。 - **常见问题及解决方法**:列举了安装过程中可能遇到的问题及其解决方案,如内存配置不足、节点间通信问题等。
基于云服务器的数仓搭建-hive/spark安装
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
369 4
|
SQL 分布式计算 Hadoop
手把手的教你搭建hadoop、hive
手把手的教你搭建hadoop、hive
1132 1
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
237 3
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
268 3
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
407 3
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
305 1
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
311 2

相关实验场景

更多