sqoop的配置和使用

一、sqoop的配置

1、上传压缩包,解压

2、配置环境变量

3、添加数据库驱动包

cp mysql-connector-java-5.1.10.jar /sqoop/lib

4、重命名配置文件

mv sqoop-env-template.sh sqoop-env.sh

5、修改配置configure-sqoop

去掉未安装服务相关内容;例如(HBase、HCatalog、Accumulo):

• #if [ ! -d "${HBASE_HOME}" ]; then 
• #  echo "Error: $HBASE_HOME does not exist!" 
• #  echo 'Please set $HBASE_HOME to the root of your HBase installation.' 
• #  exit 1 

6、测试

– sqoop version

– sqoop list-databases -connect jdbc:mysql://node1:3306/ -username root -password 123456

7、sqoop导入数据(从mysql导入数据到hdfs中)

#导入简单的表
import
--connect
jdbc:mysql://node1:3306/result_db
--username
root
--password
123456
--table
dimension_browser
--columns
id,browser_name,browser_version
--where
'browser_name="Firefox"'
--target-dir
hdfs://node1:9000/sqoop/data1
--as-textfile
--m
1
--delete-target-dir
--fetch-size
10

8、链表导入

import
--connect
jdbc:mysql://node1:3306/result_db
--username
root
--password
123456
--query
'select b.browser_name,b.browser_version,d.new_install_users  from stats_device_browser d join dimension_browser b on d.browser_dimension_id=b.id where b.browser_name="Firefox" and $CONDITIONS'
--target-dir
hdfs://node1:9000/sqoop/data2
--as-textfile
--m
1
--delete-target-dir
--fetch-size
10

9、导入数据到hive中,工作机制,通过mapreduce把关系型数据库的数据导入到hdfs中去,然后创建hive表,然后通过load data加载数据到hive表中

import
--connect
jdbc:mysql://node1:3306/result_db
--username
root
--password
123456
--query
'select b.browser_name,b.browser_version,d.new_install_users  from stats_device_browser d join dimension_browser b on d.browser_dimension_id=b.id where b.browser_name="IE" and $CONDITIONS'
--target-dir
hdfs://node1:9000/sqoop/data3
--as-textfile
--m
1
--delete-target-dir
--fetch-size
10
--hive-import
--hive-overwrite
--create-hive-table
--hive-table
t_test1

10、导出数据,从hdfs中把数据导出到mysql中

export
--connect
jdbc:mysql://node1:3306/test
--username
root
--password
123456
--table
t_sqoop
--columns
id,abc,efg
--export-dir
hdfs://node1:9000/sqoop/data1
--m
1

二、hbase和hive的整合

https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

1、把hive/lib下的hive-hbase-handler-1.2.1.jar,cp到hbase/lib 下,如果是hbase集群,则要把这个jar包cp到每个节点的hbase/lib下

2、把hbase中的所有的jar,cp到每个安装hive的hive/lib下

3、在hive的配置文件hive-site.xml增加属性:node3、node4、node5是zookper集群所在的节点

<property>
    <name>hbase.zookeeper.quorum</name>
    <value>node3,node4,node5</value>
</property>

4、在hive中创建临时表

–中间表第一个字段名字为key(必须)

CREATE EXTERNAL TABLE tmp_order 
(key string,id string,user_id string)  
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,order:order_id,order:user_id")  
TBLPROPERTIES ("hbase.table.name" = "t_order"); 

5、在hbase中就有了表t_order

6、导入数据,从hive的t_hive_order 导入到hive临时(tmp_order)在hive执行命令:

insert into table tmp_order
      select concat(user_id,'_',date_format(order_createtime,'yyyy'),'_',id),
             id,
             user_id,
             order_amount,
             order_status,
             order_createtime
          from t_order where day='20160113'

7、以下通过shell方式导入数据

#!/bin/bash
#
label="2015-04-01"
hive -e "insert into table tmp_order
          select concat(user_id,'_',order_createtime,'_',id),
                 id,
                 user_id,
                 order_amount,
                 order_status,
                 order_createtime
              from t_hive_order where day='$label'" && echo 'import order data success!'
    原文作者:wendy0101
    原文地址: https://www.jianshu.com/p/82029882a435
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