sqoop的安装和导入数据到hdfs和hive

一、Sqoop 安装

1. 下载 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

2. 通过sftp 从本地传到Linux

3. 解压 tar -xzvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

4. 配置/etc/profile

export SQOOP_HOME=/usr/local/sqoop-1.4.7
export PATH=$PATH:$SQOOP_HOME/bin

5. 配置sqoop环境

cd /home/hadoop/hadoop_home/sqoop-1.4.7.bin__hadoop-2.6.0/conf

cp sqoop_env_template.sh sqoop_env.sh

在sqoop-env.sh中添加以下内容

export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export ZOOCFDIR=/usr/local/zookeeper
export ZOOKEEPER_HOME=/usr/local/zookeeper

6. 将JDBC驱动包mysql-connector-java-5.1.46.jar导入sqoop的lib文件夹下

二、Sqoop 导数据

1. 从mysql导入hdfs

./sqoop import \
--connect jdbc:mysql://192.168.***.***:3306/salesdata?useSSL=false \     
--username root \
--password ****** \
--split-by user_id \                             
--table user_view \
--target-dir /user/sqoop/fromMysql/user_view \
--num-mappers 8 \
--fields-terminated-by '\t'

split-by 指定按某个字段分发数据

table 知道mysql中的表名

target-dir 知道hdfs路径

num-mappers可以指定mapper运行计算数量,当指定为1时,可以不用设置split-by参数,不指定num-mappers时,默认为4,当不指定或者num-mappers大于1时,需要指定split-by参数。

sqoop的导入时候,默认导入后的文件的分割符为' , '

如果想要指定分割符需要使用--fields-terminated-by "\t",代表以"\t"作为导入后文件的分隔符

 

2. 从mysql导入hive

./sqoop import \
--connect jdbc:mysql://192.168.***.***:3306/salesdata?useSSL=false \
--username root \
--password *** \
--table user_pay \
--split-by user_id \
--fields-terminated-by '\t' \
--delete-target-dir \
--num-mappers 3 \
--hive-import \
--hive-database zzwods \
--hive-table user_pay 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值