1.前言

说明:安装hive前提是要先安装hadoop集群,并且hive只需要再hadoop的namenode节点集群里安装即可(需要再所有namenode上安装),可以不在datanode节点的机器上安装。另外还需要说明的是,虽然修改配置文件并不需要你已经把hadoop跑起来,但是本文中用到了hadoop命令,在执行这些命令前你必须确保hadoop是在正常跑着的,而且启动hive的前提也是需要hadoop在正常跑着,所以建议你先将hadoop跑起来在按照本文操作。有关如何安装和启动hadoop集群,请参考: 
CentOS7.0下Hadoop 2.7.3集群搭建

2.下载安装Hive2.1.1

2.1.下载Hive 2.1.1

下载地址:http://hive.apache.org/downloads.html 
点击图中的Download a release now! 

按照步骤找到作一镜像,使用wget命令下载:

$wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
  • 1

2.2.安装hive 2.1.1

#解压:
tar -zxvf apache-hive-2.1.1-bin.tar.gz
#把解压后的文件移到目录/usr/local/下:
mv apache-hive-2.1.1-bin /usr/local/apache-hive-2.1.1
#配置hive环境变量
vim /etc/profile
--------------------------------------------------
HIVE_HOME=/usr/local/apache-hive-2.1.1
HIVE_CONF_DIR=$HIVE_HOME/conf
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH HADOOP_HOME  HIVE_HOME HIVE_CONF_DIR
-------------------------------------------------
#使配置文件的修改生效
source /etc/profile

3.配置hive

3.1.配置hive-site.xml

#进入目录
cd $HIVE_CONF_DIR
#拷贝hive-default.xml.template并重命名为hive-site.xml
cp hive-default.xml.template  hive-site.xml
#编辑hive-site.xml
vim hive-site.xml

3.1.1 使用hadoop新建hdfs目录

因为在hive-site.xml中有这样的配置:

  <name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value><name>hive.exec.scratchdir</name><value>/tmp/hive</value>

所以要在Hadoop集群新建/user/hive/warehouse目录,执行命令

cd $HADOOP_HOME #进入Hadoop主目录
bin/hadoop fs -mkdir -p  /user/hive/warehouse #创建目录
bin/hadoop fs -chmod -R 777 /user/hive/warehouse #新建的目录赋予读写权限
bin/hadoop fs -mkdir -p /tmp/hive/#新建/tmp/hive/目录
bin/hadoop fs -chmod -R 777 /tmp/hive #目录赋予读写权限
#用以下命令检查目录是否创建成功
bin/hadoop fs -ls /user/hive
bin/hadoop fs -ls /tmp/hive

3.1.2.修改hive-site.xml中的临时目录

将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为/usr/local/apache-hive-2.1.1/tmp/,该目录如果不存在则要自己手工创建,并且赋予读写权限。

cd $HIVE_HOME
mkdir tmp
chmod -R 777 tmp/

例如原来:

  <property><name>hive.downloaded.resources.dir</name><value>${system:java.io.tmpdir}/${hive.session.id}_resources</value><description>Temporary local directory for added resources in the remote file system.</description></property>

替换为:

  <property><name>hive.downloaded.resources.dir</name><!--value>${system:java.io.tmpdir}/${hive.session.id}_resources</value--><value>/user/local/apache-hive-2.1.1/tmp/${hive.session.id}_resources</value><description>Temporary local directory for added resources in the remote file system.</description></property>

3.1.3.将配置文件中${system:user.name}都替换为root

例如原来:

  <property><name>hive.server2.logging.operation.log.location</name><value>${system:java.io.tmpdir}/${system:user.name}/operation_logs</value><description>Top level directory where operation logs are stored if logging functionality is enabled</description></property>

替换为:

  <property><name>hive.server2.logging.operation.log.location</name><value>/user/local/apache-hive-2.1.1/tmp/root/operation_logs</value><description>Top level directory where operation logs are stored if logging functionality is enabled</description></property>

说明: 以上给出的只是配置文件中截取了几处以作举例,你在替换时候要认真仔细的全部替换掉。

3.1.4.修改hive-site.xml数据库相关的配置

