我是靠谱客的博主 慈祥小伙,最近开发中收集的这篇文章主要介绍sqoop实战(五),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1 Importing Data Directly into Hive  关系型数据库-----hive

sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table tbl_place

--hive-import

表要有主键啊!!!

sqoop和hive的导入默认的导入路径是不一样的!但是不能存在

成功~

130410_bx79_2355324.jpg

**For example, if you

want to change the Hive type of column id to STRING and column price to DECIMAL,

you can specify the following Sqoop parameters:

sqoop import

...

--hive-import

--map-column-hive id=STRING,price=DECIMAL

自己来一个:

sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table tbl_place

--hive-import

--map-column-hive place_code=STRING

成功!

**导入HIVE的过程:

1  先将数据导入临时表。

2  导入成功后

3  creating a table

4  loading the data from a temporary location.


**临时位置可以用 --target-dir or --warehouse-dir 两个参数指定。但是不要使用/user/hive/warehouse,容易在第三阶段出现问题。

**默认情况,已存在的表中如果有数据,则追加。

如果想删除原来的数据,再迁移的话,使用参数:--hive-overwrite

自己来一个:

sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table tbl_place

--hive-overwrite  

成功!

3 Using Partitioned Hive Tables---使用分区的hive表

**

sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table tbl_place

--hive-import

--hive-partition-key place_code

--hive-partition-value "2016-02-26"

脑下面的错误。我在想是不是从因为我的hive不是一个集群导致的?----有待解决!

134827_7y0e_2355324.jpg

**Sqoop要求分区列为字符串类型。

**hive的分区支持是实现虚拟列,不属于数据本身。

**--hive-partition-value这个参数得值不能是列名称。

4  Replacing Special Delimiters During Hive Import----特殊字符

**当数据中包含HIVE的分隔符时,想要清除这些分隔符。

sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table cities

--hive-import

--hive-drop-import-delims

**也可以替换这些分隔符:

sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table cities

--hive-import

--hive-delims-replacement "SPECIAL"

**hive 分隔符有: n, t, and 1 

5 Using the Correct NULL String in Hive

sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table cities

--hive-import

--null-string '\N'

--null-non-string '\N'

**hive处理空字符默认用:/N

**sqoop处理空字符默认用:null

**不会抛异常。坑爹!!!  可以存在空值,但是无法查询操作。有个卵用~

6 ***Importing Data into HBase


sqoop import

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table cities

--hbase-table cities

--column-family world

**To insert data into HBase there are three mandatory parameters:

1 表名

2 列族名称

3 行键

** --hbase-row-key parameter.

**HBase不会自动建表。需要指定 --create-hbasetable.

**运行导入命令以前,列族和表必须存在

7  Importing All Rows into HBase

**sqoop import

-Dsqoop.hbase.add.row.key=true

--connect jdbc:mysql://192.168.130.221/sqoop

--username root

--password root

--table cities

--hbase-table cities

--column-family world


**HBase中不允许存在空值。

**HBase序列化的时候会跳过空值


**sqoop.hbase.add.row.key指示Sqoop插入行的键列两次,一次

作为行标识符,然后再次在数据本身。即使所有其他列包含空的行键的列至少不会是空的,这将允许插入该行在HBase。

Improving Performance When Importing into HBase

**在导入前,HBase创建表时,多区域。more regions

hbase> create 'cities', 'world', {NUMREGIONS => 20, SPLITALGO => 'HexString Split'}


**默认情况下,每一个新的HBase表只有一个区域,可以仅通过一个服务区域服务器。这意味着,每一个新的表将只提供一个物理节点。





 












转载于:https://my.oschina.net/u/2355324/blog/624760

最后

以上就是慈祥小伙为你收集整理的sqoop实战(五)的全部内容,希望文章能够帮你解决sqoop实战(五)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部