-
2020-12-14 21:07:04
追风赶月莫停留,平芜尽处是春山。
文章目录
环境
- VMware 12.0.1
- JDK 1.8.0
- Hadoop 2.8.5
- Zookeeper 3.4.10
- Intellij IDEA 2019.3.1
下载安装包,解压到合适位置:
- 将压缩包
apache-hive-2.3.3-bin.tar.gz
,通过上传软件上传至/opt/softwares
目录;
解压软件包并移动至/opt/modules/
下载传送门,提取码:g1hu
Hive 本地模式的搭建
一、配置相关的文件:
-
配置环境变量:
该文件位于/etc/profile
在该文件后面追加如下内容:export HIVE_HOME=/opt/modules/apache-hive-2.3.3-bin export PATH=$PATH:$HIVE_HOME/bin
打开终端运行命令:
source /etc/profile
运行命令hive --version
后若能输出当前Hive版本信息,则说明Hive环境变量配置成功。 -
关联Hadoop:
复制Hive目录/opt/modules/apache-hive-2.3.3-bin/conf
下的hive-env.sh.template
文件为hive-env.sh
,然后修改hive-env.sh
添加一下内容,来指定Hadoop的安装目录。export HADOOP_HOME=/opt/modules/hadoop-2.8.5 # Hadoop安装目录
-
创建数据仓库目录:
首先要启动Hadoop集群,然后依次执行以下命令来创建两个目录,并设置同组用户的权限。hadoop fs -mkdir /tmp hadoop fs -chmod a+w /tmp hadoop fs -mkdir /user/hive/warehouse hadoop fs -chmod a+w /user/hive/warehouse
如果提示/tmp文件夹存在,那么先执行
hadoop fs -rm -r /tmp
命令将其删除。然后再进行创建 -
初始化元数据信息:
进入Hive安装目录/opt/modules/apache-hive-2.3.3-bin
执行命令schematoll -dbType derby -initSchema
执行完后Hive在Hive安装目录下创建了一个叫metastore_db的Derby数据库 -
启动 Hive CLI:
进入metastore_db数据库所在的目录(即Hive安装目录)中执行hive
命令
二、安装并配置MySQL
- 执行
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
命令下载MySQL 5.6安装包 - 执行
rpm -ivh mysql-community-release-el7-5.noarch.rpm
命令进行解压 - 执行
yum install mysql-server
命令进行MySQL的安装。 - 执行
grep temporary password /var/log/mysqld.log
查看初始密码 - 执行
mysql -u root
并利用上一步得到的密码进行登录 - 执行
set global validate_password_policy=0;
和set global validate_password_length=4;
命令修改MySQL密码策略。 - 执行
set password for root@localhost = password('123456');
把密码改成123456(也可以自行改成其他的)。 - 执行
exit;
退出MySQL。 - 执行
service mysqld restart
命令,重启mysql服务。 - 执行
mysql -u root -p
命令,并利用刚才设置的密码登录mysql - 执行
create database hive_db;
命令创建一个名叫hive_db的数据库。 - 执行
create user hive IDENTIFIED by 'hive';
命令创建一个名叫hive的用户,密码是hive。 - 执行
grant all privileges on hive_db.* to hive@'centos01' identified by 'hive';
命令为其赋予全局外部访问权限。 - 执行
flush privileges;
命令刷新内存 - 执行
exit;
命令退出mysql
三、配置Hive
- 上传驱动包:
上传Java连接MySQL的驱动包mysql-connector-java-5.1.44-bin.jar
到Hive安装目录下的lib文件夹(/opt/modules/apache-hive-2.3.3-bin/lib
)中。
下载传送门,提取码:5vcd - 修改配置文件:
复制Hive目录/opt/modules/apache-hive-2.3.3-bin/conf
下的hive-default.xml.template
文件为hive-site.xml
,然后把原始内容清空,最加入以下配置。<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--MySQL数据库连接信息--> <property><!--连接 MYSQL的驱动类--> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property><!--MySL连接地址,此处连接远程数据库,可根据实际情况进行修改--> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://centos01:3306/hive_db?createDatabaseIfNotExist=true</value> </property> <property><!-- MYSQL用户名--> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property><!-- MYSQL密码--> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> </property> </configuration>
- 初始化元数据:
执行schematool -dbType mysql -initSchema
命令初始化元数据。
若输出:
则证明初始化完成Initialization script completed schemaTool completed
- 启动命令行:
任意目录执行hive
即可
本地模式搭建完成。
Hive 远程模式的搭建
将centos01节点作为Hive的服务端,centos02和centos03节点作为Hive的客户端
- 安装Hive客户端:
执行scp -r /opt/modules/apache-hive-2.3.3-bin/ root@centos02:/opt/modules/
命令,将hive复制到centos02节点上。
执行scp -r /opt/modules/apache-hive-2.3.3-bin/ root@centos03:/opt/modules/
命令,将hive复制到centos03节点上。 - 修改配置文件:
修改centos02节点上的Hive安装目录/opt/modules/apache-hive-2.3.3-bin/conf
下的配置文件hive-site.xml
,清除之前的配置属性,添加以下配置:<?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>/user/hive/warehouse</value> </property> <property> <name>hive.metastore.local</name> <value>false</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://centos01:9083</value> </property> </configuration>
- 启动Metastore Server:
在centos01节点上执行hive --service metastore &
控制台部分启动日志信息如下:
Starting Hive Metastore Server
执行jps
命令查看进程会有一个名为RunJar
的进程 - 访问Hive
在centos02节点上进入安装目录(/opt/modules/apache-hive-2.3.3-bin/
)中执行bin/hive
命令启动远程hive命令行。 - 测试Hive远程访问:
在centos01节点上进入Hive命令行模式,执行create table student (id INT, name STRING);
命令创建一个表
在centos02和centos03节点上分别执行show tables;
命令,若能查到student表则证明Hive远程模式搭建成功。
Hive命令行操作
使用命令
hive
进入hive命令行操作数据库操作
一、创建数据库
语法:
create database 数据库名称
例如:使用create database hive1
命令创建一个叫hive1的数据库二、修改数据库
语法:
ALTER DATABASE 数据库名称 SET DBPROPERTIES (property_name=property_value,...);
语法:ALTER DATABASE 数据库名称 SET OWNER user_or_role;
三、选择数据库
语法:
use 数据库名称;
例如:use hive1;
四、显示数据库
show databases;
表操作
一、创建表
语法:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]
二、查看表结构
语法:
desc 表名;
例如:desc student;
三、向表中插入数据
语法:
insert into 表名(property_name,property_name,...) values(property_value,property_value,...);
例如:insert into student(id,name) values(001,张三);
四、查询表中的数据
语法:
select * from 表名;
例如:select * from student;
查询student表中的所有内容
例如:select name from student;
查询student表中的name
例如:select id from student;
查询student表中的id五、本地文件导入Hive
先创建一个可以从文件导入数据的表 语法:
create table 表名(property_name property_type, property_name property_type,...) ROW FORMAT DELIMITED FIELDS TERMINA TED BY '分隔符';
例如:create table student(id INT, name STRING) ROW FORMAT DELIMITED FIELDS TERMINA TED BY '\t';
创建了一个student表,里面有id和name,并且导入的时候以制表符为分割符。六、删除表
语法:
drop table 表名;
例如:drop table student;
删除student表Hive JDBC 操作
一、配置Maven依赖
-
新建一个叫做
Hive_demo
的Maven项目在pom.xml
中引入以下java api依赖包<dependencies> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>2.3.3</version> </dependency> </dependencies>
-
打开设置
File-->settings-->Maven-->Importing
在Import Maven projects automatically
前面打勾。等待下载完成。
二、创建Java Class
import java.sql.*; public class Select { public static void main(String[] args) { String connectionURL = "jdbc:hive1://centos01:10000"; String drivername = "org.apache.hive.jdbc.HiveDriver"; String username = "hive"; String password = "hive"; try { Class.forName(drivername); } catch (ClassNotFoundException e) { e.printStackTrace(); System.exit(1); } try { Connection con = DriverManager.getConnection(connectionURL, username, password); if(con != null) { System.out.println("Connected"); } else { System.out.println("Not Connected"); } Statement stmt = con.createStatement(); String sql; ResultSet res; sql = "select * from u_data limit 10"; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(String.valueOf(res.getString(1)) + "\t" + res.getString(2)); } } catch(SQLException se) { se.printStackTrace(); } } }
若有不正确的地方还请批评指正。
更多相关内容 -
远程连接hive
2019-04-07 22:05:12 -
spark连接hive
2022-05-06 21:22:34spark连接hive: shell窗口下: 将core-site.xml、hdfs-site.xml、hive-site.xml复制到spark下的conf目录下,如果需要其它第三方包支持的,将第三方包放置jars下,例如:lzo压缩包,如果core-site.xml配置了相关lzo...spark连接hive: shell窗口下:
将core-site.xml、hdfs-site.xml、hive-site.xml复制到spark下的conf目录下,如果需要其它第三方包支持的,将第三方包放置jars下,例如:lzo压缩包,如果core-site.xml配置了相关lzo相关压缩,则将lzo的jar放置spark目录的jars中,然后
重新启动spark-shell即可。 -
CentOS7搭建远程连接hive的JDBC的环境
2021-10-14 22:13:39关于远程使用hiveserver2以及hive的JDBC环境的搭建hive远程连接JDBC的环境搭建
一、 环境
centos版本:7
hive版本:2.3.7
hadoop版本:2.10.1
mysql版本:5.7.35
java版本:1.8.0_231二、先下载需要用到的环境
链接: link.
hive的bin包、mysql的驱动包、hadoop版本包、java包,mysql我使用的是yum下载所以就没有包提供了。三、开始安装
首先讲hive的包拉到虚拟机里比如我的包在如下位置:
然后我们使用如下命令:tar -zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/MySoft/MySoftWare
将包安装到指定目录
然后我们改个名,使用如下命令:mv apache-hive-2.3.7-bin.tar.gz hive-2.3.7
改完名之后我们到/etc/profile.d 里面创建一个文件vim hive.sh,写这个文件是为了方便后续使用,相当于windows的环境变量的设置
文件内容:
使用:source /etc/profile更新配置或者单更新hive.sh也可以
然后用hive --version看看是否有如下信息,有的话代表完成了hive环境变量的配置。更新完文件之后设置hive的配置文件 进入到$HIVE_HOME/conf目录下($HIVE_HOME是我们刚刚配置的hive的路径) 可以看到这几个文件:
四、配置文件
我们首先配置hive-site.xml文件,这里文件一开始是没有的,我们要用以下命令通过模版创建出来 cp hive-default.xml.template hive-default.xml
以及 cp hive-env.sh.template hive-env.sh我们先写hive-env.sh文件
配置如下:
加入如上四条就可以了再配置hive-site.xml文件
我这里用的是nodepad++根据name查找然后再进行修改的,大家也可以尝试<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!--数据库连接URL--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.37.9:3306/hive?createDatabaseIfNotExist=true&useSSL=false</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>123456</value> </property> <!--以下这三个配置我也不知道是干嘛的--> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <!-- 这是hiveserver2的配置--> <!--远程连接的端口号,默认为10000--> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <!--远程连接的主机名或ip地址,建议写主机名--> <property> <name>hive.server2.thrift.bind.host</name> <value>192.168.37.9</value> </property> <!--以下两个用户的配置要在hadoop的core-site.xml也配置,后续会说明--> <!--远程连接的用户--> <property> <name>hive.server2.thrift.client.user</name> <value>root</value> <description>Username to use against thrift client. default is 'anonymous'</description> </property> <!--远程连接的密码--> <property> <name>hive.server2.thrift.client.password</name> <value>123456</value> <description>Password to use against thrift client. default is 'anonymous'</description> </property> </configuration>
还有一个日志问题,在$HIVE_HOME下创建一个tmp文件夹,并给他权限 chmod -R 777 $HIVE_HOME/tmp 再在这个tmp下新建一个文件夹再赋予权限 chmod -R 777 $HIVE_HOME/tmp/root 然后要将hive-site.xml的${system:java.io.tmpdir}替换成hive的路径/tmp 例如:/opt/MySoft/MySoftWare/hive-2.3.7/tmp 再将${system:user.name} 替换成root 回到$HIVE_HOME/conf 复制hive-log4j2.properties.template 为hive-log4j2.properties cp hive-log4j2.properties.template hive-log4j2.properties 进入将${system:java.io.tmpdir} 也更改成hive的路径/conf 还有${system:user.name} 替换成root 以上就完成了对hive进行的配置,接下来要将mysql的驱动包丢到$HIVE_HOME/lib下面,这样子才能完成元数据库的初始化。 移动好mysql的驱动包之后运行如下命令:schematool -dbType mysql -initSchema 如果执行不了可能是hive的环境变量不对,可以看看之前的配置。 这时出现如下信息就是成功了!
然后就可以输入hive看看hive是不是成功了。如果是像我这样就是成功了:
五、使用beeline连接hiveserver2
hive成功之后,我们要配置一下hadoop下面的配置文件core-site.xml,添加如下配置让beeline可以成功连接hiveserver2:
<!--以下四个配置是为了让我的主机能够有访问hadoop的权限--> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.blueautumn.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.blueautumn.groups</name> <value>*</value> </property> <!--以下的配置是为了让hadoop知道有这样一个用户--> <property> <name>hive.server2.thrift.client.user</name> <value>root</value> <description>Username to use against thrift client. default is 'anonymous'</description> </property> <property> <name>hive.server2.thrift.client.password</name> <value>123456</value> <description>Password to use against thrift client. default is 'anonymous'</description> </property>
配置完之后我们重启hadoop服务器,然后输入以下命令来启动metastore服务
hive --service metastore &
像我这样卡在这里是正常的,因为启动的是一个服务,也可以输入别的可以后台启动,有需要的话可以自行搜索。接下来就复制一个会话,输入以下命令启动hiveserver2
hive --service hiveserver2 & 或者 hiveserver2 &
像我这样卡住也是正常的。
然后用jps可以看到现在有两个Runjar存在
一个是metastore服务一个是hiveserver2服务现在就可以进行beeline连接hiveserver2了
输入命令:beeline -u jdbc:hive2://192.168.37.9:10000 -n root -p 123456
获取先输入beeline 进入到beeline的命令行之后再输入:
!connect jdbc:hive2://192.168.37.9:1000 -n root -p 123456
六、参考
之前参考过的地方:
链接: https://blog.csdn.net/leanaoo/article/details/83351240.
链接: https://blog.csdn.net/weixin_34356138/article/details/92424900.第一次做博客,希望有问题大家可以指出~~~~
以上是我这两天搭建环境的时候整理出来的,因为我自己卡住了很久,所以我想把这个分享出来,这样有人需要的话也可以很快上手,谢谢大家~~~ -
连接 Hive 的四种方法
2020-03-02 15:29:42$HIVE_HOME/bin/hive(连接命令) HiveServer2 and Beeline $HIVE_HOME/bin/hiveserver2(h2的启动命令) $HIVE_HOME/bin/beeline -u jdbc:hive2://$H2_HOST:$H2_PORT(连接命令) HCatalog $HIVE_HOME/bin/h... -
通过远程jdbc方式连接到hive数据仓库
2017-07-16 23:28:501.启动hiveserver2服务器,监听端口10000 $>hive --service hiveserver2 & ...2.通过beeline命令行连接到hiveserver2 $>beeline //进入beeline命令行(于hive --service beeline) $beeline>!help //查看帮助 $ -
Hive学习之路 (五)hive使用beeline配置远程连接
2021-06-27 15:18:53hive以hadoop集群为基础,提供hdfs的SQL支持; hive一般可以以mysql为元数据存储,默认...1,在hive服务的安装节点的hive-site.xml配置文件中添加以下配置,配置beeline的远程访问用户名和密码 hive.serv... -
hive的访问:通过JDBC远程连接hive数据仓库
2018-08-19 11:25:46远程访问:通过JDBC连接数据仓库 支持并发访问 启动hiveserver2服务:查看该命令可知hiveserver2,等价于hive --service hiveserver2 & [xiaoqiu@s150 /soft/hive/bin]$ cat hiveserver2 #... -
Windows中使用cmd命令行连接远程Linux
2020-12-02 09:47:56目前市场流行的远程连接工具众多,很多同学们在学习的时候一上来就学习的是使用工具连接 , 忘记了Windows自带的cmd也可以使用ssh/sftp来连接操作远程Linux,话不多说 , 来看一看怎么操作吧! 1,测试电脑是否已经内置了 ... -
使用java(eclipse)远程连接hive
2021-03-03 14:44:30先启动mysql (sevice mysql start),然后启动hive远程服务,输入:./hive --service hiveserver2 即可然后命令行会显示等待输入,不用管了这里了,进入第二步吧;2.引入jar包到项目中jar包包括:apache-hive-1.2.1-... -
PySpark 连接Hive
2020-05-14 14:34:24文章目录简介环境搭建与效果演示更细节的搭建方法搭建HDFS、Spark或hive的前提已经有了远程可访问的测试集群搭建hadoop2.7.2修改hadoop配置格... -
idea连接hive
2022-01-25 15:53:36记得打开10000端口,得使用这个端口远程连接hive: sudo ufw allow 10000 idea中database新建hive的data source 下载一下需要的driver文件: 填写用户名和密码进行登录,我这里有点疑问,因为我要连接的是hive,... -
beeline连接Hive
2021-02-26 10:01:42HiveServer2提供了一个新的命令行工具Beeline,它基于SQLLine CLI的JDBC客户端。...Beeline使用JDBC连接到HiveServer2时,如果显示User: root is not allowed to impersonate hive,是因为远程访问Had -
Presto连接Hive
2018-10-26 08:20:06接前一篇文章,这里只说怎样连接Hive。 配置 Hive Connector etc/catalog/hive.properties connector.name=hive-hadoop2 hive.metastore.uri=thrift://<hive_metastore_ip>:9083 hive.config.... -
hive操作--命令行模式和交互模式
2020-12-08 21:24:54目录1、HiveServer和HiveServer22、...Hive 内置了 HiveServer 和 HiveServer2 服务,两者都允许客户端使用多种编程语言进行连接,但是HiveServer 不能处理多个客户端的并发请求,所以产生了 HiveServer2。 HiveServ -
hive与mysql的连接
2018-12-10 19:57:38由于hive的内嵌安装方式是将元数据存储在derby中,每次打开时候都会在其当前工作目录下创建一个derby文件和一个m**文件很不方便,而且这种方式是单用户连接模式,所以我们用hive的本地安装模式,即将hive的元数据... -
Hive 安装 以及使用 DataGrip 连接 Hive
2021-06-13 14:13:13Hive 安装 以及使用 DataGrip 连接 HiveHive 安装说明Hive 安装前的准备Hive 安装Hive 启动Hive 安装常见的问题 Hive 安装说明 ① 环境说明 Hadoop 环境已通过腾讯云服务器完成搭建,我是将 hive 安装到 该 hadoop ... -
Hive远程模式搭建
2020-03-21 11:26:41基于Hadoop2.8.5的数据仓库Hive远程模式搭建 远程模式分为客户端和服务器端两部分,服务器的配置与本地模式相同,客户端需要单独配置。远程模式是将Metastore分离出来,作为一个单独的进程,并且可以部署多个,运行与... -
【Docker】安装Presto连接Hive、mysql、oracle、postgresql、SQL server等7种类型数据库
2022-06-14 11:37:54本文章向大家介绍Docker安装Presto连接Hive,主要包括Docker安装Presto连接Hive使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Presto 是一个开源分布式 SQL 查询... -
JDBC连接hive的配置说明
2021-12-23 14:23:32hive先验hive简介thrift协议hive本地运行JDBC访问 hive简介 https://developer.aliyun.com/article/100911 1 特点: 一次写入,多次读出; 处理海量数据; hdfs存储,mr处理; 对实时性要求低; … 2 基本组成 用户... -
hive使用beeline配置远程连接
2020-12-20 01:26:22hive以hadoop集群为基础,提供hdfs的SQL支持;hive一般可以以mysql为元数据存储,默认...实现目标:在非集群节点上敲beeline命令,直接进入到hive的命令行1,在hive服务的安装节点的hive-site.xml配置文件中添加以下... -
关于hive的单机模式和远程服务器模式
2021-03-07 23:31:28hive配置mysql单机模式将hive安装在opt目录下cd /opt/hive-2.3.4/confmv hive-default.xml.template hive-site.xml(必须改成这个名字)vi hive-site.xml 删除原来的配置信息写入如下配置:hive.metastore.warehouse.... -
Hive概念、架构、启动方式、基本命令
2022-04-10 19:30:27Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言... -
两个可以连接Hive的可视化工具
2018-11-13 14:30:44这个工具可以说是非常好用的,既可以连接Hive 有可以连接Mysql,如果你还在寻找sqlyog的破解版,我跟你说,这款工具绝对超sqlyog一万倍,强烈推荐!!!!,关键是他还集成了navicat的ER图关系,navicat也都用过,... -
关于Hive命令的7个小技巧,你都清楚吗?
2020-11-22 01:17:33前言 最近在看冰河大佬写的《海量数据处理与大数据技术实战》,该书涵盖以Hadoop为主的多款大数据技术框架实战的内容,兼顾...在Hive提供的所有连接方式中,命令行界 -
通过hiveserver远程服务构建hive web查询分析工具
2020-12-22 07:06:36(1)hive 三种启动方式及用途,本文主要关注通过hiveserver(可jdbc连接)的方式启动1, hive命令行模式,直接输入/hive/bin/hive的执行程序,或者输入 hive --service cli用于linux平台命令行查询,查询语句基本跟...