精华内容
下载资源
问答
  • [root@zjj101 soft]# vim student.txt 1001 zhangsan 1002 lisi 1003 zhaoliu 建表 创建student表, 并声明文件分隔符’\t’ hive (default)> create table student(id int, name string) ROW FORMAT DELIMITED ...

    准备数据

    在 /root/soft 目录下面
    准备student.txt ,注意以tab键间隔。

    [root@zjj101 soft]#  vim student.txt
    
    1001    zhangsan
    1002    lisi
    1003    zhaoliu
    

    建表

    创建student表, 并声明文件分隔符’\t’

    
    hive (default)>  create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED
                  >  BY '\t';
    OK
    
    

    加载指定目录的数据到表中

    hive (default)> load data local inpath '/root/soft/data/student.txt' into table student;
    Loading data to table default.student
    Table default.student stats: [numFiles=1, numRows=0, totalSize=37, rawDataSize=0]
    OK
    

    查看已经导入的数据

    
    hive (default)> select * from student;
    OK
    student.id      student.name
    1001    zhangsan
    1002    lisi
    1003    zhaoliu
    Time taken: 0.335 seconds, Fetched: 3 row(s)
    
    
    展开全文
  • 假设本地有一个文件 test_person.txt,内容为: Gong 24 Tian 23 1 2 想要将其导入 TEXTFILE 格式的 tmp_test_person_txt 表内,步骤如下: 1.1、创建目标表,格式为 TEXTFILE 在 hive 命令行下,输入建表语句:...

    1、hive表格式为TEXTFILE
    由于 TEXTFILE 格式没有对数据进行压缩,因此直接 load 即可。

    假设本地有一个文件 test_person.txt,内容为:

    Gong    24
    Tian    23
    1
    2
    想要将其导入到 TEXTFILE 格式的 tmp_test_person_txt 表内,步骤如下:

    1.1、创建目标表,格式为 TEXTFILE
    在 hive 命令行下,输入建表语句:

    CREATE TABLE tmp.tmp_test_person_txt(name string, age int) 
    row format delimited fields terminated by '\t'
    STORED AS TEXTFILE
    location '/user/recsys/srbi/tmp.db/tmp_test_person_txt';
    1
    2
    3
    4
    1.2、加载本地文件
    任选以下两种方法之一即可:

    (1)在 linux 命令行下,将本地文件复制到 hive 表所在路径下:

    $ hadoop fs -put ~/test_person.txt /user/recsys/srbi/tmp.db/tmp_test_person_txt
    1
    (2)在 hive 命令行下,将本地文件加载到 hive 表中:

    hive> load data local inpath '~/test_person.txt' into table tmp.tmp_test_person_txt;
    Loading data to table tmp.tmp_test_person_txt
    Table tmp.tmp_test_person_txt stats: [numFiles=1, totalSize=16]
    OK
    Time taken: 1.536 seconds
    1
    2
    3
    4
    5
    1.3、导入成功
    可以查看是否已经成功导入数据:

    hive> select * from tmp.tmp_test_person_txt;
    OK
    Gong    24
    Tian    23
    Time taken: 0.544 seconds, Fetched: 2 row(s)
    1
    2
    3
    4
    5
    2、hive表格式为ORC
    存储格式为 ORC 的 hive 表,不能直接 load 文件,因为 ORC 格式的数据是有压缩操作的,并不是常规的格式。

    可以使用曲线救国方式,建立一个临时表,字段相同,但是存储格式是 TEXTFILE 的,这样就可以使用上面的方法加载本地文件了,然后使用 hive 表的操作命令 insert into table ... select ... 来实现两个表之间的数据复制。

    操作如下:

    2.1、创建两个表,格式为分别为 ORC 和 TEXTFILE
    在 hive 命令行下,输入建表语句:

    hive> CREATE TABLE tmp.tmp_test_person_txt(name string, age int) 
        > row format delimited fields terminated by '\t'
        > STORED AS TEXTFILE
        > location '/user/recsys/srbi/tmp.db/tmp_test_person_txt';
    hive> CREATE TABLE tmp.tmp_test_person_orc(name string, age int) 
        > row format delimited fields terminated by '\t'
        > STORED AS ORC
        > location '/user/recsys/srbi/tmp.db/tmp_test_person_orc';
    1
    2
    3
    4
    5
    6
    7
    8
    2.2、加载本地文件至 TEXTFILE
    使用 1.2 节的方法,将本地文件导入到 TEXTFILE 格式的 tmp_test_person_txt 表中。

    2.3、将 TEXTFILE 的数据复制到 ORC 中
    在 hive 命令行下:

    INSERT INTO TABLE tmp_test_person_orc SELECT * FROM tmp_test_person_txt;
    1
    2.4、导入成功
    可以查看是否已经成功导入数据:

    hive> select * from tmp.tmp_test_person_orc;
    OK
    Gong    24
    Tian    23
    Time taken: 0.544 seconds, Fetched: 2 row(s)
    1
    2
    3
    4
    5
    3、其他格式
    其他存储格式如 SEQUENCEFILE、PARQUET 等,都可以按照 ORC 格式那样,先导入到 TEXTFILE 表,再进行两个表之间的数据转移即可。
    ————————————————
    版权声明:本文为CSDN博主「HappyRocking」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/HappyRocking/article/details/90178439

    展开全文
  • hive和hadoop交互关系图:    上述流程图整理如下: 1、通过用户界面提交SQL 驱动接收SQL 2、驱动将SQL传送给编译器 3、编译器获得SQL 检查语法、匹配资源、去metastore查询 4、metastore返回相应的...

     

    1 简介:

     

    架构图:

     



     

     

     

    hive和hadoop交互关系图:

     



     上述流程图整理如下:

    1、通过用户界面提交SQL		驱动接收SQL
    2、驱动将SQL传送给编译器	
    3、编译器获得SQL		检查语法、匹配资源、去metastore查询
    4、metastore返回相应的数据库字段信息	优化SQL、产生执行计划
    5、驱动接收执行计划			将执行计划发送执行引擎
    6、执行引擎解析
    6.1、	DDL操作:直接和metastore交互
    		create table t1(name string);
    		drop table t1;
    6.1、	DML:直接读取数据,和namenode、datanode交互
    		select * from t1 limit 100;
    		select name form t1;   现在的hive已经能够针对查询单个列来不执行mr直接和namenode datanode交互了 
    
    6.1、	执行MapReduce
    		跑MR job
    		返回结果集信息
    		select count(1) from t1;

     

     

     

    a) 概念:

    Hive 是建立在 Hadoop  上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop  中的大规模数据的机制。Hive 定义了简单的类 SQL  查询语言,称为 QL ,它允许熟悉 SQL  的用户查询数据。
    同时,这个语言也允许熟悉 MapReduce  开发者的开发自定义的 mapper  和 reducer  来处理内建的 mapper 和 reducer  无法完成的复杂的分析工作。

    Hive作为数据仓库,仓库中的数据是存储在HDFS中,HQL语句的执行是转化为MapReduce的job执行的。也就是说,Hive只是把HQL语句转换为MapReduce的job,然后交给MapReduce去查询位于HDFS中的数据。
    因此,Hive依赖于Hadoop,没有Hadoop就没有Hive。

     

    b) 解释:

    b.1) 数据库侧重于一些操作型的事情,事务型的东西,底层设计侧重于操作

    b.2) 数据仓库侧重于查询,底层设计侧重于查询, 在相同数据量下,数据仓库查询速度会更快。

    b.3) hive和mapreduce的区别:
    相同处: 都是对海量数据的查询
    不同处:
    mapreduce是用Java开发的,对非Java的人有瓶颈,
    hive:封装在Hadoop之上的可以使用SQL进行海量数据查询的框架,因为SQL学习简单使用简单因此降低了使用门槛。

    b.4) ETL:
    E: 抽取 比如业务提供9个字段,我们之获取4个字段
    T: 转化 transform,比如有的业务男女用 true false,有的业务用1,0 在汇总到hive时,需要转成统一标示
    L: 加载 load

     

    b.5) hive其数据仓库的数据是外面导入进来的。

    b.6) hive转化成mapreduce时,需要知道启多少个map  多少个reduce,运行的数量和运行速度是需要关心的。 
    对hive的优化实际就是对生成的map-reduce的优化。

     

    c) HQL中的信息和hdfs对应规则如下:

    表 ----> hdfs文件/文件夹
    表中数据 ----> hdfs文件/文件夹内数据
    表中列  ----> hdfs文件数据的不同字段

    以上对应关系存放在hive的metastore组件中,metastore表现为关系数据库,可以是derby,也可以是mysql

    类比于 hibernate和mysql的对应关系:
    User  <------> cn_user    对应关系在 *.hbm.xml内

    metastore表现默认使用derby,但是这种存储太小众,一般需要将hive和hdfs对应关系存储在MySQL中

     

     

    hive除了有SQL, UDF
    还支持熟悉mr的用户自定义mapper reducer来处理内建的mapper reducer无法完成的复杂分析工作。

    是解析引擎,将SQL转换为mr任务,来在hadoop上执行。

     

    何时走jobtracker   select 非* ,

                                   (据说在高版本的hive中这种查询不需要再走mr,在hive0.13测试中发现还在走mr)
    何时走namenode     select *

     

     

    eg: select count(1) from stu;  处理后的结果就是reduce信息的输出结果,依旧会去Hadoop中来找最后的存储结果。

     

     

     只要具备Hadoop环境的每一台机器都可以安装hive, 没有必要安装成hive集群。

     

    2 安装hive

    2.1) 一定要配置在Hadoop集群的某个节点上

    2.2) 类比于QQ,是一款比较简易的客户端安装软件,安装简单

    2.3) 安装过程:

     

    [root@master local]# tar -zxvf hive-0.9.0.tar.gz   解压
    [root@master local]# mv hive-0.9.0 hive    改名
    [root@master hive]# cd conf 
    [root@master conf]# ls
    hive-default.xml.template  hive-exec-log4j.properties.template
    hive-env.sh.template       hive-log4j.properties.template
    [root@master conf]# mv hive-exec-log4j.properties.template  hive-exec-log4j.properties
    [root@master conf]# mv hive-log4j.properties.template hive-log4j.properties
    [root@master conf]# ls
    hive-default.xml.template  hive-exec-log4j.properties
    hive-env.sh.template       hive-log4j.properties
    [root@master conf]# mv hive-env.sh.template  hive-env.sh
    [root@master conf]# mv hive-default.xml.template  hive-default.xml
    [root@master conf]# cp hive-default.xml hive-site.xml
    [root@master conf]# ls
    hive-default.xml  hive-exec-log4j.properties  hive-site.xml
    hive-env.sh       hive-log4j.properties
    
    [root@master conf]# cat hive-site.xml    修改hive-site.xml 成如下样子:
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>  
            <name>javax.jdo.option.ConnectionURL</name>  
            <value>jdbc:mysql://single:3306/hive?createDatabaseIfNotExist=true</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> 
    
    </configuration>
    
    [root@master bin]# vi hive-config.sh   修改hive/bin/hive-config.sh  增加如下信息:
    
    export JAVA_HOME=/usr/local/jdk
    export HADOOP_HOME=/usr/local/hadoop  // 关联上hadoop集群
    export HIVE_HOME=/usr/local/hive
    
    [root@master bin]# ls       
    ext  hive  hive-config.sh
    [root@master bin]# jps
    20011 Jps
    9800 JobTracker
    9572 NameNode
    9721 SecondaryNameNode
    [root@master bin]# hive    保证Hadoop集群开启下,来启动hive
    WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
    Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j.properties ----> 标明配置写出日志文件的配置文件
    Hive history file=/tmp/root/hive_job_log_root_201412111909_207218151.txt   -----> 表示日志文件
    hive> show databases;   
    OK
    default
    Time taken: 14.129 seconds
    hive> use default;
    OK
    Time taken: 0.141 seconds
    hive> show tables;
    OK
    Time taken: 0.995 seconds
    hive> create table t1(id int);
    OK
    Time taken: 1.015 seconds
    hive> show tables;
    OK
    t1
    Time taken: 0.068 seconds
    hive> quit;
    [root@master bin]# ls -->上面表创建后,可见下面增加文件derby.log和metastore_db
    derby.log  ext  hive  hive-config.sh  metastore_db
    

     

     2.3.1) 配置hive环境变量:

    配置hive环境变量:
    export JAVA_HOME=/usr/local/jdk
    export HADOOP_HOME=/usr/local/hadoop
    export HIVE_HOME=/usr/local/hive
    export PATH=.:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
    [root@master data]# source /etc/profile   立马生效

     

     

    2.4) hive默认数据库对应hdfs路径:

     

    hive中的数据库,表对应HDFS中文件夹对应关系:
    
    http://master:50070/dfshealth.jsp
    --->Browse the filesystem
    --->user
    --->hive
    --->warehouse
    --->t1 看到我们通过命令创建的表 对应目录为:/user/hive/warehouse/t1
    
    其中:
    当hive部署成功后,hive默认的数据库default在hdfs上对应的目录是/user/hive/warehouse

     

     

     

    如下图:



     

     

     

    2.5) hive 映射关系metastore 将默认derby修改成mysql做法:

     

    前提
    a) mysql数据库安装上
    b) 如果mysql服务没有安装在当前hive所在机器,那么设置mysql服务远程连接和操作授权
    c) 将mysql-jdbc驱动扔到hive/lib下
    [root@master bin]# cp /usr/local/mysql-connector-java-5.1.10.jar ../lib
    d) 修改配置文件hive/bin/hive-site.xml  增加mysal连接信息:
    [root@master conf]# vi hive-site.xml    修改增加如下内容
    
    [root@master conf]# cat hive-site.xml 
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://master:3306/hive_cr00?createDatabaseIfNotExist=true</value>  hive_cr00表示数据库名
    </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>admin</value>
    </property>
    </configuration>
    
    e) 进入hive/bin,删除derby.log  metastore_db等信息:
    [root@master bin]# ls
    derby.log  ext  hive  hive-config.sh  metastore_db
    [root@master bin]# rm -rf derby.log 
    [root@master bin]# rm -rf metastore_db/
    [root@master bin]# ls
    ext  hive  hive-config.sh
    
    f) 继续执行hive命令:
    [root@master bin]# hive
    WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
    Logging initialized using configuration in file:/usr/local/hive/conf/hive-log4j.properties
    Hive history file=/tmp/root/hive_job_log_root_201412112247_263167195.txt
    hive> show databases;
    OK
    default
    Time taken: 7.634 seconds
    hive> use default;    // 使用hive默认数据库
    OK
    Time taken: 0.094 seconds
    hive> show tables;
    OK
    Time taken: 1.034 seconds 
    hive> create table t1(id int);   // 创建表
    OK
    Time taken: 0.43 seconds
    hive> [root@master bin]# ls   // 此时没有在产生 derby.log  metastore_db等存储映射信息的文件和库
    ext  hive  hive-config.sh
    
    g) 进入MySQL服务,查看刚才hive创建操作生成的结果:
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema | 
    | hive_cr00          | 
    | mysql              | 
    | test               | 
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> use hive_cr00   //  使用配置文件 hive-site.xml内配置的库 hive_cr00
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> show tables;
    +---------------------+
    | Tables_in_hive_cr00 |
    +---------------------+
    | BUCKETING_COLS      | 
    | CDS                 | 
    | COLUMNS_V2          | 
    | DATABASE_PARAMS     | 
    | DBS                 | 
    | PARTITION_KEYS      | 
    | SDS                 | 
    | SD_PARAMS           | 
    | SEQUENCE_TABLE      | 
    | SERDES              | 
    | SERDE_PARAMS        | 
    | SORT_COLS           | 
    | TABLE_PARAMS        | 
    | TBLS                | 
    +---------------------+
    14 rows in set (0.00 sec)
    
    mysql> select * from DBS    // 可以看到hive默认数据库名default,默认路径为hdfs://master:9000/user/hive/warehouse
        -> ;
    +-------+-----------------------+----------------------------------------+---------+
    | DB_ID | DESC                  | DB_LOCATION_URI                        | NAME    |
    +-------+-----------------------+----------------------------------------+---------+
    |     1 | Default Hive database | hdfs://master:9000/user/hive/warehouse | default | 
    +-------+-----
    
    mysql> select * from TBLS \G;   // 可以看到之前通过hive操作创建的表t1,
    *************************** 1. row ***************************
                TBL_ID: 1
           CREATE_TIME: 1418366898
                 DB_ID: 1
      LAST_ACCESS_TIME: 0
                 OWNER: root
             RETENTION: 0
                 SD_ID: 1
              TBL_NAME: t1
              TBL_TYPE: MANAGED_TABLE
    VIEW_EXPANDED_TEXT: NULL
    VIEW_ORIGINAL_TEXT: NULL
    
    mysql> select * from COLUMNS_V2   // 可以看到之前通过hive操作创建的表t1字段 id
        -> ;
    +-------+---------+-------------+-----------+-------------+
    | CD_ID | COMMENT | COLUMN_NAME | TYPE_NAME | INTEGER_IDX |
    +-------+---------+-------------+-----------+-------------+
    |     1 | NULL    | id          | int       |           0 | 
    +-------+---------+-------------+-----------+-------------+
    1 row in set (0.00 sec)
    

     

     

     

     2.6) 通过hive将本地磁盘文件上传到hdfs中做法:

     



     

    实验代码:

    a) 通过hive创建单字段表,并上传本地文件到hive:

    [root@master data]# cat onecolumn   // 在本地磁盘文件中的创建数据
    1
    2
    3
    4
    5
    // 通过hive hql将本地文件数据上传到hive中(1 实际是将本地磁盘文件数据写到hdfs中 2 通过hive将hdfs和hive表对应关系保持到MySQL中)
    hive> load data local inpath '/usr/local/data/onecolumn' into table t1; 
    Copying data from file:/usr/local/data
    Copying file: file:/usr/local/data/onecolumn
    Loading data to table default.t1
    OK
    Time taken: 16.166 seconds
    hive> select * from t1;
    OK
    1
    2
    3
    4
    5
    Time taken: 0.812 seconds
    
    上述命令解释如下:
    load data local inpath '/usr/local/data/onecolumn' into table t1;
    load data 文件在本地(local)  inpath位置在   '可以是绝对路径也可以是相对路径'  into table t1(加载到表t1中)

     

    结果图:



     

     

    b) 通过hive创建多字段表,并上传本地文件到hive:

     

     

    通过hive创建多字段表:
    create table t2(id int, name string) row format delimited fields terminated by '\t';	
    解释: row format delimited fields terminated by 是固定不动的,不管是多少个字段, '\t'是可变的,表示字段之间的间隔
    从外部加载的时候 要知道如何划分字段。\t表示外部数据用这个方式来间隔彼此
    hive> create table t2(id int, name string) row format delimited fields terminated by '\t'; // hive中创建多字段表,接受的实际数据之间用'\t'间隔
    OK
    Time taken: 0.462 seconds
    
    [root@master data]# cat user // 准备本次磁盘文件数据
    1       zhangsan
    2       lisi
    3       wangwu
    4       zhaoliu
    
    hive> load data local inpath '/usr/local/data/user' into table t2;   
    
    hive> select * from t2;
    OK
    1       zhangsan
    2       lisi
    3       wangwu
    4       zhaoliu
    
    hive> select name from t2;    // 在查询某个/某几个列的时候 没办法全表扫描,只能通过map-reduce去做,
    Total MapReduce jobs = 1
    Launching Job 1 out of 1
    Number of reduce tasks is set to 0 since there's no reduce operator
    Starting Job = job_201412080304_0005, Tracking URL = http://master:50030/jobdetails.jsp?jobid=job_201412080304_0005
    Kill Command = /usr/local/hadoop/libexec/../bin/hadoop job  -Dmapred.job.tracker=master:9001 -kill job_201412080304_0005
    Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
    2014-12-12 00:15:53,940 Stage-1 map = 0%,  reduce = 0%
    2014-12-12 00:16:00,119 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.58 sec
    2014-12-12 00:16:01,129 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 0.58 sec
    2014-12-12 00:16:02,144 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU 0.58 sec
    MapReduce Total cumulative CPU time: 580 msec
    Ended Job = job_201412080304_0005
    MapReduce Jobs Launched: 
    Job 0: Map: 1   Cumulative CPU: 0.58 sec   HDFS Read: 237 HDFS Write: 29 SUCCESS
    Total MapReduce CPU Time Spent: 580 msec
    OK
    zhangsan
    lisi
    wangwu
    zhaoliu
    Time taken: 42.547 seconds

     

     

     

    展开全文
  • Hive - 将本地磁盘文件导入到Hive

    千次阅读 2019-01-21 18:05:47
    桌面有txt文件名为: words.txt 上传本地服务器: rz 在Hive中建表 create table tmp.words_counts (word string ) STORED AS TEXTFILE LOCATION '/user/portal/...将本地磁盘文件导入Hive表中: LOAD DATA LOCAL I...
    • 桌面有txt文件名为: words.txt
    • 上传至本地服务器: rz
    • 上传到HDFS: hadoop fs -put 12312312.txt /user/portal/user/portal/tmp/words.txt
    • 在Hive中建表

    create external table if not EXISTS tmp.words_counts (word string ) STORED AS TEXTFILE LOCATION '/user/portal/tmp/xx1/words';

    • 将本地磁盘文件导入Hive表中:

    LOAD DATA INPATH '/home/hadoop_portal/tmp/words.txt' OVERWRITE INTO TABLE tmp.words_counts

    • done
    展开全文
  • 文章目录一、scp命令上传文件/文件夹二、macOS登录远程服务器三、进入hive窗口四、hive中创建表五、向创建表中导入txt文件 一、scp命令上传文件/文件夹 可以选择: 上传一个文件: scp -r /path/filename ...
  • 本地文件加载到hive

    2021-04-01 20:30:17
    1文件上传到服务器(xftp)2服务器上的文件上传到s3 1)上传文件 awss3cplocal_file_names3://transsion-bigdata-warehouse/test/shy/upload/upload.txt 2)查看是否上传成功 awss3lss3://transsion-bigdata-warehouse/...
  • 当前内容主要用于本人学习和复习,当前内容主要为使用LOAD方式将本地文件导入导数据库中 主要分为以下情况(struct、map、array): 创建表的时候指定分隔符 本人准备的数据: 1|admin|100,80,50|一等奖:2,二等奖...
  • 从本地上传文件HDFS上的代码!使用hadoop的API操作,使本地文件的代码上传到HDFS上!!!
  • hive本地文件上传到文件系统出错

    千次阅读 2015-09-21 14:53:45
    以前什么都好好的,现在真是问题百出啊。...老老实实找到日志文件,再次定位问题 hive日志得查找方法,看 默认是在/tmp/root 错误日志: 2015-09-21 22:08:46,148 INFO [Thread-7]: hdfs.DFSClient (DFSOutputS
  • 1、本地文件理论上可以是任意格式的数据(.txt , .json , 字符串...) 2、过程完全可以复用(同种类型问题) 数据源示例:json格式数据 [ { "cityId": 19, "cityName": "北京", "province": "北京", "shortWord...
  • csv文件如何上传到hive数据库

    千次阅读 2020-06-28 18:15:38
    1.将文件设置为csv格式文件,数据之间用逗号隔开,尤其是日期数据,要保证将日期数据转换为文本格式。范例如下: dim_budget.csv JDDJ,92,1,2020-6-1,17734.1471445513,17734.1471445513,2020-6-28 15:25 JDDJ,92,10...
  • ‘org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe’ with serdeproperties(“field.elim”=’|’,“serialization.encoding”=‘GBK’) Location ‘hdfs://nameservice1/warehouse…’ stored as textfile ...
  • 需求 将本地/export/servers/data/student.txt 这个目录下的数据导入 hive 的 student(id int, name string)表中。 1.数据准备 (1)在/export/servers/data 这个目录下准备数据 [root@hadoop01 export]$ mkdir ...
  • 本地数据倒入到Hive

    2020-09-01 14:34:37
    本地/opt/module/data/student.txt 这个目录下的数据导入 hive 的 student(id int, name string)表中。 1.数据准备 在/opt/module/data 这个目录下准备数据 mkdir data 在/opt/module/datas/目录下创建 ...
  • 本篇博客,小菌为大家带来关于如何将本地的多个文件导入到Hive分区表中对应的分区上的方法。一共有四种方法,本篇将介绍第一种—Java代码。             &...
  • 本地文件导入hive

    2019-09-21 12:31:04
    本地文件导入Hive案例 1. 必须启动hdfs和yarn [hadoop@hadoop202 hadoop-2.7.2]$ sbin/start-dfs.sh [hadoop@hadoop202 hadoop-2.7.2]$ sbin/start-yarn.sh 2. 将本地/opt/module/hive/input/student....
  • 实战Hive本地文件系统导入数据

    万次阅读 2019-01-06 14:36:56
    最近了解大数据Hadoop相关内容,正好项目中需要与hive 数据仓库交互,前提需要导入数据到Hive中,下面来看下本地文件系统导入hive的实战过程。 正文 四种方式导入数据到Hive 表 从本地文件系统导入数据到Hive 表 ...
  • 1、首先,先将windows系统下的csv文件上传到虚拟机目录中。我的是在/my_dbdata/下 2、启动hive,我提前创建了一个名为toutiao的hive业务数据库。创建时使用的命令: create database if not exists toutiao comment...
  • 一、首先在服务器上登录到Hive建立一个表(以titanic为例): 进入hive,根据文档中的列,创建表,建表语句如下: create table titanic(passenger int, Survived int, Pclass int, N...
  • 本地/opt/module/datas/student.txt这个目录下的数据导入到hive的student(id int, name string)表中。 1.数据准备:在/opt/module/datas/student.txt这个目录下准备数据 (1)在/opt/module/目录下创建datas mkdir ...
  • txt文件导入到hive分区表中

    千次阅读 2020-06-12 17:48:37
    Hive分区表导入txt文件 txt文件数据如下所示 13516987666 196037895 59.28% 25.74 659.02 419 50 语音类:干扰类:覆盖类 baf4d04:baf4d07:baf4d01 196037892:196037895:196037889 20200527 13588688770 190464769 ...
  • 本地文件导入hive(beeline)案例(1) 本地创建/export/data/student.txt文件,把数据导入 hive 的 student(id int, name string)表中。 1.数据准备 (1)在/export/servers/data 这个目录下准备数据 [root@ambari...
  • 现有本地文件,每行两列,内容如下: 0000000026310400 F 0000000029858520 F 0000000042620180 F 0000000044783820 F 0000000045771260 F 创建一个Hive表,使用如下语句: create table if no
  • 2、在HDFS上创建文件夹,并上传本地数据 3、在hive中建表 CREATE EXTERNAL TABLE `abc.info`( `a` string COMMENT 'ID', `b` string COMMENT '名称', `c` string COMMENT '需求' ) row format delimited ...
  • 1.1 新建表,并将本地csv文件上传到该表中(Linux命令行模式下) 准备本地文件,一般都是csv文件。 1、注意记下该文件的分隔符; 2、记下该文件字段名称和字段类型,以及字段顺序!!; 3、注意该文件是否有表头,...
  • 将csv文件导入hive后出现了所有的字段只显示在新建的表的第一个字段中,后面的字段全是null. 出现这种的原因是hive以行分隔数据,需要修改为按逗号’ , ‘ 进行分隔读取, 具体操作如下, 首先在hive中创建自己的...
  • 本地CSV导入hive

    2020-08-05 15:23:16
    背景 从mysql 导出的数据保存为csv文件 导出两个文件,一个有csv的文件头 record1.csv 一个没有csv文件文件头 record0.csv try1 建表语句直接导入 sql=''' CREATE TABLE IF NOT EXISTS default.records ( exer...
  • partition1,partition2" 数据库名:observation (脚本里写死了) 表名:tablename 指定名:field1,field2,field3,field4,field5,field6,field7 分区名:partition1,partition2 文件说明 本地上传文件:/home/hive/...
  • XLSX上传到hive

    2019-06-19 19:26:04
    Excel文件创建HIVE表 步骤一:将excel另存为txt文档(文本文件(制表符分割))假设名字为a.txt 步骤二,将该txt文件导入shell内指定目录中 步骤三,转换编码格式,在指定目录下执行如下命令: piconv -f gb2312 -t ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,911
精华内容 5,564
关键字:

本地文件上传到hive