【大数据学习篇4】Hive安装与操作(下)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 【大数据学习篇4】Hive安装与操作

2.1.5 在hdfs 中创建下面的目录 ,并且授权

hadoop fs -mkdir -p /user/hive/warehouse

hadoop fs -mkdir -p /user/hive/tmp

hadoop fs -mkdir -p /user/hive/log

hadoop fs -chmod -R 777 /user/hive/warehouse

hadoop fs -chmod -R 777 /user/hive/tmp

hadoop fs -chmod -R 777 /user/hive/log

2.1.6 修改hive-site.xml

将 hive-site.xml 文件中以下几个配置项的值设置成上一步中创建的几个路径。


<property>

   <name>hive.exec.scratchdir</name>

   <value>/user/hive/tmp</value>

</property>

<property>

   <name>hive.metastore.warehouse.dir</name>

   <value>/user/hive/warehouse</value>

</property>

<property>

   <name>hive.querylog.location</name>

   <value>/user/hive/log</value>

</property>

2.1.7 需要在 hive-site.xml 文件中配置 MySQL 数据库连接信息。

 <property>

   <name>javax.jdo.option.ConnectionURL</name>

   <value>jdbc:mysql://hd01:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;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>

2.1.8 创建tmp文件

mkdir /home/hd/apps/hive/tmp

2.1.9 在配置文件 hive-site.xml 里面

把 "${system:java.io.tmpdir}" 改成 /home/hd/apps/hive/tmp/ 此处有4个地方 把 "{system:user.name}" 改成 {user.name} 此处有3个地方


2.1.10 配置jdbc驱动包

mysql的jdbc 驱动包下载地址:


下载完成后把mysql-connector-java-5.1.27.jar 然后放入 $HIVE_HOME/lib 目录下


2.1.11 初始化hive

从 Hive 2.1 版本开始, 我们需要先运行 schematool 命令来执行初始化操作。


schematool -dbType mysql -initSchema

看到schemaTool completed 则初始化完成


2.1.12 启动metastore服务

$HIVE_HOME/bin/hive --service metastore

检测hive 是否成功 直接在命令行输入hive即可


2.1.13 进入控制台

[hd@hd01 hive]# ./bin/hive

which: no hbase in

(/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/hd/apps/java/bin:/home/hd/apps/hadoop/bin:/home/hd/apps/hadoop/sbin:/root/bin:/home/hd/apps/java/bin:/home/hd/apps/hadoop/bin:/ho

me/hd/apps/hadoop/sbin:/home/hd/apps/hive/bin)

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/home/hd/apps/hive/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/home/hd/apps/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in file:/home/hd/apps/hive/conf/hive-log4j2.properties Async: true

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

hive> show databases;

OK

default

Time taken: 8.295 seconds, Fetched: 1 row(s)

hive>

2.2 Hive建表操作

2.2.1 建表

