如果不想写专门的HDFS入库程序,或者HIVE的入库程序时,可以使用apache下sqoop工具
安装比较简单,从apache镜像中下载下来sqoop解压后即可使用,记得将驱动的jar包copy到sqoop/lib下,注意集群必须是开启的。
apache镜像地址:
http://archive.apache.org/dist/ 解压命令 tar -zxvf sqoop-xxx.tar.gz 使用 ,以下是从贴吧中整理出来的内容,比较全面 <div align="left">1)列出mysql数据库中的所有数据库</div><div align="left">sqoop list-databases –connect jdbc:mysql://localhost:3306/ –username root –password root</div> <div align="left">2)连接mysql并列出test数据库中的表</div><div align="left">sqoop list-tables –connect jdbc:mysql://localhost:3306/test –username root –password root</div><div align="left">命令中的test为mysql数据库中的test数据库名称 username password分别为mysql数据库的用户密码</div> <div align="left">3)将关系型数据的表结构复制到hive中,只是复制表的结构,表中的内容没有复制过去</div><div align="left">sqoop create-hive-table –connect jdbc:mysql://localhost:3306/test</div><div align="left">–table sqoop_test –username root –password 123456 –hive-table</div><div align="left">test</div><div align="left">其中 –table sqoop_test为mysql中的数据库test中的表 –hive-table</div><div align="left"> test 为hive中新建的表名称</div> <div align="left">4)从关系数据库导入文件到hive中</div><div align="left">sqoop import –connect jdbc:mysql://localhost:3306/zxtest –username</div><div align="left">root –password 123456 –table sqoop_test –hive-import –hive-table</div><div align="left">s_test -m 1</div> <div align="left">5)将hive中的表数据导入到mysql中,在进行导入之前,mysql中的表</div><div align="left">hive_test必须已经提起创建好了。</div><div align="left">sqoop export –connect jdbc:mysql://localhost:3306/zxtest –username</div><div align="left"> root –password root –table hive_test –export-dir</div><div align="left">/user/hive/warehouse/new_test_partition/dt=2012-03-05</div> <div align="left">6)从数据库导出表的数据到HDFS上文件</div><div align="left">./sqoop import –connect</div><div align="left">jdbc:mysql://10.28.168.109:3306/compression –username=hadoop</div><div align="left">–password=123456 –table HADOOP_USER_INFO -m 1 –target-dir</div><div align="left">/user/test</div> <div align="left">7)从数据库增量导入表数据到hdfs中</div><div align="left">./sqoop import –connect jdbc:mysql://10.28.168.109:3306/compression</div><div align="left">–username=hadoop –password=123456 –table HADOOP_USER_INFO -m 1</div><div align="left">–target-dir /user/test –check-column id –incremental append</div><div align="left">–last-value 3</div>使用sqoop也有一定的缺陷,比如需要导入的HDFS数据只是一部分可用,或者中间的数据出错,都会对结果造成影响,所以,如果对数据精准要求很高的场景,不适合使用sqoop,但是在像关系型数据库,导入数据到HDFS或者hive的时候确实是一大有力工具。
原文地址:http://blog.csdn.net/qingmu0803/article/details/42676737