Hive安装、命令窗口的连接配置与使用介绍


一、Hive安装软件下载地址


二、Hive安装--外置 MySQL 版本

1、 准备好hadoop集群,准备好 MySQL(任意一台集群的机器上)

hadoop集群搭建:https://blog.csdn.net/weixin_41685388/category_9439573.html

Linux的MySQL安装:https://blog.csdn.net/weixin_41685388/article/details/102522730

2、 上传安装包

apache-hive-2.3.4-bin.tar.gz -->[hdp@hdp02 ~]$ 根目录下

在linux编辑窗口用alt+p 打开sftp插件:put -r 路径\文件  或者直接拖拽上传

3、 解压安装包

[hdp@hdp02 ~]$ mkdir apps
[hdp@hdp02 ~]$ tar -zxvf apache-hive-2.3.4-bin.tar.gz -C ~/apps/ 

4、 修改配置文件 

  •  [hdp@hdp02 ~]$ cd ~/apps/apache-hive-2.3.4-bin/conf/
  • [hdp@hdp02 conf]$ touch  hive-site.xml 
  • [hdp@hdp02 conf]$ vi hive-site.xml    #在新建的配置文件中写入下列代码信息
  • 说明一下代码:① mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true 如果mysql安装不在这台机上,如安装在hdp03机上,那么将localhost改为hdp03的主机ip或者主机映射名称;② hive.metastore.warehouse.dir  可选配置,该配置信息用来指定 Hive 数据仓库的数据存储在 HDFS 上的目录 。

<configuration>
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hivedb?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>
 <property>
   <name>hive.metastore.warehouse.dir</name>
   <value>/user/hive/warehouse</value>
   <description>hive default warehouse, if nessecory, change it</description>
 </property>
</configuration>

5、加入 MySQL 驱动包

  •  一定要加入 MySQL 驱动包(mysql-connector-java-5.1.40-bin.jar)该 jar 包放置在 hive 的根路径下的 lib 目录(下载--上传--复制) 
  • cp -p /home/hdp/mysql-connector-java-5.1.40-bin.jar  /home/hdp/apps/apache-hive-2.3.4-bin/lib/mysql-connector-java-5.1.40-bin.jar

6、配置环境变量

vi ~/.bashrc  在后面添加以下两行内容:

  • export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.3-bin
  • export PATH=$PATH:$HIVE_HOME/bin

保存退出。 最后不要忘记重启: source  ~/.bashrc 

7、验证是否安装Hive  : hive --help 

[hdp@hdp02 ~]$ hive --help       
Usage ./hive <parameters> --service serviceName <service parameters>
Service List: beeline cleardanglingscratchdir cli hbaseimport hbaseschematool help hiveburninclient hiveserver2 hplsql jar lineage llapdump llap llapstatus metastore metatool orcfiledump rcfilecat schemaTool version 
Parameters parsed:
  --auxpath : Auxiliary jars 
  --config : Hive configuration directory
  --service : Starts specific service/component. cli is default
Parameters used:
  HADOOP_HOME or HADOOP_PREFIX : Hadoop install directory
  HIVE_OPT : Hive options
For help on a particular service:
  ./hive --service serviceName --help
Debug help:  ./hive --debug --help

8、元数据库初始化

 [hdp@hdp02 ~]$ schematool  -dbType  mysql  -initSchema 

9、 启动 Hive 客户端 

[hdp@hdp02 ~]$  hive --service cli
# 或者
[hdp@hdp02 ~]$  hive

10.退出

hive> quit; 
# 或者
hive> exit; 

三、Hive 的命令窗口使用(三种连接方式 )

3.1、CLI 连接使用Hive

  • 直接输入命令:[hdp@hdp02 ~]$  hive
  • 即可使用,测试:hive> show databases;  #返回OK
  • 在apps/apache-hive-2.3.4-bin/conf/下的hive-site.xml文件中添加如下配置信息,实现显示当前数据库,及查询表的头信息配置。重新启动hive即可。(这里不配置CLI也是可以使用的)
  •  <property>
       <name>hive.cli.print.header</name>
       <value>true</value>
     </property> 
     <property>
       <name>hive.cli.print.current.db</name>
       <value>true</value>
     </property>
  • 接下来就可以直接进行相关操作了,感受一下
  • hive> show databases;
    OK
    default
    Time taken: 5.726 seconds, Fetched: 1 row(s)
    hive> create database demo01;
    OK
    Time taken: 0.366 seconds
    hive>create table demo01(id int, name string) row format delimited fields terminated by ",";
    ...
    OK
    Time taken: 0.369 seconds
    hive> show databases;
    OK
    default
    demo01
    Time taken: 5.111 seconds, Fetched: 2 row(s)
    hive> use demo01;
    OK
    Time taken: 0.031 seconds
    hive> insert into demo01 (id,name) values (1101,"zhangsan");
    ...
    OK
    Time taken: 42.906 seconds  #是不是非常非常慢,慢就对了,因为以后都会尽量避免写操作
    hive> select * from demo01;
    OK
    1101    zhangsan
    Time taken: 0.231 seconds, Fetched: 1 row(s)

