sqoop安装及导入hdfs hive

一.sqoop的下载安装
1.下载地址:http://ftp.wayne.edu/apache/sqoop/(推荐下载sqoop1版本)
2.将下载的sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz上传到服务器对应目录下
3.对下载的包进行操作,编辑对应设置

tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C app/
cd sqoop-1.4.7.bin__hadoop-2.6.0/
mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop-1.4.7
cd sqoop-1.4.7/conf/
mv sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh

4.编辑sqoop-env.sh内容,将部分参数指向对应文件目录,再将hive包中的对应mysql的jar包导入进sqoop目录

#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/***/***/***/hadoop-2.7.2
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/***/***/***/hadoop-2.7.2
#set the path to where bin/hbase is available
#export HBASE_HOME=/user

#Set the path to where bin/hive is available
#export HIVE_HOME=
export HIVE_HOME=/***/***/apache-hive-1.2.1-bin
#Set the path for where zookeper config dir is
#export ZOOCFGDIR=/user
cp /***/***/apache-hive-1.2.1-bin/lib/mysql-connector-java-5.1.34-bin.jar /***/***/***/sqoop-1.4.7/lib

5.进行测试

sqoop version

如果出现waring,hbase zook…没有对应目录可以先忽略
6.实例,将mysql数据导入到hdfs

sqoop import -m 1 --connect jdbc:mysql://ip地址/mysql_databases --username 用户名--password '用户密码' --table mysql_table--target-dir /***/***/***/***

7.将mysql表导入到hive表中(hive没有表则创建,有则报错)

sqoop import --connect jdbc:mysql://ip地址/mysql_databses\
--username 用户名--password '用户密码@!' --table mysql_table\
--hive-import \
--hive-database 导入hive的databases\
--create-hive-table \
--fields-terminated-by '\t' \
--null-string '\\N' \
--null-non-string '\\N' \
--split-by id \
-m 1 

8.将mysql的表进行覆盖对应的hive表

sqoop import --connect jdbc:mysql://ip地址/mysql_data_bases --username 用户名--password '用户名密码' --table mysql_table --hive-import --target-dir temp -m 1 --hive-overwrite

9.将对应mysql增量追加到hdfs

sqoop import \
--connect jdbc:mysql://47.94.**.**:***/wesurvey \
--username *** \
--password '***' \
--table vehicle \
--check-column CreatedAt \
--incremental lastmodified \
--last-value "'$date'" \
--as-textfile \
--target-dir /user/hive/warehouse/dms/dms_vehicle \
--fields-terminated-by "\001" \
-m  1 \
--append 
您好,要将HDFS上的数据导入Hive中,可以使用Sqoop工具。Sqoop是一个用于在Hadoop和关系型数据库之间进行数据传输的工具。 以下是使用Sqoop导入HDFS数据Hive的一般步骤: 1. 确保您已经安装并配置好了SqoopHive。 2. 在终端中使用以下命令执行Sqoop导入操作: ``` sqoop import \ --connect jdbc:mysql://mysql_host:port/database \ --username username \ --password password \ --table table_name \ --hive-import \ --hive-table hive_table_name \ --hive-overwrite ``` 其中,`mysql_host`是MySQL数据库的主机名,`port`是MySQL的端口号,`database`是要导入数据库名称,`username`和`password`是连接MySQL所需的用户名和密码,`table_name`是要导入MySQL表名,`hive_table_name`是要在Hive中创建的表名。 3. 根据需要,您可以为Sqoop导入操作提供其他参数,如`--target-dir`来指定HDFS中的目标目录,以及其他Sqoop支持的参数。可以使用`sqoop import --help`命令查看完整的参数列表。 4. 执行命令后,Sqoop将会从MySQL数据库中抽取数据,并将其存储在HDFS上的目标目录中。然后,它将自动在Hive中创建一个与MySQL表结构相匹配的表,并将数据加载到该表中。 请注意,上述命令中的参数和示例是基于MySQL数据库的。如果您使用其他类型的关系型数据库,请根据需要修改连接字符串和其他参数。 希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值