Hive

hive官网

https://hive.apache.org/

一、Hive远程数据库模式安装

1、下载hive安装包
https://archive.apache.org/dist/hive/hive-3.1.0/apache-hive-3.1.0-bin.tar.gz
2、修改环境变量
vi /etc/profile

export HIVE_HOME=/opt/hive-3.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile
3、修改配置文件,目录apache-hive-3.1.0-bin/conf
//修改文件名称,文件名称必须是hive-site.xml
mv hive-default.xml.template hive-site.xml
 
//增加配置:
进入到文件之后,将文件原有配置项删除,添加下面配置,并修改成实际的参数

<configuration>
 <property>
   <name>hive.metastore.warehouse.dir</name>
   <value>/opt/hive/warehouse</value>
 </property>
 <property>
   <name>javax.jdo.option.ConnectionURL</name>
   <value>jdbc:mysql://localhost:3306/hive?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>123456</value>
 </property>
</configuration>
4、添加MySQL的驱动包拷贝到lib目录
5、初始化元数据库
bin/schematool -dbType mysql -initSchema
6、hiveService2后台启动
nohup hiveserver2 > /dev/null 2>&1 &
后台启动hive的远程数据库服务metastore
nohup hive --service metastore > /dev/null 2>&1 &
进入到hive的cli窗口:hive
hive
7、beeline连接hive
beeline -u jdbc:hive2://localhost:10000 -n 用户名 -p 密码

beeline> !connect jdbc:hive2://localhost:10000 -n 用户名 -p 密码
使用代码jdbc连接
DriverManager.getConnection("jdbc:hive2://node04:10000/default", "root", "");
二、hive命令
beeline -u jdbc:hive2://ip:port -n hvie -p pwd             beeline连接

show databases;                                            显示所有数据库
use dbName;                                                进入某个数据库
show tables;                                               显示所有表
desc tableName;                                            显示表结构
show partitions tableName;                                 显示表分区

create schema myDb;                                        创建数据库
drop database myDb;                                        删除数据库

create table student(id int);                              创建表
drop table student;                                        删除表
create view name as select * from t;                       创建视图

hive默认没有开启updatedelete操作                           删除/更新
hive关联的hadoop路径有变动,按照如下方式更改
#利用hive自带的工具执行
metatool -updateLocation <new-location> <old-location>

#例如:
metatool -updateLocation hdfs://master:9000/  hdfs://master:9000/
hive支持更新删除的表操作
conf/hive-site.xml追加如下配置
<property>
  <name>hive.support.concurrency</name>
  <value>true</value>
</property>
<property>
  <name>hive.enforce.bucketing</name>
  <value>true</value>
</property>
<property>
  <name>hive.exec.dynamic.partition.mode</name>
  <value>nonstrict</value>
</property>
<property>
  <name>hive.txn.manager</name>
  <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>
<property>
  <name>hive.compactor.initiator.on</name>
  <value>true</value>
</property>
<property>
  <name>hive.compactor.worker.threads</name>
  <value>1</value>
</property>
<property>
  <name>hive.in.test</name>
  <value>true</value>
</property>

--创建支持更新、删除的表:
create table student_info(id int, name string, age int, address string)
clustered by (id) into 1 buckets row format delimited fields
terminated by ',' stored as orc TBLPROPERTIES('transactional'='true');
--添加数据
insert into student values(2,'张三02',26,'深圳市南山区');
insert into student_info select * from student;
--更新数据
update student_info set age=4 where id=1;
--删除数据
delete from student_info where id=2;
posted @   rbcd  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示