导出HDInsight数据到MySQL(Azure)

在大数据计算中,经常会有一个场景:在Hadoop分布式存储DFS和关系型数据库(MySQL、Oracle、SQL Server)间导入(导出)数据。由于Azure HDInsight是基于公有云的托管式Hadoop,用户在执行数据转移时,与云上Hadoop相连的关系型数据库往往不是本地的数据库引擎,取而代之的是公有云提供的关系型数据库服务,如SQL Database和MySQL on Azure。针对如何使用HDInsight中的工具Sqoop导入(导出)数据到SQL Database,Azure官方文档给出了参考教程,本文具体实践如何使用Sqoop(HDInsight)导出数据到MySQL on Azure的场景。 关于HDInsight:https://azure.microsoft.com/en-us/documentation/articles/hdinsight-high-availability/,本实践中将会提交任务到HDInsight集群,集群中的Head Node分配任务到Worker Node,Worker Node具体实施数据的读取、处理和转移。   关于MySQL on Azure:http://www.windowsazure.cn/home/features/mysql/ 关于Sqoop: https://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html 关于HDInsight和Azure Storage:https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-use-blob-storage/,HDInsight中的数据以冗余的形式存储在Azure Storage中,HDInsight节点可以通过分布式存储路径(WASB)来读写目标数据。同时,用户也可以直接访问Azure Storage对应容器中的HDInsight数据文件。   注:本实践通过Azure PowerShell来实现,主要包括: 创建MySQL数据表,用于接收Sqoop导出的数据。 上传数据样本文件到HDInsight的存储(Azure Storage) 提交数据导出任务(Sqoop Job)到HDInsight集群 跟踪Sqoop任务执行情况并检查输出结果。   第一步:准备MySQL数据表 #MySQL variables = “mysqlservices-sha.chinacloudapp.cn” $MySQLLogin = “login1@jianwmysql”  #注意格式: 登录用户@MySQL服务器名 $MySQLPassword = “password” $MySQLExportedDBName = “testdb01” $tableName = “jtable3”   $confirmation= Read-Host…