3.1.4.1. javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径:
<property
  <name>javax.jdo.option.ConnectionDriverName</name
  <value>com.mysql.jdbc.Driver</value>
</property>  
3.1.4.2. javax.jdo.option.ConnectionURL,将该name对应的value修改为MySQL的地址:
 <name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://192.168.56.101:3306/hive?createDatabaseIfNotExist=true</value>
3.1.4.3.javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名:
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
3.1.4.4.javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码:
<name>javax.jdo.option.ConnectionPassword</name><value>*******</value>
3.1.4.5.将MySQL驱动包上载到Hive的lib目录下
cp /home/dtadmin/spark_cluster/mysql-connector-java-5.1.36.jar $HIVE_HOME/lib/

3.2.新建hive-env.sh文件并进行修改

cd $HIVE_CONF_DIR
cp hive-env.sh.template hive-env.sh #基于模板创建hive-env.sh
vim hive-env.sh #编辑配置文件并加入以下配置:
-------------------------------------------------
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/local/apache-hive-2.1.1/conf
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-2.1.1/lib
--------------------------------------------------

4.启动和测试

有关安装与配置MySQL数据库请参考文章:CentOS7.0安装配置MySQL5.7

4.1.对MySQL数据库初始化

#进入到hive的bin目录
cd $HIVE_HOME/bin
#对数据库进行初始化
schematool -initSchema -dbType mysql

执行成功后,在mysql的hive数据库里已生成metadata数据表: 

4.2.启动Hive

cd $HIVE_HOME/bin #进入Hive的bin目录
./hive #执行hive启动
  • 1
  • 2

4.3.测试Hive

4.3.1.简单测试

成功启动Hive后,会进入hive的命令行模式,下面进行一系列简单测试:

hive> show functions;
OK
-----
!
!=
$sum0
%
&
*
+
-
/
<
<=
<=>
<>
=
==
>
>=
^
abs
acos
add_months
aes_decrypt
aes_encrypt
and
array
array_contains
ascii
asin
assert_true
atan
avg
base64
between
bin
bround
case
cbrt
ceil
ceiling
chr
coalesce
collect_list
collect_set
compute_stats
concat
...hive> desc function sum;
OK
----
sum(x) - Returns the sum of a set of numbers
Time taken: 0.007 seconds, Fetched: 1 row(s)

4.3.2.执行新建库、表以及导入数据的测试

执行新建数据库的hive命令: 
hive>create database starbucks; 
hive>use starbucks; 
hive> create table sbux_nc_req


request_id bigint, 
message_type_id int, 
request_type int, 
request_time string, 
request_url string, 
request_source int, 
request_body string, 
response_time string, 
send_time string, 
attachment_id int, 
template_id bigint, 
linked_template_id string, 
linked_job_id bigint, 
application_id int, 
created_by string, 
creation_date string, 
last_updated_by string, 
last_updated_date string 
) row format delimited fields terminated by ‘\t\t\t’; 
hive> load data local inpath ‘/var/lib/mysql-files/sbux_nc_req.dat’ into table sbux_nc_req; 
注:sbux_nc_req.dat文件可能在mysql数据库里生成,生成方法如下:

select * into outfile '/var/lib/mysql-files/sbux_nc_req.dat'        fields terminated  by '\t\t\t' from sbux_nc_req; 
  • 1

4.3.3.查看是否成功

hive> select * from sbux_nc_req; 

4.3.4.在Hadoop的HDFS页面上查看

4.3.5.在MySQL的hive数据库中查看