3.2、jdbc(HiveServer2/beeline )连接使用Hive

(0)第一次连接前需要修改hadoop的两个配置文件

①修改 hadoop 集群的 hdfs-site.xml 配置文件:加入一条配置信息,表示启用 webhdfs

[hdp@hdp02 ~]$ cd /home/hdp/hadoop-2.7.7/etc/hadoop/
       [hdp@hdp02 hadoop]$ vi hdfs-site.xml

<property>
      <name>dfs.webhdfs.enabled</name>
      <value>true</value> 
</property> 

②修改 hadoop 集群的 core-site.xml 配置文件:加入两条配置信息:表示设置 hadoop 的代理用户 

配置解析: hadoop.proxyuser.hdp.hosts 配置成*的意义,表示任意节点使用 hadoop 集群的代理用户 hadoop 都能访问 hdfs 集群,hadoop.proxyuser.hdp.groups 表示代理用户的组所属 

[hdp@hdp02 hadoop]$ vi core-site.xml 

<property>
     <name>hadoop.proxyuser.hdp.hosts</name>
     <value>*</value>
</property>
<property>
      <name>hadoop.proxyuser.hdp.groups</name>
      <value>*</value>
</property>

③ 将修改过的集群发送到其他节点

  • [hdp@hdp02 hadoop]$ scp hdfs-site.xml core-site.xml hdp01:/home/hdp/hadoop-2.7.7/etc/hadoop/

  • ......

  • [hdp@hdp02 hadoop]$ scp hdfs-site.xml core-site.xml hdp04:/home/hdp/hadoop-2.7.7/etc/hadoop/

④ 重启集群

(1)、启动HiveServer2/beeline 

①先启动 hiveserver2 服务 (假如我的hive建立在那台机就在哪台机操作)

启动为前台:hiveserver2

启动为后台: nohup hiveserver2 1>/home/hdp/hiveserver.log 2>/home/hdp/hiveserver.err &

或者:nohup  hiveserver2  1>/dev/null  2>/dev/null  &

或者:nohup  hiveserver2  >/dev/null  2>&1  &

以上 3 个命令是等价的,第一个表示记录日志,第二个和第三个表示不记录日志 。1:表示标准日志输出, 2:表示错误日志输出 ,如果我没有配置日志的输出路径,日志会生成在当前工作目录,默认的日志名称叫做: nohup.xxx 

注意:如果使用启动为前台,那么启动后就不要动这个窗口了,然后在克隆一个该节点的操作窗口

[hdp@hdp02 hadoop]$ nohup hiveserver2 1>/home/hdp/hiveserver.log 2>/home/hdp/hiveserver.err &
[1] 13823
[hdp@hdp02 hadoop]$ jps
9920 ResourceManager
9811 NodeManager
13915 Jps
9501 DataNode
13823 RunJar

② 启动 beeline 客户端去连接: 

  • [hdp@hdp02 hadoop]$ beeline -u jdbc:hive2://hdp02:10000 -n hdp  #一步到位的启动[-u : 指定元数据库的链接信息 -n : 指定用户名和密码 ]
  • 或者:分步启动
  • [hdp@hdp02 hadoop]$ beeline   #开启beeline
  • beeline> !connect jdbc:hive2://hdp02:10000         #指定元数据库的链接信息
  • Enter username for jdbc:hive2://hdp02:10000: hdp      #用户名
  • Enter password for jdbc:hive2://hdp02:10000: ******     #密码
[hdp@hdp02 hadoop]$ beeline
......
Beeline version 2.3.4 by Apache Hive
beeline> !connect jdbc:hive2://hdp02:10000
Connecting to jdbc:hive2://hdp02:10000
Enter username for jdbc:hive2://hdp02:10000: hdp
Enter password for jdbc:hive2://hdp02:10000: ******
Connected to: Apache Hive (version 2.3.4)
Driver: Hive JDBC (version 2.3.4)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://hdp02:10000> 
  • 实际操作一下
0: jdbc:hive2://hdp02:10000> show databases;
+----------------+
| database_name  |
+----------------+
| default        |
| demo01         |
+----------------+
2 rows selected (2.024 seconds)
0: jdbc:hive2://hdp02:10000> use demo01;
No rows affected (0.188 seconds)
0: jdbc:hive2://hdp02:10000> show tables;
+-----------+
| tab_name  |
+-----------+
| demo01    |
+-----------+
1 row selected (0.277 seconds)
0: jdbc:hive2://hdp02:10000> select * from demo01;
+------------+--------------+
| demo01.id  | demo01.name  |
+------------+--------------+
| 1101       | zhangsan     |
+------------+--------------+
1 row selected (2.278 seconds)
0: jdbc:hive2://hdp02:10000> 

3.3、Web UI  连接使用Hive

这里由于不常用暂时就不再介绍,想要深入了解的同学百度一下,按照搭建步骤操作。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值