热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第6.1.1章hive2.1.1相关操作及问题汇总

1hive部署参考Hive2.1.1的安装1.1hive-site.xml中mysql配置注意&在xml中字符转移,如果出现解决方案参考报错Thereferencet

1 hive部署
参考Hive2.1.1的安装
1.1 hive-site.xml中mysql配置
注意&在xml中字符转移,如果出现解决方案参考报错The reference to entity “characterEncoding” must end with the ‘;’ delimiter

javax.jdo.option.ConnectionURLjdbc:mysql://192.168.5.135:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8javax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.Driverjavax.jdo.option.ConnectionUserNamerootjavax.jdo.option.ConnectionPassword000000

1.2 schematool -dbType mysql -initSchema
hive的元数据写入到mysql中了。

Metastore connection URL: jdbc:mysql://192.168.5.135:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8
Metastore Connection Driver : com.mysql.jdbc.Driver
Metastore connection User: root
Starting metastore schema initialization to 2.1.0
Initialization script hive-schema-2.1.0.mysql.sql
Initialization script completed
schemaTool completed

它会生成一堆表。
1

2 hive常见操作指令
参考hive常用命令
3 hbase数据导入到hive
参考hbase结合hive和sqoop实现导数据到mysql,hbasesqoop这篇文章

CREATE EXTERNAL TABLE hive1(row_key string, fpdm string,fphm string ,kprq string,xhdwsbh string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key, i:fpdm, i:fphm, i:kprq, i:xhdwsbh")
TBLPROPERTIES("hbase.table.name" = "iw:test01"); create table hive2(row_key string, fpdm string, fphm string, kprq string, xhdwsbh string);insert overwrite table hive2 select * from hive1;

执行上述命令完毕后,再执行select count(*) from hive1;,提示下面的异常

Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):set hive.exec.reducers.bytes.per.reducer=
In order to limit the maximum number of reducers:set hive.exec.reducers.max=
In order to set a constant number of reducers:set mapreduce.job.reduces=
java.io.FileNotFoundException: File does not exist: hdfs://dashuju174:9000/home/hadoop/application/apache-hive-2.1.1-bin/lib/hbase-server-1.1.1.jarat org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1072)at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1064)

网上搜到hive查询报错java.io.FileNotFoundException: File does not exist这个人遇到的问题跟我一样,但没解决问题
hive-hcatalog-core-*.jar does not exist,这篇文章提出了一种方案,即更改$HIVE_HOME/conf/hive_env.sh中,但依旧报错

export HIVE_AUX_JARS_PATH=/home/hadoop/application/hive/auxlib/hive-hcatalog-core-2.1.1.jar

tez hive这篇文章跟我遇到的问题一样,但是set tez.client.asynchronous-stop=false并不是hive的配置,苦恼
我对以前安装的hive重新更改了配置,如上述1.1,只保留mysql配置,其他全部删掉采用默认的方式,再次执行,可以看到成功了
3
4
4 hive数据导入到mysql
按照sqoop从hbase导出数据到mysql
这篇文章操作,我遇到了下面的问题 select * 什么得不到,而select count(*)可以获取到数据量
5
google上搜到两篇文章,Hive中select * 没有数据,而select count(*)有数据解决方法,以及解决方案2,都跟我的原因不同,我写的规规矩矩的,还是这样的错误。
如果是我创建外部表的问题,我做了下面的尝试,并没有错误。
6
无奈之下,到hbase中看个究竟,原来我使用sqoop从mysql中提取数据到hbase的时候,fpdm、fphm、kprq、xhdwsbh是作为主键rowkey的,那么hbase中行数据中也就不会有这些字段,所以无论通过hive进行查询是查不到值的,但是因为rowkey的存在,所以统计是可以的。
7
通过sqoop将hive中的数据写入到mysql, 注意hive的默认分隔符为’\001’

sqoop export \
--connect jdbc:mysql://192.168.5.135:3306/toolbox --username root -P \
--table t_invoice_ticket_2 \
--export-dir /user/hive/warehouse/hive2/000000_0 --input-fields-terminated-by '\001'

否则会提示

18/01/12 13:36:05 INFO mapreduce.Job: Task Id : attempt_1515721654214_0008_m_000002_1, Status : FAILED
Error: java.io.IOException: Can't export data, please check failed map task logsat org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:112)at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39)at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:64)at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:415)at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656)at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
Caused by: java.lang.RuntimeException: Can't parse input data: '7eb759a7230f4573becc7a7f8f3e22cd42001643200227871020170421422301197006201087'at t_invoice_ticket_2.__loadFromFields(t_invoice_ticket_2.java:378)at t_invoice_ticket_2.parse(t_invoice_ticket_2.java:306)at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83)... 10 more
Caused by: java.util.NoSuchElementExceptionat java.util.ArrayList$Itr.next(ArrayList.java:834)at t_invoice_ticket_2.__loadFromFields(t_invoice_ticket_2.java:358)... 12 more

8


推荐阅读
  • 2018深入java目标计划及学习内容
    本文介绍了作者在2018年的深入java目标计划,包括学习计划和工作中要用到的内容。作者计划学习的内容包括kafka、zookeeper、hbase、hdoop、spark、elasticsearch、solr、spring cloud、mysql、mybatis等。其中,作者对jvm的学习有一定了解,并计划通读《jvm》一书。此外,作者还提到了《HotSpot实战》和《高性能MySQL》等书籍。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文整理了Java中org.apache.hadoop.hbase.client.Increment.getDurability()方法的一些代码示例,展示了 ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 11月26日,由中国计算机协会(CCF)主办,CCF大数据专家委员会协办,CSDN承办的Hadoop与大数据技术大会(Hadoop&BigDataTechnology ... [详细]
  • 2018-02-1420:07:13,610ERROR[main]regionserver.HRegionServerCommandLine:Regionserverexiting ... [详细]
  • 《Spark核心技术与高级应用》——1.2节Spark的重要扩展
    本节书摘来自华章社区《Spark核心技术与高级应用》一书中的第1章,第1.2节Spark的重要扩展,作者于俊向海代其锋马海平,更多章节内容可以访问云栖社区“华章社区”公众号查看1. ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
author-avatar
只因为汰假_汰傻_615
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有