CentOS7 Hadoop 2.7.3 Hive 2.1.1相关推荐

  1. centos7下搭建hadoop、hbase、hive、spark分布式系统架构

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 如果想了解架构原理,可以参考:https://blog.csdn.net/luanpeng825485697/article/details/8031 ...

  2. centos7 hadoop+hive 安装

    准备四台虚拟机 虚拟机安装 1.创建新虚拟机 2.点击典型安装(推荐) 3.选择中文,点击自己分区 # 分区配置(JD使用) /boot 200M swap 512M # 本机内存不够用了,用swap ...

  3. 大数据hadoop、mysql、hive超详细配置及问题解决

    1.前提准备 hadoop-3.1.3.tar.gz jdk-8u162-linux-x64.tar.gz mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz apa ...

  4. hadoop 2.6.5 + hive 集群搭建

    Hadoop 搭建:https://blog.csdn.net/sinat_28371057/article/details/109135056 hive 搭建 1. 系统环境 centos 7.3 ...

  5. hadoop、hbase、hive、spark分布式系统架构原理

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 机器学习.数据挖掘等各种大数据处理都离不开各种开源分布式系统,hadoop用户分布式存储和map-reduce计算,spark用于分布式机器学习,hi ...

  6. 大数据开发超高频面试题!大厂面试必看!包含Hadoop、zookeeper、Hive、flume、kafka、Hbase、flink、spark、数仓等

    大数据开发面试题 包含Hadoop.zookeeper.Hive.flume.kafka.Hbase.flink.spark.数仓等高频面试题. 数据来自原博主爬虫获取! 文章目录 大数据开发面试题 ...

  7. 自动安装JDK、HADOOP、ZOOKEEPER、HIVE的shell脚本

    看脚本需要注意的地方是用[" "]双引号括起来的字段一般是带有$某个东西的,例如$hostname,需要 取值的一般都用""不然会出错,如果不想取值,直接保留$ ...

  8. hadoop组件---数据仓库(四)---hive常用命令

    安装好hive的环境之后 我们可以尝试一些常用的命令,常用命令也可以作为平时工作中的速查手册. 进入hive控制台 首先需要知道hive的启动目录在哪,可以使用命令 whereis hive 启动hi ...

  9. hadoop之旅8-centerOS7 : Hive的基本操作

    通过hadoop之旅7-centerOS7 : Hive环境搭建相信搭建已经在自己的虚拟机上搭建好了hive的环境,今天带大家熟悉一下hive的基本使用 hive脚本的三种执行方式 hive -e ' ...

最新文章

  1. [推荐]大量 Blazor 学习资源(一)
  2. 群签名和环签名的区别_超级签名和TF签名使用个人开发者账号的区别是什么?...
  3. JavaScript,等比例缩放图片的函数,很好用。
  4. 做骨龄检测_小柚熊:骨龄测试最佳年龄
  5. linq to sql 行转列_SQL进阶:SQL高级编程语法实例
  6. java对集合的操作_Java中对List集合的常用操作
  7. html flash带播放视频源码,HTML嵌套Flash播放视频
  8. 2021李彦宏致股东信全文
  9. SAP 中文小写金额转大写金额 amount in word(支持负数)
  10. 软景php,案例分享 | 景观工程案例分析及其成本优化
  11. 微信能上网但是浏览器无法上网,原因在于上次关机时加速器忘记关闭,解决办法如下
  12. 安卓手机投屏到电脑的问题可以通过一个神器解决
  13. Elasticsearch7.1之cerebro使用(一)
  14. html5 audio js控制进度,HTML5多媒体的之audio和video。JavaScript控制进度条播放进度
  15. java中随机点名器的简单程序
  16. gj TeamView验证手机号 一直加载
  17. 【C语言进阶】字符函数和字符串函数
  18. 学校校园学生寝室管理查寝打分系统 毕业设计毕设源码毕业论文开题报告参考(3)宿舍管理员功能
  19. 计算机组成原理汇编语言设计实验,《计算机组成原理汇编语言程序设计》实验指导书.doc...
  20. 【号外】支付宝道歉,错了就是错了,马云回话

热门文章

  1. 关于Scrum XP DevOps的学习
  2. PyQt5的相对布局管理
  3. 基于javaweb汽车保险管理系统(前端+后端)
  4. 机器人对话常用语模板_聊天机器人的技术原理和未来的发展
  5. 没啥好说的,但是讲支付怎么能够绕的开固码呢?
  6. 瞬态抑制二极管(TVS)
  7. 图像分割方法分享 | 基于优选集成ConvNet的脑癌图像分割方法
  8. [JS]ipv6地址16进制格式转换为二进制表示
  9. python php java地铁站自动售票系统nodejs+vue+elementui
  10. windows10某些文件删不掉的终极解决办法