Hive
从零开始的数据猿
这个作者很懒,什么都没留下…
展开
-
Hive Sql执行出错 Dag submit failed due to java.io.IOException: All datanodes DatanodeInfoWithStorage
检查集群中的 Dfs.replication 属性,集群中 INFORMATICA 的最小复制因子为 3 (dfs.replication=3)。第二步:修改dfs.replication值为3(页面上操作),然后重启HDFS。根本原因是集群中的一个或多个信息块在所有节点中都已损坏,因此映射无法获取数据。如果副本数还是3,首先确认副本参数是否已经生效(第三步的命令中可以查看),第四步、手动创建一个文件,上传至HDFS,观察其副本数。第一步:将HDFS上已有文件副本数修改为3。原创 2022-10-25 10:17:59 · 1564 阅读 · 0 评论 -
Hive Order By、Sort By、Distrbute By、Cluster By区别
当Distribute by和Sorts by字段相同时,可以使用Cluster by方式。Cluster by除了具有Distribute by的功能外还兼具Sort by的功能。但是排序只能是升序排序,不能指定排序规则为ASC或者DESC。类似MR中Partition,进行分区,结合sort by使用。在生产环境中Sort By+ Distrbute By用的多。在生产环境中Order By用的比较少,容易导致OOM。全局排序,只有一个Reducer。原创 2022-10-24 14:37:32 · 1004 阅读 · 0 评论 -
Hive导出全部表的结构
【代码】Hive导出全部表的结构。原创 2022-10-19 13:13:12 · 691 阅读 · 0 评论 -
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:error processing WRITE_BLOCK operation src
Error:DataXceiver error processing WRITE_BLOCK operation src: /x.x.x.x:50373 dest: /x.x.x.x:50010Solution:1.修改进程最大文件打开数sudo vim /etc/security/limits.confEnd of file* - nofile 1000000* - nproc 1000000原创 2022-05-05 09:59:41 · 680 阅读 · 0 评论 -
Python Anaconda安装sasl,thrift,thrift-sasl 并连接PyHive
安装包版本说明python: 3.6 / 3.7 / 3.8pyhive: 0.6.2thrift: 0.13.0thrift_sasl: 0.4.2sasl: 根据python version决定一,到https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl下载对应自己python版本的sasl (cp37 代表python version 为3.7)本地安装:二,安装pyhive: 0.6.2 ,thrift: 0.13.0 ,thrift_原创 2022-05-05 09:46:48 · 4475 阅读 · 0 评论 -
hive教程:启动hiveserver2,通过jdbc方式访问hive
介绍为了让 java 程序可以连接 hive,执行sql,需要配置、启动 hiveserver2修改 hive-site.xml在 hive-site.xml 文件中添加如下配置信息:<!-- 指定 hiveserver2 连接的 host --><property> <name>hive.server2.thrift.bind.host</name> <value>localhost</value></prop转载 2022-05-04 08:50:46 · 3412 阅读 · 0 评论 -
hiveserver2 连接报:root is not allowed to impersonate anonymous (state=08S01,code=0)
[root@node300 /root]$ beeline -u jdbc:hive2://node300:10000SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/usr/local/hive/apache-hive-3.1.2-bin/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class原创 2022-05-04 08:34:30 · 512 阅读 · 0 评论 -
hive之Json解析(普通Json和Json数组)
一、数据准备现准备原始json数据(test.json)如下:{“movie”:“1193”,“rate”:“5”,“timeStamp”:“978300760”,“uid”:“1”}{“movie”:“661”,“rate”:“3”,“timeStamp”:“978302109”,“uid”:“1”}{“movie”:“914”,“rate”:“3”,“timeStamp”:“978301968”,“uid”:“1”}{“movie”:“3408”,“rate”:“4”,“timeStamp”:转载 2022-05-04 08:24:41 · 5496 阅读 · 0 评论 -
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.
下载slf4j-simple并放在jar包路径下即可。原创 2022-05-03 00:14:50 · 267 阅读 · 0 评论 -
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask
解决问题的最好办法就是查日志在${HIVE_HOME}/conf/hive-log4j2.properties.template里可以看出日志名为hive.log,默认在/tmp/<Your Username>/hive.log找到我的报错原因是:java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.io.FileNotFoundException: File does not exist: hd原创 2022-05-02 21:44:04 · 1956 阅读 · 0 评论 -
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version
检查hive-site.xml文件<configuration> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.Connec原创 2022-03-13 21:40:17 · 3363 阅读 · 1 评论 -
sqoop从Hive导入到Mysql失败解决办法
报错如下ERROR mapreduce.ExportJobBase: Export job failed! ERROR tool.ExportTool: Error during export: Export job failed!解决思路首先,Mysql建好表,字段名和类型与Hive表保持一致其次,Mysql建立的表和字段(列)编码要为utf-8,默认建立的mysql表编码不是utf-8,参考此链接修改表和字段的编码然后,检查sqoop命令是否正确,以及行分隔符(如果建表未指定分隔符,则默认使原创 2021-12-22 22:57:52 · 4722 阅读 · 0 评论 -
Hive 错误 Expression not in GROUP BY key
在 Group by 子句中,Select 查询的列,必须满足以下两种情况情况一:需要是 Group by 中的列,不支持直接查询非 Group by 的列。如果查询非 Group by 的列,则用情况二。情况二:是用聚合函数(比如 sum、count 、Max、Min、avg、collect_list、collect_set等)加工过的列。这一点和 MySQL 有所区别参考:https://www.gairuo.com/p/hive-sql-aggregate-functionshttps:原创 2021-12-21 13:58:11 · 2625 阅读 · 0 评论 -
Hive查询报错 Invalid table alias or column reference ‘create_time‘: (possible column names are: _c0, _c1
错误SQL:select day(visit_date) time, count(if(behavior_type=4,1,NULL)),count(if(behavior_type<>4,1,NULL)),count(if(behavior_type=4,1,NULL))/count(if(behavior_type<>4,1,NULL)) from big group by day(visit_date) order by day(visit_date);select da原创 2021-12-21 09:59:13 · 3045 阅读 · 0 评论 -
Hive 三个配置:显示表头,数据库名
在hive中显示数据库名和列名,有如下两种方法:在hive-cli中设置参数,临时生效,退出hive-cli后失效# 显示数据库名,该参数默认值为falseset hive.cli.print.current.db=true;# 显示列名,该设置会显示表名.列名,默认值为falseset hive.cli.print.header=true;# 不显示表名,默认值为trueset hive.resultset.use.unique.column.names=false;更改hiv原创 2021-12-21 08:32:35 · 3638 阅读 · 0 评论 -
hive建表语法中的分隔符设定
hive建表语法中的分隔符设定ROW FORMAT DELIMITED 分隔符设置开始语句FIELDS TERMINATED BY:设置字段与字段之间的分隔符COLLECTION ITEMS TERMINATED BY:设置一个复杂类型(array,struct)字段的各个item之间的分隔符MAP KEYS TERMINATED BY:设置一个复杂类型(Map)字段的key value之间的分隔符LINES TERMINATED BY:设置行与行之间的分隔符例:hive> crea原创 2021-12-02 15:51:36 · 4403 阅读 · 0 评论 -
Hive beeline连接hiveserver2报错:User: root is not allowed to impersonate root
最近在生产中搭建HA机制的集群,碰到不少坑,会在接下来的时间里好好总结下,先说下遇到的一个大坑。我们的需求是:希望通过hive的thrift服务来实现跨语言访问Hive数据仓库。但是第一步,你得需要在节点中打通服务器端(启动hiveserver2的节点)和客户端(启动beeline的节点)的链接。整体的结构如下图所示:但是整个的配置过程可谓是一波三折,先在数据1节点启动hiveserver2,接着在数据3节点启动beeline链接数据1。出现了以下错误:坑:Error: Could not open转载 2021-08-11 09:20:48 · 2582 阅读 · 1 评论 -
java.sql.SQLException: Access denied for user ‘root‘@‘hadoop102‘ (using password: YES)
初始化hive元数据库在使用schematool-initschema-dbtype MySQL-verb时,出现如下错误:org.apache.hadoop.hive.metastore.HiveMetaException:无法获取架构版本。根本原因:java.sql.SQLException:用户’root’@'hadoop102’的访问被拒绝(使用密码:是)SQL错误代码:1045原因分析:“拒绝访问”表示hive被拒绝连接MySQL数据库,连接MySQL数据库的账户权限或密码配置有问题。配原创 2021-08-11 08:32:01 · 1181 阅读 · 0 评论