create table test_user (

user_id     int     comment 'userID',

user_name     string     comment 'userName'

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

2.2.2 准备数据

准备数据,用户id和用户名字,用,分割,存在hive_table_data.txt


2020001,小王

2020002,小李

2020003,小明

2020004,阿狗

2020005,姚明

2.2.3 写入表中

从本地LOAD DATA overwrite方式,覆盖方式写入表中


hive> LOAD DATA LOCAL INPATH '/xx/hive_table_data.txt' OVERWRITE  INTO TABLE test_user;

Loading data to table default.test_user

Table default.test_user stats: [numFiles=1, totalSize=75]

OK

2.2.4 查看hive数据

查看hive表中数据:


hive> select * from test_user;

OK

2020001 小王

2020002 小李

2020003 小明

2020004 阿狗

2020005 姚明

2.2.5 查看HDFS路径上数据

查看HDFS路径上数据:


hadoop fs -ls /user/hive/warehouse/test_user

Found 1 items

-rwxrwxrwx   3 deploy hive         75 2020-05-08 18:20 /user/hive/warehouse/test_user/hive_table_data.txt

2.2.6 本地LOAD数据

从本地LOAD DATA append方式,append方式同样名字的文件,会自动进行重命名


hive> LOAD DATA LOCAL INPATH '/xxx/hive_table_data.txt' INTO TABLE test_user;

Loading data to table default.test_user

Table default.test_user stats: [numFiles=2, totalSize=150]

2.2.7 查看HDFS路径上的数据被重命名

查看HDFS路径上的数据,可以看到同样的文件被重命名了:


hadoop fs -ls /user/hive/warehouse/test_user

Found 2 items

-rwxrwxrwx   3 deploy hive         75 2020-05-08 18:20 /user/hive/warehouse/test_user/hive_table_data.txt

-rwxrwxrwx   3 deploy hive         75 2020-05-08 18:24 /user/hive/warehouse/test_user/hive_table_data_copy_1.txt

2.2.8 删除表

删除表,删除表后,元数据和数据文件也相应删除


drop table test_user

查看HDFS路径,发现数据也删除了:


hadoop fs -ls /user/hive/warehouse/test_user

ls: `/user/hive/warehouse/test_user': No such file or directory

2.2.9 外部表创建&删除

外部表创建&删除,创建外部表指定数据路径,将刚刚的文件上传到需要指定的路径中,可以看到可以查询到数据


hive> create external table test_user (

   > user_id     int     comment 'userID',

   > user_name     string     comment 'userName'

   > )

   > ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

   > LOCATION '/user/xx/tmp/test_hive/';

OK

Time taken: 0.09 seconds

hive> select * from test_user;

OK

2020001 小王

2020002 小李

2020003 小明

2020004 阿狗

2020005 姚明

2020001 小王

2020002 小李

2020003 小明

2020004 阿狗

2020005 姚明

2.2.10 删除外部表d

hive> drop table test_user;

OK

hadoop fs -ls /user/xx/tmp/test_hive/

Found 2 items

-rw-r--r--   3 data_udd bigdata         75 2020-05-08 18:38 /user/xx/tmp/test_hive/hive_table_data.txt

-rw-r--r--   3 data_udd bigdata         75 2020-05-08 18:38 /user/xx/tmp/test_hive/hive_table_data_copy_1.txt


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
10月前
|
SQL 分布式计算 大数据
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
本文深入介绍 Hive 与大数据融合构建强大数据仓库的实战指南。涵盖 Hive 简介、优势、安装配置、数据处理、性能优化及安全管理等内容,并通过互联网广告和物流行业案例分析,展示其实际应用。具有专业性、可操作性和参考价值。
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
|
9月前
|
数据采集 搜索推荐 算法
Java 大视界 -- Java 大数据在智能教育学习社区用户互动分析与社区活跃度提升中的应用(274)
本文系统阐述 Java 大数据技术在智能教育学习社区中的深度应用,涵盖数据采集架构、核心分析算法、活跃度提升策略及前沿技术探索,为教育数字化转型提供完整技术解决方案。
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
340 0
|
数据采集 数据可视化 大数据
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
这篇文章介绍了如何使用Python中的matplotlib和numpy库来创建箱线图,以检测和处理数据集中的异常值。
435 1
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
|
存储 SQL 分布式计算
大数据学习
【10月更文挑战第15天】
366 1
|
分布式计算 大数据 Linux
大数据体系知识学习(二):WordCount案例实现及错误总结
这篇文章介绍了如何使用PySpark进行WordCount操作,包括环境配置、代码实现、运行结果和遇到的错误。作者在运行过程中遇到了Py4JJavaError和JAVA_HOME未设置的问题,并通过导入findspark初始化和设置环境变量解决了这些问题。文章还讨论了groupByKey和reduceByKey的区别。
278 1
|
6月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
440 14
|
8月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
288 4
|
7月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
528 0