文章目录
前言
- 什么是Hive?
Hive是基于Hadoop的数据仓库解决方案 - Hive的优缺点:
优点:
①、统一的元数据管理
Hive的元数据可以放在mysql上,表结构信息存储在HDFS上。
②、入门简单,类SQL
③、灵活性、扩展性
支持很多函数,支持UDF、自定义存储格式(orc…)
④、支持在不同的框架式运行(MapReduce,Spark…)
⑤、提供了一个简单的优化模型
⑥、适合离线数据处理、稳定可靠
⑦、有庞大活跃的社区,帮助更多的人能够使用hadoop
缺点:
①、Hive 的执行效率比较低,由于 hive 是基于 hadoop,Hadoop 本身是一个批
处理,高延迟的计算框架, 其计算是通过 MapReduce 来作业,具有高
延迟性
②、Hive 适合对非实时的、离线的、对响应及时性要求不高的海量数据批量计
算,即查询,统计分析。
③、不适合迭代算法。
一、环境搭建主要步骤
1.1 主要步骤
①、下载并解压
②、配置环境变量
③、修改配置文件
④、配置hive元数据管理
⑤、启动验证
1.2 解压文件
解压Hive安装包到指定文件夹;
1.3 文件改名以及warehouse的创建
1.4 配置hive-site.xml
进入根目录下的conf目录,ls之后并没有hive-site.xml,直接vi hive-site.xml,之后进行如下配置;
1.5 拷贝mysql驱动
完成上述操作后,需要将mysql的驱动加到hive的lib目录中;
1.6 配置环境变量
export JAVA_HOME=/opt/software/jdk180
export HADOOP_HOME=/opt/software/hadoop/hadoop260
export HIVE_HOME=/opt/software/hadoop/hive110
export ZK_HOME=/opt/software/hadoop/zookeeper345
export HBASE_HOME=/opt/software/hadoop/hbase120
export SQOOP_HOME=/opt/software/hadoop/sqoop146
export PATH=$SQOOP_HOME/bin:$HBASE_HOME/bin:$ZK_HOME/bin:$ZK_HOME/sbin:$HIVE_HOME/bin:$HIVE_HOME/lib:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
export CLASS_PATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export LOGDIR=$SQOOP_HOME/mylog/
配置完需要激活环境变量
source /etc/profile
1.7 Hive初始化
进入hive的bin目录下,初始化hive;
1.8 启动hive
是否启动日志根据自己需求来决定,一个服务一个RunJar
1.9 关闭进程
kill -9 进程号
二、安装流程文档
#HIVE
#解压并重命名为hive110,解压到software/hadoop目录下
[root@single hadoop]tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz -C /opt/software/hadoop/#download/hadoop目录下
[root@single hadoop]# mv hive-1.1.0-cdh5.14.2/ hive110#software/hadoop目录下
#新建warehouse目录在hadoop110上
[root@single hadoop110]# mkdir warehouse#在hive110下面创建目录 warehouse
#拷贝mysql驱动mysql-connector-java-5.1.32.jar到hive110/lib下面
[root@single hive110]# cp /opt/download/hadoop/mysql-connector-java-5.1.32.jar ../lib/
#配置hive-site.xml 在conf下面新建hive-site.xml
[root@single ~]# cd /opt/software/hadoop/hive110/conf/
[root@single conf]# vi hive-site.xml
#配置hive-site.xml
#新建的hive-site.xml复制下面的内容:记得改自己的IP
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/ xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/software/hadoop/hive110/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.221.140:3306/hive110?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>kb10</value>
</property>
</configuration>
#一共复制5对property标签,含义分别是
#本地仓库路径
#连接mysql字符串
#mysql连接驱动
#mysql连接账号
#mysql本地连接密码
#配置hive环境
[root@single warehouse]# cd ..
[root@single hive110]# vi /etc/profile
添加HIVE_HOME路径,最终如下内容:
export JAVA_HOME=/opt/software/jdk180
export HADOOP_HOME=/opt/software/hadoop/hadoop260
export HIVE_HOME=/opt/software/hadoop/hive110
export PATH=$HIVE_HOME/bin:$HIVE_HOME/lib:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
export CLASS_PATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
[root@single hive110]# source /etc/profile#激活
[root@single hive110]# echo $HIVE_HOME#查看
#启动hadoop,hive依赖于hadoop
[root@single warehouse]# start-all.sh
[root@single warehouse]# jps
#新开一个窗口启动mysql
#HIVE初始化
[root@single warehouse]# cd /opt/software/hadoop/hive110/bin/
[root@single bin]# ls
beeline ext hive hive-config.sh hiveserver2 metatool schematool
[root@single bin]# ./schematool -dbType mysql -initSchema #初始化,mysql建仓 pwd->/opt/software/hadoop/hive110/bin/
回车后看到schemaTool completed即表示初始化成功
#mysql相关的连接失败的话:cannot get schema version
hostname 查看本机的别名
mysql> use mysql
mysql> select host,user,password from user;出来的密码应该是一样的,不一样的话执行下面的流程
mysql> grant all on *.* to root@'single' identified by 'kb10';
mysql> flush privileges;授权激活
#启动并访问hive服务
./hive --service metastore#前台启动
./hive
#启动并访问hive2服务
#进入到bin目录下加./启动hive;
[root@single ~]# cd /opt/software/hadoop/hive110/bin/
[root@single bin]# ./hive --service metastore #会一直卡着
#切换到另一个窗口,进入bin目录退出./hive进入hive(类似mysql)
[root@single ~]# hive
#如果没有配置lib环境,加./启动hive;
[root@single ~]# cd /opt/software/hadoop/hive110/bin/
[root@single bin]# ./hive
#退出服务 关掉sql的那个窗口
#日志输出启动runjar,如果前面没配置lib的话,需要加./,或者再次配置lib
[root@single ~]# nohup hive --service metastore>hive.log 2>&1 & #日志
#不输入启动runjar
[root@single ~]# nohup hive --service hiveserver2>/dev/null 2>&1 & #指向null
#beeline启动runjar
[root@single ~]# beeline -u jdbc:hive2://192.168.221.140:10000 #