hive的数据导入mysql
通过Sqoop将Hive表数据导入到Mysql通常有两种情况。
第一种是将hive上某张表的全部数据导入到mysql对应的表中。
第二种是将hive上某张表中的部分数据导入到mysql对应的表中。
两种方式的区别在于第二种情况需要指定要导入数据的列名称。两种情况的导入方式分别如下:
1.全部导入
Sqoop export --connect jdbc:mysql://127.0.0.1:3306/dbname --username mysql(mysql用户名) --password 123456(密码) --table student(mysql上的表) --hcatalog-database sopdm(hive上的schema) --hcatalog-table student(hive上的表)
2.部分导入
Sqoop export --connect jdbc:mysql://127.0.0.1:3306/dbname --username mysql(mysql用户名) --password 123456(密码) --table student(mysql上的表) --columns "id,name,age" --hcatalog-database sopdm(hive上的schema) --hcatalog-table student(hive上的表)
---------------------
作者:jun_life
来源:CSDN
原文:https://blog.csdn.net/jun_life/article/details/51671347
版权声明:本文为博主原创文章,转载请附上博文链接!
mysql的数据导入hive
//sqoop导入数据测试
## by coco
## 2014-11-21
1. 下载sqoop,本测试安装的hadoop-2.2.0。所以下载的sqoop为:
sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz
下载地址为:
http://mirrors.cnnic.cn/apache/sqoop/1.4.5/
2. 下载后,解压缩,配置即可。
tar -zxvf sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local
cd /usr/local
ln -s /usr/local/sqoop-1.4.5.bin__hadoop-2.0.4-alpha/ sqoop
配置环境变量:
vim /etc/profile 添加如下信息:
export SQOOP_HOME=/usr/local/sqoop
export PATH=.:$JAVA_HOME/bin:$ZK_HOME/bin:$TOMCAT_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$FLUME_HOME/bin:$SQOOP_HOME:/bin:$PATH
修改sqoop配置信息:
cd /usr/local/sqoop/conf
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh 修改如下配置信息:
export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop/share/hadoop/mapreduce
export HBASE_HOME=/usr/local/hbase
export HIVE_HOME=/usr/local/hive
source /etc/profile
3. 测试
sqoop不需要启动,通过测试与mysql的链接测试sqoop的可用性。
1. 测试与mysql的链接
[root@wwn97 ~]# /usr/local/sqoop/bin/sqoop list-databases --connect jdbc:mysql://192.168.8.97:3306 --username root --password 123456
Warning: /usr/local/sqoop/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /usr/local/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
14/11/21 11:12:32 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5
14/11/21 11:12:32 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
14/11/21 11:12:33 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
cacti
cr_debug
db1
gcd_sup
hive
hive4
mysql
performance_schema
test
显示出数据库中的数据库信息。说明sqoop配置成功。
*****测试参考的文件:
http://blog.javachen.com/2014/08/04/import-data-to-hive-with-sqoop/
2. 测试把mysql表中的数据装载到hive中
sqoop import --connect jdbc:mysql://192.168.8.97:3306/db1?charset-utf8 --username root --password 123456 --table pd_info --columns "pid,cid" --hive-import --hive-table pid_cid
3. 测试把mysql中表的增量数据追加数据到hive中:
sqoop import --connect jdbc:mysql://192.168.8.97:3306/db1?charset-utf8 --username root --password 123456 --table pd_info --columns "pid,cid" --check-column pid --incremental append --last-value 165 --hive-import --hive-table pid_cid
4. 测试把mysql表中数据导入到hdfs中
[root@wwn97 ~]# hadoop dfs -mkdir /test
sqoop import --connect jdbc:mysql://192.168.8.97:3306/db1?charset-utf8 --username root --password 123456 --table pd_info --columns "pid,cid" --target-dir "/test/aa.txt"
//可以加条件
sqoop import --connect jdbc:mysql://192.168.8.97:3306/db1?charset-utf8 --username root --password 123456 --table pd_info --columns "pid,cid" --where "pid=3" --target-dir "/test/b.txt"
5. 测试把mysql表中的数据,创建到hive中对应的表
sqoop import --connect jdbc:mysql://192.168.8.97:3306/db1?charset-utf8 --username root --password 123456 --table pd_info --columns "pid,cid" --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --create-hive-table --hive-table hive_tab
6. 测试合并hdfs文件
sqoop merge --new-data /test/aa.txt --onto /test/b.txt --merge-key pid --target-dir /test/merged --jar-file /test/merged.jar --class-name merged
注: 其中--class-name所指定的class名是对应于merged.jar中的merged类,而merged.jar是通过Codegen生成的。
---------------------
作者:wulantian
来源:CSDN
原文:https://blog.csdn.net/wulantian/article/details/52980274
版权声明:本文为博主原创文章,转载请附上博文链接!