文章目录
HIVE介绍Hive的基本操作(在操作之前需要先启动hdfs(存储源数据)和mysql数据库(存储表结构))一、错误二、进入hive操作界面的两种方式三、往表中添加数据的方式3.1 hive> insert into table stu values(1,"xss");3.2、创建一个表然后再用load将数据加载进表对应的hdfs目录3.3、根据查询结果创建表(查询的结果会添加到新创建的表中,这种方式不能创建外部表) create as select3.4、创建表时通过Location指定加载数据路径,然后把txt文档传到设定的路径下3.5、根据 student 创建相同结构的表 student43.6、通过查询结果添加进表 insert select 四、在hive中操作haoop五、在hive中查看linux上的文件 在linux命令之前加感叹号六、在不进入hive的情况下在linux界面操作hive七、hive的数据类型7.1、基本数据类型7.2、集合数据类型 八、数据库操作九、表操作创建表(可以吧JSON数据导进表的)显示表格信息内部表 MANAGED_TABLE外部表 EXTERNAL_TABLE分区表 当数据量比较大的时候可以缩小查找范围,从而提高查询效率创建一级分区表创建二级分区表正常的加载数据把数据直接上传到分区目录上,让分区表和数据产生关联的两种方式。(前提是表定义的时候要有两级目录,既有month又有day) 十、数据导入一、向表中装载数据(Load)二、通过查询语句向表中插入数据(Insert)三、查询语句中创建表并加载数据(As Select)四、创建表时通过Location指定加载数据路径五、Import数据到指定Hive表中 十一、导出数据一、Insert导出二、hdfs命令导出到本地三、Hive Shell 命令导出四、Export导出到HDFS上 十二、分桶表创建分桶表创建分桶表定义格式查看分桶表结构往分桶表加载数据 大致分为三步到hdfs上可以看到在stu_buck目录下有四个数据文件。查询分桶表信息 分桶表抽样查询 十三、hive函数Order By 和 Sort By 的区别分区排序(Distribute By) 多个reducer,分区排序要和局部排序结合使用Cluster By 当distribute by和sort by字段相同时,可以使用cluster by方式。(但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。)聚合函数collect_set(name) array_contains(collect_set(course),"a") if(array_contains(collect_set(course),"d"),1,0),行转列 CONCAT(字符串A,",",字符串B) CONCAT_WS("|",collect_set( )) 列转行 lateral view explode(cate)开窗函数 over 一般旁边都跟一个聚合函数,两个共同使用HIVE介绍
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质:
将HQL转化成MapReduce程序
Hive在Hadoop生态中的位置如下图所示:
hive和hadoop的关系:
1)Hive处理的数据存储在HDFS
2)Hive分析数据底层的实现是MapReduce
3)执行程序运行在Yarn上
Hive的基本操作(在操作之前需要先启动hdfs(存储源数据)和mysql数据库(存储表结构))
一、错误
seman 表示是一个无法解决的错误
parse 表示是一个解析异常,修改完hql语句之后就能解决错误
剩下其他错误需要通过查看日志来确定是什么错 cat /tmp/root/hive.log
二、进入hive操作界面的两种方式
2.1、直接输 hive 就可以进入
2.2、beeline连接(连接hive的三种方式:cli,webGUI,beeline(JDBC/ODBC))界面比较美观
一、启动后台
hive --service hiveserver2
netstat -ntlp | grep 10000 查看hiveserver2(端口号是10000) 是否启动
二、进入客户端
2.1、 beeline -u jdbc:hive2://localhost:10000 -n root hive2之后才有这个beeline启动
!quit 退出客户端
2.2、beeline -u jdbc:hive2://localhost:10000 -n root 启动的时候会报两个错
一、错误
二、解决方法
首先,要在hadoop的core-site.xml中添加如下配置:
<property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property>