Hive的安装配置及原理 完美解决解压hive缺少hive-site.xml文件,和安全模式无法启动hive等问题

Hive原理

  1. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
  2. Hvie是建立在Hadoop上的数据仓库基础架构。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive定义了简单的类SQL查询语句,称为HQL,它允许熟悉SQL的用户查询数据。同时,这个语言也允许熟悉MapReduce开发者的开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。
  3. 由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述Hive和数据库的差异。数据库可以用在Online的应用中,但是Hive是为数据仓库而设计的,清楚这一点,有助于从应用角度理解Hive的特性。

Hive的安装

1,安装配置好mysql。

之前博客有写过,安装配置步骤点击下方链接,这里就不多说了。
mysql安装配置

2,到官网下载hive-1.1.0-cdh5.14.2版本的hive安装包。

3,利用xshell中的xftp往/opt中上传

4,解压安装包

tar -zxvf hive-1.1.0_cdh5.14.2

5,把解压好的安装包放到/opt/soft下

[root@sql opt]# mv hive-1.1.0-cdh5.14.2 soft/hive110 

6,到hive110文件下找到配置文件conf下面的hive-site.xml

[root@sql soft]# cd hive110/
[root@sql hive110]# ls
auxlib  conf  docs      hcatalog  LICENSE  README.txt         scripts
bin     data  examples  lib       NOTICE   RELEASE_NOTES.txt
[root@sql hive110]# cd conf/
[root@sql conf]# ls
beeline-log4j.properties.template  hive-exec-log4j.properties.template  ivysettings.xml
hive-env.sh.template               hive-log4j.properties.template

这里我们发现conf文件夹下没有hive-site.xml 那我们就生搓这个配置文件好了,反正也不是很多。
首先在hive110文件夹下建个数据仓库文件用来放hive建的数据库和表

[root@sql hive110]# mkdir warehouse

现在再搓配置文件:

[root@sql conf]# vi hive-site.xml



        
                hive.metastore.warehouse.dir
                /opt/soft/hive110/warehouse
                
        
        
                hive.metastore.local
                true
        
        
                javax.jdo.option.ConnectionURL
                jdbc:mysql://192.168.56.101:3306/hive?createDatabaseIfNotExist=true	
                
        
        
                javax.jdo.option.ConnectionDriverName
                com.mysql.jdbc.Driver
        
        
                javax.jdo.option.ConnectionUserName
                root
        
        
                javax.jdo.option.ConnectionPassword
                ok
                
        


7,配置虚拟机中hive的运行环境

首先查看hive的路径

[root@sql hive110]# pwd
/opt/soft/hive110

复制路径。
开始配置hive的运行环境

[root@sql hive110]# vi /etc/profile

在文件末尾添加如下配置:

export HIVE_HOME=/opt/soft/hive110
export PATH=$PATH:$HIVE_HOME/bin

保存退出。(esc + :wq)

8,激活配置文件

source /etc/profile

然后在hive110/lib目录下 通过xftp上传mysql-connector-java-5.1.38 jar包!!!!

9,mysql数据库进行初始化

[root@sql hive110]# schematool -initSchema -dbType mysql

用Navicat 连接自己虚拟机数据库,看看里面多没多一个hive数据库。有就对了。

10,回到xshell中 打开hadoop。

 [root@sql hive110]# start-all.sh
 [root@sql hive110]# jps
13168 ResourceManager
13011 SecondaryNameNode
14371 DataNode
21307 Jps
13788 NameNode
13261 NodeManager

11,开启hive

[root@sql hive110]# hive
which: no hbase in (/opt/soft/jdk180/bin:/opt/soft/jdk180/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/soft/hadoop260/sbin:/opt/soft/hadoop260/bin:/root/bin:/opt/soft/hadoop260/sbin:/opt/soft/hadoop260/bin:/opt/soft/hive110/bin)
19/11/29 19:20:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
19/11/29 19:20:33 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist

Logging initialized using configuration in jar:file:/opt/soft/hive110/lib/hive-common-1.1.0-cdh5.14.2.jar!/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> drop database if exists mydemo;
OK
Time taken: 4.978 seconds
hive> create database mydemo;
OK
Time taken: 0.323 seconds
hive> use mydemo;
OK
Time taken: 0.025 seconds

开启hive如果遇到在安全模式中的错误 输入hadoop dfsadmin -safemode leave 命令退出安全模式,再重新开启hive即可。

你可能感兴趣的:(hive)