使用sqoop将MySQL数据import到HDFS,使用snappy压缩

Sqoop admin 3年前 (2018-11-28) 1141次浏览 0个评论 扫描二维码

1、建表

CREATE TABLE `page_views` (
  `track_time` varchar(50) DEFAULT NULL,
  `url` varchar(2000) DEFAULT NULL,
  `session_id` varchar(50) DEFAULT NULL,
  `referer` varchar(2000) DEFAULT NULL,
  `ip` varchar(50) DEFAULT NULL,
  `end_user_id` varchar(50) DEFAULT NULL,
  `city_id` varchar(50) DEFAULT NULL
)

2、加载数据

数据文件下载见文章最后

load data infile "/data/mysql/page_views.dat" into table test.page_views fields terminated by '\t';

3、sqoop安装

具体安装步骤请查看文章:
SQOOP安装部署

4、snappy安装

在hadoop编译的文章中已经介绍过,具体请查看文章:
hadoop2.6.0编译

5、配置hdfs的Snappy对应的codec

1)配置core-site.xml

<property>
  <name>io.compression.codecs</name>
  <value>org.apache.hadoop.io.compress.GzipCodec,
       org.apache.hadoop.io.compress.DefaultCodec,
        org.apache.hadoop.io.compress.BZip2Codec,
        org.apache.hadoop.io.compress.SnappyCodec,
        com.hadoop.compression.lzo.LzopCodec,
        com.hadoop.compression.lzo.LzoCodec
  </value>
</property>

2)配置mapred-site.xml

<!-- 配置 Map段输出的压缩,snappy-->
<property>
  <name>mapreduce.map.output.compress</name>
  <value>true</value>
</property>

<property>
  <name>mapreduce.map.output.compress.codec</name>
  <value>org.apache.hadoop.io.compress.SnappyCodec</value>
  <!--<value>com.hadoop.compression.lzo.LzoCodec</value>-->
</property>
<!-- 配置 MapReduce段输出的压缩,BZip2Codec-->
<property>
  <name>mapreduce.output.fileoutputformat.compress</name>
  <value>true</value>
</property>

<property>
  <name>mapreduce.output.fileoutputformat.compress.codec</name>
  <!--<value>org.apache.hadoop.io.compress.BZip2Codec</value>-->
  <value>com.hadoop.compression.lzo.LzopCodec</value>
</property>

6、从MySQL导入数据到HDFS中

1)导入命令

[hadoop@hadoop000 hadoop]$ sqoop import \
--connect jdbc:mysql://localhost:3306/test \
--username hadoop \
--password 123456 \
--table page_views \
--mapreduce-job-name FromMySQLToHDFS \
-m 1 \
--delete-target-dir \
--target-dir /data/emp_page_views4 \
--fields-terminated-by '\t' \
--null-non-string '0' \
--null-string '' \
--compress \
--compression-codec org.apache.hadoop.io.compress.SnappyCodec

2)查看HDFS文件后缀

[hadoop@hadoop000 hadoop]$ hdfs dfs -ls /data/emp_page_views4
Found 2 items
-rw-r--r--   3 hadoop hadoop          0 2018-12-09 13:54 /data/emp_page_views4/_SUCCESS
-rw-r--r--   3 hadoop hadoop    8831852 2018-12-09 13:54 /data/emp_page_views4/part-m-00000.snappy

3)查看文件内容

[hadoop@hadoop000 hadoop]$ hdfs dfs -text /data/emp_page_views4/part-m-00000.snappy|head -10            
18/12/09 14:07:05 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library from the embedded binaries
18/12/09 14:07:05 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev 52decc77982b58949890770d22720a91adce0c3f]
18/12/09 14:07:05 INFO compress.CodecPool: Got brand-new decompressor [.snappy]
2013-05-19 13:00:00     http://www.taobao.com/17/?tracker_u=1624169&type=1      B58W48U4WKZCJ5D1T3Z9ZY88RU7QA7B1        http://hao.360.cn/      1.196.34.243      NULL    -1
2013-05-19 13:00:00     http://www.taobao.com/item/962967_14?ref=1_1_52_search.ctg_1    T82C9WBFB1N8EW14YF2E2GY8AC9K5M5P        http://www.yihaodian.com/ctg/s2/c24566-%E5%B1%B1%E6%A5%82%E5%88%B6%E5%93%81?ref=pms_15_78_258     222.78.246.228  134939954       156
2013-05-19 13:00:00     http://www.taobao.com/1/?tracker_u=1013304189&uid=2687512&type=3        W17C89RU8DZ6NMN7JD2ZCBDMX1CQVZ1W        http://www.yihaodian.com/1/?tracker_u=1013304189&uid=2687512&type=3       118.205.0.18    NULL    -20

codeobj , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用sqoop将MySQL数据import到HDFS,使用snappy压缩
喜欢 (2)
[a37free@163.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址