博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目创建 流程
阅读量:6935 次
发布时间:2019-06-27

本文共 4075 字,大约阅读时间需要 13 分钟。

使用工具 idea

一个项目有很多功能 它可以包含很多方面 为此 我们首先要做的就是分析需求根据需求来创建项目 但是发现一个项目中含有的东西如果放在一起的话就会变得十分乱
哪么 对于这个项目来讲 就需要将它按功能划分成模块 比如一个大数据项目 有web 部分 数据部分 整个流程 就是 从web或者关系型数据库得到数据 然后经过分析处理 然后变成可视化图形数据 那么 采集数据就需要分为一个模块 在这个模块 包括例如sqoop的连接 创建 启动 过程 也包含数据的导入导出过程 web部分展示数据也含有将数据记录到关系型数据库中
值得注意的是 再maven项目结构上 需要在总项目的pom中

pom

项目结构:

image

这个类创建了两个方法 分别是连接sqoop连接hdfs 和 sqoop 连接PostgreSql数据库

package com.zhiyou100.sqoop.linkimport org.apache.sqoop.client.SqoopClientimport org.apache.sqoop.model.{MConfig, MInput, MLink}object LinkCreator {  val url="http://master:12000/sqoop/"  val client =new SqoopClient(url)  //创建hdfslink  //创建postgresql link link  def createHdfsLink()={    val hdfsLink =client.createLink("hdfs-connector")    val linkConfig =hdfsLink.getConnectorLinkConfig()    val configs:java.util.List[MConfig] =linkConfig.getConfigs()    printLinkConfigruation(configs)//    for(i<-0 until configs.size()){//      val inputs:java.util.List[MInput[_]]=configs.get(i).getInputs//      for(j<-0 until inputs.size()){//        val input =inputs.get(j)//        println(input)//      }//    }    linkConfig.getStringInput("linkConfig.uri").setValue("hdfs://master:9000")    linkConfig.getStringInput("linkConfig.confDir").setValue("/opt/SoftWare/Hadoop/hadoop-2.7.3/etc/hadoop")    hdfsLink.setName("btrip_hdfs")    val status =client.saveLink(hdfsLink)    getStatus(status.canProceed)////    if(status.canProceed){//      println("hdfs_link 创建成功")//    }else{//      println("hdfs_link 常见失败")//    }//    for(config:MConfig<-configs) {//      val inputs :java.util.List[MInput[_]]=config.getInputs()//      for(input:)//      println()//    }  }  def createPostgresqlLink()={val pglink =client.createLink("generic-jdbc-connector")    val linkConfig =pglink.getConnectorLinkConfig()    printLinkConfigruation(linkConfig.getConfigs)    linkConfig.getStringInput("linkConfig.jdbcDriver").setValue("org.postgresql.Driver")    linkConfig.getStringInput("linkConfig.connectionString").setValue("jdbc:postgresql://192.168.6.168:5432/WscHMS")    linkConfig.getStringInput("linkConfig.username").setValue("postgres")    linkConfig.getStringInput("linkConfig.password").setValue("123456")    linkConfig.getStringInput("dialect.identifierEnclose").setValue("5")    pglink.setName("link_postgresql")    val status =client.saveLink(pglink)    getStatus(status.canProceed)  }  def printLinkConfigruation(configs:java.util.List[MConfig]) ={    for(i<-0 until configs.size()){      val inputs:java.util.List[MInput[_]]=configs.get(i).getInputs      for(j<-0 until inputs.size()){        val input =inputs.get(j)        println(input)      }    }  }  def getStatus(statuscanProceed:Boolean)={    if(statuscanProceed){      println("hdfs_link 创建成功")    }else{      println("hdfs_link 常见失败")    }  }  def main(args: Array[String]): Unit = {//    createHdfsLink()    createPostgresqlLink()  }}

创建job

def createJob()={  val sql=    """      |select *      | from ***      | ${CONDITIONS}      |    """.stripMargin  val job=client.createJob("link_postgresql","btrip_hdfs")  job.setName("postgreSql")  val fromConfig =job.getFromJobConfig()  val toConfig =job.getToJobConfig()  showFromJobConfig(fromConfig) showToJobConfig(toConfig)  fromConfig.getStringInput("fromJobConfig.schemaName").setValue("wsc")  fromConfig.getStringInput("fromJobConfig.tableName").setValue("tb_company")  fromConfig.getStringInput("fromJobConfig.sql").setValue(sql)  fromConfig.getStringInput("fromJobConfig.boundaryQuery").setValue("false")  fromConfig.getStringInput("fromJobConfig.partitionColumn").setValue("company_id")//  fromConfig.getStringInput("dialect.identifierEnclose").setValue("")  toConfig.getEnumInput("toJobConfig.outputFormat").setValue("TEXT_FILE")  toConfig.getEnumInput("toJobConfig.compression").setValue("NONE")  toConfig.getStringInput("toJobConfig.outputDirectory").setValue("/sqoop/btrip_pg")  toConfig.getBooleanInput("toJobConfig.appendMode").setValue(true)//  job.setName("btrip_company")  val status =client.saveJob(job)  if(status.canProceed){    println("job 创建成功")  }else{    println("job 创建失败")  }}

转载地址:http://ekznl.baihongyu.com/

你可能感兴趣的文章
[Eclipse] - Eclipse空格替换tab
查看>>
使用XML模板在excel进行配置
查看>>
组策略的优先级是 本地》站点》域》组织单位
查看>>
构造函数,析构函数,对象连的简单应用
查看>>
UI高级----Images.xcassets
查看>>
linux select与多进程的结合
查看>>
Can't open /var/run/atd.pid to signal atd. No atd running?
查看>>
WebSphere概要文件类型
查看>>
app打开本系统自动登陆设计
查看>>
Oracle XTTS跨平台数据库迁移(从Unix迁移数据库到Linux)_Oracle数据库迁移项
查看>>
Linux服务器后门检测RKHunter及被***后处理思路
查看>>
我的友情链接
查看>>
HDU 3826 Squarefree number:题目解答源码
查看>>
Hive表与hdfs文件关联
查看>>
Linux文件夹共享(NFS)
查看>>
桌面桌面虚拟化-Vmware 兼容性怎么查询
查看>>
docker的学习笔记(一)-一些基本的命令的学习
查看>>
JavaScript学习历程和心得
查看>>
Linux大文件处理,伪分区
查看>>
我的友情链接
查看>>