当前位置:   article > 正文

Hive的安装和更为Hive的数据库为MySQL,使用JDBC连接Hive_hive mysql5.7.41 jdbc

hive mysql5.7.41 jdbc

目录

前言:

Hive的安装:

更为Hive的数据库为MySQL:

多窗口测试:

HiveJDBC访问:


前言:

首先Hive会将数据存储在HDFS上,Hive的本质是将HQL转化成MapReduce,Hive还需要YARN进行资源调度,所以安装Hive的前提是,你已经搭建好了Hadoop集群,关于Hadoop集群的搭建,请参见下面的这篇文章:

15分钟,搭建Hadoop集群

Hive是运行在Hadoop的集群上的,我们并不需要搭建Hvie集群,只要一台机器安装Hive即可。下面开始Hive的安装:

Hive的安装:

  1. 1,去官网下载一下hive的jar包,拖到linux的software目录下:将其解压到module目录下
  2. [isea@hadoop101 software]$ ll
  3. 总用量 575068
  4. -rw-rw-r--. 1 isea isea 92834839 11月 30 13:35 apache-hive-1.2.1-bin.tar.gz
  5. -rw-rw-r--. 1 isea isea 197657687 11月 14 17:55 hadoop-2.7.2.tar.gz
  6. -rw-rw-r--. 1 isea isea 185515842 11月 14 17:55 jdk-8u144-linux-x64.tar.gz
  7. -rw-rw-r--. 1 isea isea 77807942 11月 30 13:35 mysql-libs.zip
  8. -rw-rw-r--. 1 isea isea 35042811 11月 28 16:39 zookeeper-3.4.10.tar.gz
  9. [isea@hadoop101 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
  10. 2,将apache-hive-1.2.1-bin目录修改为hive
  11. [isea@hadoop101 module]$ ll
  12. 总用量 20
  13. drwxrwxr-x. 8 isea isea 4096 11月 30 13:39 apache-hive-1.2.1-bin
  14. drwxrwxr-x. 3 isea isea 4096 11月 28 15:05 HA
  15. drwxr-xr-x. 11 isea isea 4096 11月 28 15:03 hadoop-2.7.2
  16. drwxr-xr-x. 8 isea isea 4096 7月 22 2017 jdk1.8.0_144
  17. drwxr-xr-x. 11 isea isea 4096 11月 28 17:04 zookeeper-3.4.10
  18. [isea@hadoop101 module]$ mv apache-hive-1.2.1-bin/ hive
  19. [isea@hadoop101 module]$ ll
  20. 总用量 20
  21. drwxrwxr-x. 3 isea isea 4096 11月 28 15:05 HA
  22. drwxr-xr-x. 11 isea isea 4096 11月 28 15:03 hadoop-2.7.2
  23. drwxrwxr-x. 8 isea isea 4096 11月 30 13:39 hive
  24. drwxr-xr-x. 8 isea isea 4096 7月 22 2017 jdk1.8.0_144
  25. drwxr-xr-x. 11 isea isea 4096 11月 28 17:04 zookeeper-3.4.10
  26. 3,修改conf目录下的hive-env.sh.template 为hive-env.sh,并配置该文件如下:
  27. [isea@hadoop101 conf]$ cp hive-env.sh.template hive-env.sh
  28. # HADOOP_HOME=${bin}/../../hadoop
  29. HADOOP_HOME=/opt/module/hadoop-2.7.2
  30. # Hive Configuration Directory can be controlled by:
  31. # export HIVE_CONF_DIR=
  32. export HIVE_CONF_DIR=/opt/module/hive/conf
  33. 4,群起集群
  34. [isea@hadoop101 conf]$ start-dfs.sh
  35. [isea@hadoop102 ~]$ start-yarn.sh
  36. 5,启动hive
  37. [isea@hadoop101 hive]$ bin/hive
  38. Logging initialized using configuration in jar:file:/opt/module/hive/lib/hive-common-1.2.1.jar!/hive-log4j.properties
  39. hive>

如此一来,我们就完成了hive的安装。

更为Hive的数据库为MySQL:

Hive的Metastore默认存储在自带的derby数据库中,该数据并不支持并发的操作,不能多个客户端同时访问Hive,我们现在将该数据库更换为MySQL:

  1. 1,检查该节点上是否安装了mysql 如果安装了将其卸载:
  2. [isea@hadoop101 software]$ rpm -qa|grep mysql
  3. mysql-libs-5.1.73-7.el6.x86_64
  4. [isea@hadoop101 software]$ sudo rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
  5. [isea@hadoop101 software]$ unzip mysql-libs.zip
  6. Archive: mysql-libs.zip
  7. creating: mysql-libs/
  8. inflating: mysql-libs/MySQL-client-5.6.24-1.el6.x86_64.rpm
  9. inflating: mysql-libs/mysql-connector-java-5.1.27.tar.gz
  10. inflating: mysql-libs/MySQL-server-5.6.24-1.el6.x86_64.rpm
  11. 2,将实现准备好的mysql(去官网下载)拖到linux下的software目录下,并将其解压在当前的目录,并安装MySQL服务器
  12. [isea@hadoop101 software]$ cd mysql-libs
  13. [isea@hadoop101 mysql-libs]$ ll
  14. 总用量 76048
  15. -rw-rw-r--. 1 isea isea 18509960 3月 26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
  16. -rw-rw-r--. 1 isea isea 3575135 12月 1 2013 mysql-connector-java-5.1.27.tar.gz
  17. -rw-rw-r--. 1 isea isea 55782196 3月 26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm
  18. [isea@hadoop101 mysql-libs]$ sudo rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
  19. 注意下面的信息:
  20. A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
  21. You will find that password in '/root/.mysql_secret'.
  22. 查看该问价下面的内容,一会使用这个密码登录root的mysql
  23. [isea@hadoop101 mysql-libs]$ sudo cat /root/.mysql_secret
  24. # The random password set for the root user at Fri Nov 30 14:00:19 2018 (local time): 6bF9JBHldRZTdq8P
  25. 3,启动mysql服务器,并开始安装客户端
  26. [isea@hadoop101 mysql-libs]$ sudo service mysql start
  27. Starting MySQL. [确定]
  28. [isea@hadoop101 mysql-libs]$sudo rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
  29. 4,使用临时密码登录,设置新密码之后,退出之后在重新登录:
  30. [isea@hadoop101 mysql-libs]$ mysql -uroot -p6bF9JBHldRZTdq8P
  31. mysql> set password = password('isea');
  32. Query OK, 0 rows affected (0.06 sec)
  33. mysql> exit
  34. Bye
  35. [isea@hadoop101 mysql-libs]$ mysql -uroot -pisea
  36. mysql>
  37. 5,配置只要是用户+密码,在任何机器上都能登录MySQL数据库
  38. mysql> use mysql
  39. Database changed
  40. mysql> select user,host,password from user;
  41. +------+-----------+-------------------------------------------+
  42. | user | host | password |
  43. +------+-----------+-------------------------------------------+
  44. | root | localhost | *B1B27D3388A6C6CEC082FC5FFB8182B7040BEA70 |
  45. | root | hadoop101 | *3E63365D452A91A80F85B144900D0300B5115268 |
  46. | root | 127.0.0.1 | *3E63365D452A91A80F85B144900D0300B5115268 |
  47. | root | ::1 | *3E63365D452A91A80F85B144900D0300B5115268 |
  48. +------+-----------+-------------------------------------------+
  49. 4 rows in set (0.00 sec)
  50. mysql> update user set host='%' where host='localhost';
  51. mysql> delete from user where Host='hadoop101';
  52. mysql> delete from user where Host='127.0.0.1';
  53. mysql> delete from user where Host='::1';
  54. mysql> flush privileges;
  55. Query OK, 0 rows affected (0.00 sec)
  56. 6,将Hive的元数据配置到Mysql
  57. 将驱动解压到当前的目录,cd进入解压之后的目录,将jar包拷贝到hive的lib目录下
  58. [isea@hadoop101 mysql-libs]$ tar -zxvf mysql-connector-java-5.1.27.tar.gz
  59. [isea@hadoop101 mysql-libs]$ cd mysql-connector-java-5.1.27
  60. [isea@hadoop101 mysql-connector-java-5.1.27]$ ll
  61. 总用量 1272
  62. -rw-r--r--. 1 isea isea 47173 10月 24 2013 build.xml
  63. -rw-r--r--. 1 isea isea 222520 10月 24 2013 CHANGES
  64. -rw-r--r--. 1 isea isea 18122 10月 24 2013 COPYING
  65. drwxr-xr-x. 2 isea isea 4096 1130 14:19 docs
  66. -rw-r--r--. 1 isea isea 872303 10月 24 2013 mysql-connector-java-5.1.27-bin.jar
  67. -rw-r--r--. 1 isea isea 61423 10月 24 2013 README
  68. -rw-r--r--. 1 isea isea 63674 10月 24 2013 README.txt
  69. drwxr-xr-x. 7 isea isea 4096 1024 2013 src
  70. [isea@hadoop101 mysql-connector-java-5.1.27]$ cp mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/
  71. 7,在hive的conf目录下创建一个hive-site.xml,添加内容如下:
  72. [isea@hadoop101 conf]$ cat hive-site.xml
  73. <?xml version="1.0"?>
  74. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  75. <configuration>
  76. <property>
  77. <name>javax.jdo.option.ConnectionURL</name>
  78. <value>jdbc:mysql://hadoop101:3306/metastore?createDatabaseIfNotExist=true</value>
  79. <description>JDBC connect string for a JDBC metastore</description>
  80. </property>
  81. <property>
  82. <name>javax.jdo.option.ConnectionDriverName</name>
  83. <value>com.mysql.jdbc.Driver</value>
  84. <description>Driver class name for a JDBC metastore</description>
  85. </property>
  86. <property>
  87. <name>javax.jdo.option.ConnectionUserName</name>
  88. <value>root</value>
  89. <description>username to use against metastore database</description>
  90. </property>
  91. <property>
  92. <name>javax.jdo.option.ConnectionPassword</name>
  93. <value>isea</value>
  94. <description>password to use against metastore database</description>
  95. </property>
  96. </configuration>

多窗口测试:

此时连接MySQL数据库的话,会发现了多了一个Metastore数据库: 

  1. [isea@hadoop108 ~]$ mysql -uroot -p
  2. Enter password:
  3. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  4. [isea@hadoop108 ~]$ mysql -uroot -p
  5. Enter password:
  6. Welcome to the MySQL monitor. Commands end with ; or \g.
  7. mysql> show databases;
  8. +--------------------+
  9. | Database |
  10. +--------------------+
  11. | information_schema |
  12. | metastore |
  13. | mysql |
  14. | performance_schema |
  15. | test |
  16. +--------------------+
  17. 5 rows in set (0.05 sec)

使用两个窗口连接Hive: 

以上就是我们使用CLI的方式来连接Hive,下面我们介绍一下使用JDBC的方式来访问Hive:

HiveJDBC访问:

  1. 1,开启hiveserver2 在 后台的服务
  2. [isea@hadoop108 ~]$ cd /opt/module/hive/
  3. [isea@hadoop108 hive]$ bin/hiveserver2 &
  4. [1] 6171
  5. 2,启动beeline,并使用beeline来连接hiveserver2 :
  6. [isea@hadoop108 hive]$ bin/beeline
  7. Beeline version 1.2.1 by Apache Hive
  8. beeline> !connect jdbc:hive2://hadoop108:10000
  9. Connecting to jdbc:hive2://hadoop108:10000
  10. Enter username for jdbc:hive2://hadoop108:10000: isea
  11. Enter password for jdbc:hive2://hadoop108:10000:
  12. Connected to: Apache Hive (version 1.2.1)
  13. Driver: Hive JDBC (version 1.2.1)
  14. Transaction isolation: TRANSACTION_REPEATABLE_READ
  15. 0: jdbc:hive2://hadoop108:10000> show databases;
  16. +----------------+--+
  17. | database_name |
  18. +----------------+--+
  19. | default |
  20. +----------------+--+
  21. 1 row selected (0.3 seconds)

以上我们就完成了使用JDBC 连接了Hive。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/904304
推荐阅读
相关标签
  

闽ICP备14008679号