Hive的安装,
1.将hive的安装包上传到hadoop集群的一台节点上
解压到apps目录下
可以去官网上下载hive的安装包
将安装文件修改成 hive
mv apache-hive-1.2.1-bin/ hive
hive的文件结构:
2.修改配置文件
可以不需要修改配置,直接就启动hive,但是这样hive使用的数据库是默认的 derby 。
derby会在运行的当前目录下生成文件,启动目录不同,生成的数据信息文件也会放在不同的位置。
所以我们需要配置一个独立的MySQL作为它的数据库。
hive的conf目录下所有的配置文件:
在这个目录下,编辑一个文件 hive-site.xml:
往配置文件复制下面的内容:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
</configuration>
由于我的hive就是在mini3上,我想使用的数据库也在mini3上,所以配置数据库连接的路径使用的是localhost,在其他的服务器上,就配置对应的主机名。
MySQL的驱动包
要想连接MySQL,就需要有MySQL的驱动包,我们就需要将MySQL的驱动包放在hive的classpath目录下。
就是讲MySQL的驱动包放在hive的lib目录下。
如果没有就去search.maven网站下载
https://mvnrepository.com/
现在直接启动,还是会有一点错的。
ll ~/apps/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
jline是提供命令行这行这种功能的。
hadoop的jline版本比较低,hive里面的jline的版本比较新,我们可以将hadoop里面的jline删除,使用hive里面的jline替换。
hive虽然是一个数据仓库,但是不能用来支持联机在线业务。就是跟MapReduce一样用来离线数据分析的。数据仓库本质上也是一个离线的系统。
接下来就可以启动hive:
hive的启动时非常慢的,就像我们允许MapReduce程序时那样,即使是很小的文件,运行的速度也非常慢。
hive 的操作:
show databases;
hive中的所有的数据都是存储在HDFS上的,没有专门的存储格式(可支持Text,SqquenceFile,ParqueFile,RCFILE等)
hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析。
Hive与Hadoop的关系:
Hive利用HDFS存储数据,利用MapReduce查询数据
当我在hive里面创建一个数据库
hdfs会有变化:
MySQL里面装的是元数据 – (描述数据的数据)
可以进入配置的MySQL数据库,里面会多一个hive数据库,这个数据库里面会有很多表。
我们查看DBS 这张表:
里面放的就是元数据。
Hive thrif 服务的启动:
https://blog.csdn.net/qq_39839745/article/details/84313948
我开始就是直接启动
bin/hiveserver2
启动成功之后,再重新开启一个窗口:
执行下面的这条命令:
bin/beeline -u jdbc:hive2://localhost:10000 -n hadoop
我的hive是安装在本地的;
这就启动成功了,需要注意的是:
hiveserver2 服务启动非常慢,而且我都不知道它是什么时候启动成功了,所以我在另一个窗口得经常去连接。