精华内容
下载资源
问答
  • HIVE使用本地模式执行操作

    千次阅读 2018-08-29 09:46:27
    hive的Job交给yarn执行太慢,hive支持本地模式 set hive.exec.mode.local.auto=true;默认为false 测试例子: 试验:先创建一张表,指定文件格式为sequencefile create table t_seq(id int, name string, addr ...

    将hive的Job交给yarn执行太慢,hive支持本地模式

    set hive.exec.mode.local.auto=true;默认为false

    测试例子:

    试验:先创建一张表,指定文件格式为sequencefile
    create table t_seq(id int, name string, addr string)
    stored as sequencefile;
    然后往表中插入数据,hive就会生成sequence文件插入表目录中
    insert into table t_seq
    select * from t_1;

     

    非本地模式:(执行很慢)

    0: jdbc:hive2://master.hadoop:10000> create table t_seq(id int, name string, addr string)
    0: jdbc:hive2://master.hadoop:10000> stored as sequencefile;
    No rows affected (0.936 seconds)
    0: jdbc:hive2://master.hadoop:10000> desc t_seq;
    +-----------+------------+----------+--+
    | col_name  | data_type  | comment  |
    +-----------+------------+----------+--+
    | id        | int        |          |
    | name      | string     |          |
    | addr      | string     |          |
    +-----------+------------+----------+--+
    3 rows selected (0.271 seconds)
    0: jdbc:hive2://master.hadoop:10000> insert into table t_seq
    0: jdbc:hive2://master.hadoop:10000> select * from t_1;
    INFO  : Number of reduce tasks is set to 0 since there's no reduce operator
    INFO  : number of splits:1
    INFO  : Submitting tokens for job: job_1535503381660_0001
    INFO  : The url to track the job: http://master.hadoop:8088/proxy/application_1535503381660_0001/
    INFO  : Starting Job = job_1535503381660_0001, Tracking URL = http://master.hadoop:8088/proxy/application_1535503381660_0001/
    INFO  : Kill Command = /apps/hadoop-2.8.0//bin/hadoop job  -kill job_1535503381660_0001
    INFO  : Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
    INFO  : 2018-08-29 09:34:51,400 Stage-1 map = 0%,  reduce = 0%
    INFO  : 2018-08-29 09:35:50,891 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 2.8 sec
    INFO  : MapReduce Total cumulative CPU time: 2 seconds 800 msec
    INFO  : Ended Job = job_1535503381660_0001
    INFO  : Stage-4 is selected by condition resolver.
    INFO  : Stage-3 is filtered out by condition resolver.
    INFO  : Stage-5 is filtered out by condition resolver.
    INFO  : Moving data to: hdfs://ns/user/hive/warehouse/mydb.db/t_seq/.hive-staging_hive_2018-08-29_09-33-06_088_8510141274510902888-1/-ext-10000 from hdfs://ns/user/hive/warehouse/mydb.db/t_seq/.hive-staging_hive_2018-08-29_09-33-06_088_8510141274510902888-1/-ext-10002
    INFO  : Loading data to table mydb.t_seq from hdfs://ns/user/hive/warehouse/mydb.db/t_seq/.hive-staging_hive_2018-08-29_09-33-06_088_8510141274510902888-1/-ext-10000
    INFO  : Table mydb.t_seq stats: [numFiles=1, numRows=6, totalSize=249, rawDataSize=84]
    No rows affected (173.614 seconds)
    0: jdbc:hive2://master.hadoop:10000> 
    0: jdbc:hive2://master.hadoop:10000> show tables;
    +-----------+--+
    | tab_name  |
    +-----------+--+
    | t_1       |
    | t_seq     |
    +-----------+--+
    2 rows selected (0.237 seconds)
    0: jdbc:hive2://master.hadoop:10000> select * from t_seq;
    +-----------+-------------+-------------+--+
    | t_seq.id  | t_seq.name  | t_seq.addr  |
    +-----------+-------------+-------------+--+
    | 1         | user1       | 123123      |
    | 2         | user2       | 123123      |
    | 3         | user3       | 123123      |
    | 1         | user1       | 123123      |
    | 2         | user2       | 123123      |
    | 3         | user3       | 123123      |
    +-----------+-------------+-------------+--+
    6 rows selected (0.28 seconds)
    0: jdbc:hive2://master.hadoop:10000> 
    

    本地模式:(注意执行之前添加这句set hive.exec.mode.local.auto=true;)

    0: jdbc:hive2://master.hadoop:10000> drop table t_seq;
    No rows affected (0.474 seconds)
    0: jdbc:hive2://master.hadoop:10000> create table t_seq(id int, name string, addr string)
    0: jdbc:hive2://master.hadoop:10000> stored as sequencefile;
    No rows affected (0.236 seconds)
    0: jdbc:hive2://master.hadoop:10000> desc t_seq;
    +-----------+------------+----------+--+
    | col_name  | data_type  | comment  |
    +-----------+------------+----------+--+
    | id        | int        |          |
    | name      | string     |          |
    | addr      | string     |          |
    +-----------+------------+----------+--+
    3 rows selected (0.225 seconds)
    0: jdbc:hive2://master.hadoop:10000> set hive.exec.mode.local.auto=true;
    No rows affected (0.055 seconds)
    0: jdbc:hive2://master.hadoop:10000> insert into table t_seq
    0: jdbc:hive2://master.hadoop:10000> select * from t_1;
    INFO  : Number of reduce tasks is set to 0 since there's no reduce operator
    INFO  : number of splits:1
    INFO  : Submitting tokens for job: job_local1471930920_0001
    INFO  : The url to track the job: http://localhost:8080/
    INFO  : Job running in-process (local Hadoop)
    INFO  : 2018-08-29 09:42:15,722 Stage-1 map = 100%,  reduce = 0%
    INFO  : Ended Job = job_local1471930920_0001
    INFO  : Stage-4 is selected by condition resolver.
    INFO  : Stage-3 is filtered out by condition resolver.
    INFO  : Stage-5 is filtered out by condition resolver.
    INFO  : Moving data to: hdfs://ns/user/hive/warehouse/mydb.db/t_seq/.hive-staging_hive_2018-08-29_09-42-13_245_3754575447692258889-1/-ext-10000 from hdfs://ns/user/hive/warehouse/mydb.db/t_seq/.hive-staging_hive_2018-08-29_09-42-13_245_3754575447692258889-1/-ext-10002
    INFO  : Loading data to table mydb.t_seq from hdfs://ns/user/hive/warehouse/mydb.db/t_seq/.hive-staging_hive_2018-08-29_09-42-13_245_3754575447692258889-1/-ext-10000
    INFO  : Table mydb.t_seq stats: [numFiles=1, numRows=6, totalSize=249, rawDataSize=84]
    No rows affected (3.024 seconds)
    0: jdbc:hive2://master.hadoop:10000> show tables;
    +-----------+--+
    | tab_name  |
    +-----------+--+
    | t_1       |
    | t_seq     |
    +-----------+--+
    2 rows selected (0.068 seconds)
    0: jdbc:hive2://master.hadoop:10000> select * from t_seq;
    +-----------+-------------+-------------+--+
    | t_seq.id  | t_seq.name  | t_seq.addr  |
    +-----------+-------------+-------------+--+
    | 1         | user1       | 123123      |
    | 2         | user2       | 123123      |
    | 3         | user3       | 123123      |
    | 1         | user1       | 123123      |
    | 2         | user2       | 123123      |
    | 3         | user3       | 123123      |
    +-----------+-------------+-------------+--+
    6 rows selected (0.281 seconds)
    0: jdbc:hive2://master.hadoop:10000> 
    

     

    展开全文
  • 【hive创建动态分区】hive使用动态分区插入数据详解 往hive分区表中插入数据时,如果需要创建的分区很多,比如以表中某个字段进行分区存储,则需要复制粘贴修改很多sql去执行,效率低。因为hive是批处理系统,所以...

    【hive创建动态分区】hive使用动态分区插入数据详解

    往hive分区表中插入数据时,如果需要创建的分区很多,比如以表中某个字段进行分区存储,则需要复制粘贴修改很多sql去执行,效率低。因为hive是批处理系统,所以hive提供了一个动态分区功能,其可以基于查询参数的位置去推断分区的名称,从而建立分区。

       1.创建一个单一字段分区表

    create table dpartition(id int ,name string )partitioned by(ct string );

       2.往表里装载数据,并且动态建立分区,以city建立动态分区

    hive.exec.dynamici.partition=true; #开启动态分区,默认是false

    set hive.exec.dynamic.partition.mode=nonstrict; #开启允许所有分区都是动态的,否则必须要有静态分区才能使用。

    insert overwrite table dpartition partition(ct) select id ,name,city from mytest_tmp2_p;

    要点:因为dpartition表中只有两个字段,所以当我们查询了三个字段时(多了city字段),所以系统默认以最后一个字段city为分区名,因为分区表的

    分区字段默认也是该表中的字段,且依次排在表中字段的最后面。所以分区需要分区的字段只能放在后面,不能把顺序弄错。如果我们查询了四个字段的话,则会报

    错,因为该表加上分区字段也才三个。要注意系统是根据查询字段的位置推断分区名的,而不是字段名称。

    hive>--查看可知,hive已经完成了以city字段为分区字段,实现了动态分区。

    show partitions dpartition;

    注意:使用,insert...select 往表中导入数据时,查询的字段个数必须和目标的字段个数相同,不能多,也不能少,否则会报错。但是如果字段的类型不一致的话,则会使用null值填充,不会报错。而使用load data形式往hive表中装载数据时,则不会检查。如果字段多了则会丢弃,少了则会null值填充。同样如果字段类型不一致,也是使用null值填充。

    3.多个分区字段时,实现半自动分区(部分字段静态分区,注意静态分区字段要在动态前面)

    ​​​​创建一个只有一个字段,两个分区字段的分区表

    create table ds_parttion(id int ) partitioned by (state string ,ct string );

    4.往该分区表半动态分区插入数据

    set hive.exec.dynamici.partition=true;

    set hive.exec.dynamic.partition.mode=nonstrict;

    insert overwrite table ds_parttion

    partition(state='china',ct) #state分区为静态,ct为动态分区,以查询的city字段为分区名

    select id ,city from  mytest_tmp2_p; 

    5.多个分区字段时,全部实现动态分区插入数据

    set hive.exec.dynamici.partition=true;

    set hive.exec.dynamic.partition.mode=nonstrict;

    insert overwrite table ds_parttion partition(state,ct) select id ,country,city from mytest_tmp2_p;

    注意:字段的个数和顺序不能弄错。

    6.动态分区表的属性

      使用动态分区表必须配置的参数 :

        set hive.exec.dynamic.partition =true(默认false),表示开启动态分区功能

        set hive.exec.dynamic.partition.mode = nonstrict(默认strict),表示允许所有分区都是动态的,否则必须有静态分区字段

     动态分区相关的调优参数: 

    1. set  hive.exec.max.dynamic.partitions.pernode=100 (默认100,一般可以设置大一点,比如1000)
    2. #表示每个maper或reducer可以允许创建的最大动态分区个数,默认是100,超出则会报错。
    3. set hive.exec.max.dynamic.partitions =1000(默认值) 
    4. #表示一个动态分区语句可以创建的最大动态分区个数,超出报错
    5. set hive.exec.max.created.files =10000(默认)
    6. #全局可以创建的最大文件个数,超出报错。

    参考:https://blog.csdn.net/qq_26442553/article/details/80382174                   https://blog.csdn.net/sunwukong_hadoop/article/details/81334556

    展开全文
  • hive 使用 jdbc

    千次阅读 2019-01-05 13:25:54
    hive 也是支持jdbc 连接的这样操作起来就会方便很多 毕竟可以在客户端直接些sql 不多说 首先 需要启动hive server 的server2 服务 bin/hive --service hiveserver2 & 下面就是编写客户端了 提供pom 依赖 &...

    hive 也是支持jdbc 连接的这样操作起来就会方便很多 毕竟可以在客户端直接些sql 不多说
    首先 需要启动hive server 的server2 服务

    bin/hive --service hiveserver2 &
    

    下面就是编写客户端了
    提供pom 依赖

    <hive.version>2.2.0</hive.version>
    
      <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-jdbc</artifactId>
                <version>${hive.version}</version>
            </dependency>
             <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.35</version>
            </dependency>
    

    就是普通的java 连接数据库的代码

       Class.forName ( "org.apache.hive.jdbc.HiveDriver" );
            Connection connection = DriverManager.getConnection ( "jdbc:hive2://hadoop:10000/default", "root", "root" );
            Statement stmt = connection.createStatement ();
            String querySQL = "select * from default.student_scores";
            ResultSet resut = stmt.executeQuery ( querySQL );
            while (resut.next ()) {
                System.out.println ( resut.getObject ( 1 ) );
            }
    

    欢迎关注,更多福利

    这里写图片描述

    展开全文
  • HIVE使用方式

    千次阅读 2019-11-21 14:44:53
    使用方式共三种 第一种交互方式:Hive交互...//在设置hive全局环境变量之后可以在任何目录使用hive 查看所有的数据库 hive (default)> show databases; 创建数据库 hive (default)> create database myh...

    使用方式共三种

    第一种交互方式:Hive交互shell

    cd /export/servers/hive-1.1.0-cdh5.14.0
    bin/hive
    //在设置hive全局环境变量之后可以在任何目录使用hive
    

    在这里插入图片描述
    查看所有的数据库

    hive (default)> show databases;
    

    在这里插入图片描述
    创建数据库

    hive (default)> create database myhive;
    

    使用该数据库并创建数据库表

    hive (default)> use myhive;	
    hive (myhive)> create table test1(id int,name string);
    

    以上命令操作完成之后,一定要确认mysql里面出来一个数据库hive

    第二种交互方式:Hive JDBC服务

    启动hiveserver2服务

    前台启动

    cd  /export/servers/hive-1.1.0-cdh5.14.0
    bin/hive --service hiveserver2
    

    在这里插入图片描述

    后台启动

    cd  /export/servers/hive-1.1.0-cdh5.14.0
    nohup bin/hive --service hiveserver2  &
    

    在这里插入图片描述

    beeline连接hiveserver2

    bin/beeline
    beeline> !connect jdbc:hive2://node01.hadoop.com:10000
    

    在这里插入图片描述

    注意:如果使用beeline方式连接hiveserver2,一定要保证hive在mysql当中的元数据库已经创建成功,不然就会拒绝连接

    第三种交互方式:Hive命令

    使用 –e 参数来直接执行hql的语句
    bin/hive -e "use myhive;show tbales;"

    在这里插入图片描述

    使用 –f 参数通过指定文本文件来执行hql的语句
    vim hive.sql

    在这里插入图片描述
    use myhive;show tables;
    在这里插入图片描述
    bin/hive -f hive.sql
    在这里插入图片描述

    更多参数参考以下

    在这里插入图片描述

    展开全文
  • 小弟近日在折腾hive的时候陷入了沉思,安装hive时也要安装mysql以及mysql-connector-java,但是在hdfs上操作表的时候发现除了HQL和SQL相似...所以,MySQL在hive使用的过程中的作用是啥鸭? 求大佬指教,不甚感激!!!
  • Hive 使用Load加载数据

    千次阅读 2018-08-23 13:25:05
    首先需要在hive上建表. CREATE TABLE Load( key STRING , value STRING ) row format delimited fields Terminated by ' ' lines terminated by '\n' stored AS textfile location 'oss://icsoc-emr-hadoop/...
  • 配置Hive使用Mysql作为数据源

    千次阅读 2018-03-18 15:41:49
    Hive 默认使用 derby 作为映射表(SQL 操作映射为MapReduce Job,将SQL中创建的表映射为 hdfs 的文件/文件夹,字段映射为其中的行),但 derby 的一大缺陷在于它不允许多个客户端同时执行sql操作(可能新版本的hive...
  • 原文:http://lxw1234.com/archives/2016/05/673.htmHive从1.1之后,支持使用Spark作为执行引擎,...具体来说,你使用Hive版本编译时候用的哪个版本的Spark,那么就需要使用相同版本的Spark,可以在Hive的pom.xml...
  • Hive 使用datediff函数求两个指定日期的差datediff(endDate, startDate)datediff(datepart,startdate,enddate)不支持hive datediff(endDate, startDate) datediff(endDate, startDate) - Returns the number of days...
  • HDP 3.0.0 安装的HIVE使用tez,执行任务需要用到tez session时会找不到 解决方法 在打开后增加以下设置 set hive.server2.tez.initialize.default.sessions=true; 如需一直生效,在hive的配置文件hive-site....
  • 使用HDP Hadoop版本时,Ambari界面允许选择Hive执行引擎是MapReduce还是TEZ,如下图所示 使用TEZ作为Hive执行引擎来替代MapReduce,可以在很多场景上实现更好的效率提高,然后使用TEZ作为默认引擎也会导致一些...
  • Spark 调用 hive使用动态分区插入数据

    万次阅读 2019-07-24 17:11:39
    spark 调用sql插入hive 失败 ,执行语句如下 spark.sql("INSERT INTO default.test_table_partition partition(province,city) SELECT xxx,xxx md5(province),md5(city) FROM test_table") 报错如下,需动态插入...
  • hive使用动态分区插入数据详解

    千次阅读 2018-11-01 21:28:59
    &...因为hive是批处理系统,所以hive提供了一个动态分区功能,其可以基于查询参数的位置去推断分区的名称,从而建立分区。&nbsp; &nbsp;1.创建一个单一字段分区表hive&gt; create t...
  • Hive使用GBK等非UTF8字符集

    万次阅读 2017-01-05 15:36:02
    Hive使用GBK等非UTF8字符集
  • 原始表数据最后一条的month字段信息有误,由于无法删除,所以考虑新建一张表将该条数据过滤掉。 原始表信息: 一共四个字段,其中month和day为分区字段。 执行ctas命令 create table stu_partition3 as select *...
  • hive使用本地模式

    万次阅读 2013-12-17 20:50:27
    hive使用本地模式
  • Hive使用beeline(KERBEROS)

    千次阅读 2020-06-08 17:50:33
    使用beeline连接hive两种方式 1、启动hiveserver2 #进入hive安装目录 cd /usr/local/hive目录 #启动hive2目录 bin/hive --service hiveserver2 2、克隆会话启动beeline #进入hive安装目录 cd /usr/local/hive...
  • Spark2.4+Hive使用现有Hive仓库中的数据

    千次阅读 2019-03-06 10:03:24
    使用前准备 hive-site.xml复制到$SPARK_HOME/conf目录下 hive连接mysql的jar包(mysql-connector-java-8.0.13.jar)也要复制到$SPARK_HOME/jars目录下 或者在spark-submit脚本中通过–jars指明该jar包位置 或者在...
  • zeppelin环境搭建及连接hive使用一、准备工作1.zepeelin简介2.安装包下载3.环境要求二、解压安装三、修改配置文件1.修改配置文件zeppelin-site.xml2.修改zeppelin的环境文件四、启动zepeelin五、配置hive解释器1....
  • YARN、Spark、Hive使用kerberos

    万次阅读 2017-02-20 09:43:05
    本文记录YARN、Spark、Hive各服务配置使用kerberos的过程。 我的环境: 三台服务器,分别命名为zelda1、zelda2、zelda3ubuntu 14.04hadoop 2.7.2spark 2.0/1.6.1 YARN认证 目的是将YARN接入到kerberos...
  • Hive使用常见问题&&优化

    万次阅读 2018-08-27 22:24:30
    解决:一般存在MapJoin,设置参数set hive.auto.convert.join = false转成reduce端的Common Join。 shuffle阶段 解决:减少每个reduce处理的数据量,调整参数:hive.exec.reducers.bytes.per.reducer,默认300000000...
  • hive使用变量

    千次阅读 2016-08-18 19:31:28
    使用set设置变量hive> set name=lucy; hive> set name; name=lucy hive> select * from employee where name='${hiveconf:name}'; Total jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 ...
  • HIVE使用insert into插入中文数据乱码

    千次阅读 2020-01-07 23:01:38
    hive中直接使用insert into table value插入中文数据会导致乱码问题。sql语句如下 insert into mac_dict partition(create_time_p='20190616') values ('1','F2-DB-E2-BE-69-F7','余金科','70211134','true','余金科...
  • Hive使用杂记

    千次阅读 2010-07-08 16:31:00
    一、环境描述 1、Hadoop版本0.20.2,操作系统Linux、JDK 1.6 2、Hive版本0.5.0 二、元数据的存储 ...元数据默认存放在metastore_db中,删除这个文件夹,再使用show tables命令来查看,表结构自然不存在。由此可以看出me
  • Hive简易教程

    千次阅读 2018-07-06 11:23:01
    1. 使用Hive 在HDFS上创建Hive所需路径/tmp和/user/hive/warehouse hadoop fs -mkdir /tmp hadoop fs -mkdir /user/hive/warehouse 修改上述路径的访问权限,使用户组具有写入权限 hadoop fs -chmod g+w /tmp ...
  • hive使用beeline连接遇到的问题

    千次阅读 2019-03-24 09:17:25
    如果hiveserver2未启动就直接使用beeline连接,会出现如下错误: Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000/default: java.net.ConnectException: Connection refused ...
  • [Hive]Hive使用指南七 空值与NULL

    千次阅读 2017-10-18 19:19:11
    如果想延续传统数据库中对于空值为NULL,可以通过alter语句来修改hive表的信息,保证解析时是按照空值来解析NULL值: ALTER TABLE tmp_null_empty_test SET SERDEPROPERTIES( 'serialization.null.format' = '...
  • hive使用心得

    万次阅读 热门讨论 2012-02-18 11:45:06
    最近使用hive一个多月下来(终于完成第一期数据分析迁移...总的来说,除了目前网上所介绍的常规hive使用和优化外。 因为目前hive只支持0.20的相关版本,所以我们的环境还是使用的0.20版本的hadoop来进行搭建。 使用hiv
  • hive –f /root/shell/hive-script.sql hive-script.sql类似于script一样,直接写查询命令就行。 hive-script.sql是hive 语句的集合: xiaosi@qunar:~$ vim hive_script.sqlselect * from search_click;sele

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 306,055
精华内容 122,422
关键字:

hive使用