Hadoop数据迁入到Hive

2019-03-28 14:22|来源: 网络

由于很多数据在Hadoop平台,当从hadoop平台的数据迁移到hive目录下时,由于hive默认的分隔符是\,为了平滑迁移,需要在创建表格时指定数据的分割符号,语法如下:

create table test(uid string,name string)row format delimited fields terminated by '\t';

通过这种方式,完成分隔符的指定。

然后通过hadoop fs -cp或者hadoop distcp 进行文件夹复制。

由于数据复制的成本比较高,时间比较慢,当不需要复制数据的时候,可以直接采取移动的方式将hadoop数据转移到hive,hadoop  fs -mv src dest。

一个比较简单的方法是直接创建 external table,语法如下:

create table test(uid string,name string)row format delimited fields terminated by '\t' location 'hdfs';

通过这种方式,避免数据的移动带来时间损耗,提高运行的效率。

相关问答

更多
  • riak 华师大的吧- - 下面来简单介绍各个组件的作用: HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。它是其他一些工具的基础HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。HDFS让Hadoop可以最大化利用磁盘。 HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其所有组 ...
  • order by nulls last 不是标准sql,oracle设计的 可以这么写,再指定一个虚拟列来辅助排序 order by case when col is null then 0 else 1 end , col desc
  • 步骤 Hive提供了jdbc驱动,使得我们可以连接Hive并进行一些类关系型数据库的sql语句查询等操作,首先我们需要将这些驱动拷贝到报表工程下面,然后再建立连接,最后通过连接进行数据查询。 拷贝jar包到FR工程 将hadoop里的hadoop-common.jar拷贝至报表工程appname/WEB-INF/lib下; 将hive里的hive-exec.jar、hive-jdbc.jar、hive-metastore.jar、hive-service.jar、libfb303.jar、log4j.jar ...
  • shell脚本 #!/bin/bash #Please set the synchronize interval,unit is hour. update_interval=24 #Please set the RDBMS connection params rdbms_connstr="jdbc:oracle:thin:@192.168.0.147:1521:ORCLGBK" rdbms_username="SP" rdbms_pwd="fulong" rdbms_table="OMP_SERVICE" ...
  • hadoop的hive 处理数据的格式 没什么要求 只对 结构有要求 必须是结构化数据才能 用hive处理 如果是非结构化 或者 半结构化的 要用 hbase 来处理
  • 您可以使用Sqoop中的--query参数自定义从RDBMS中选择的数据。 您的命令可能如下所示: sqoop import \ --connect jdbc:mysql://host:port/db \ --query 'SELECT name, email, address, NOW() AS timestamp FROM table WHERE $CONDITIONS' \ --split-by name \ --hive-import \ --hive-table table \ --target- ...
  • 因为你是最终目的地是一个蜂巢表。 我建议如下: 创建一个蜂巢决赛桌。 使用以下命令从另一个节点加载数据 LOAD DATA LOCAL INPATH '/kv1.txt' OVERWRITE INTO TABLE table_name; 参考这个 使用Java,您可以使用JSCH lib来调用这些shell命令。 希望这可以帮助。 Since you are final destination is a hive table. I would suggest the fo ...
  • 在hive中创建一个虚拟表,如下所示 create table dummy(dummy string) location '/path'; 上面的路径将有一个包含数据X的文件 现在从jdbc驱动程序运行插入查询,如下所示。 insert into table tblname select forntendvalue1,frontendvalue2 from dual; Create a dummy table in hive like below create table dummy(dummy str ...
  • 是的,可以在没有R Server的情况下访问Hive。 有很多这样做的解决方案,如下所示。 RHive ,一种R扩展,通过Apache Hive实现分布式计算。 有一张你可以参考的幻灯片 ,但它似乎太老了,不支持YARN。 RJDBC ,一个基于JDBC的在R中实现DBI的包。 有一个博客介绍R与Hive的用法。 R包hive ,这个包里有文件,你可以参考并知道如何使用它。 看来R包hive是一个不错的选择,因为它支持Hadoop的版本,即HDInsight基于它的Apache Hadoop >= 2.6. ...
  • HBase中的数据仅由rowkey“索引”。 如果您在Hive中查询除rowkey前缀之外的任何内容,则通常会执行全表扫描。 可以使用HBase过滤器进行一些优化,例如,当使用FamilyFilter时,您可以跳过整个区域,但我怀疑Hive正在这样做。 如何提高性能取决于数据的形成方式以及需要对其执行的分析。 在执行频繁的临时分析时,可以通过将HBase中的数据导出到HDFS上的Parquet文件以及针对Hive(或Drill或Spark,Imapala等)的分析来运行您的分析,从而提供更好的服务。 Dat ...