大数据技术原理与应用

Size: px
Start display at page:

Download "大数据技术原理与应用"

Transcription

1 Flink 编程基础 (Scala 版 ) 教材官网 : 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 6 章 DataSet API (PPT 版本号 :2021 年 3 月版本 ) 林子雨厦门大学计算机科学系 扫一扫访问教材官网 主页 : Flink 编程基础 (Scala 厦门大学计算机科学系版 ) 厦门大学计算机科学系林子雨 2021 版

2 提纲 6.1 DataSet 编程模型 6.2 数据源 6.3 数据转换 6.4 数据输出 6.5 迭代计算 6.6 广播变量 百度搜索厦门大学数据库实验室网站访问平台

3 6.1 DataSet 编程模型 总体而言,Flink 批处理程序的基本运行流程包括以下 4 个步骤 : 创建执行环境 ; 创建数据源 ; 指定对数据进行的转换操作 ; 指定数据计算的输出结果方式 上面第 1 步中创建批处理执行环境的方式如下 : val env = ExecutionEnvironment.getExecutionEnvironment 此外, 还需要在 pom.xml 文件中引入 flink-scala_2.12 依赖库, 具体如下 : <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-scala_2.12</artifactid> <version>1.11.2</version> </dependency>

4 6.2 数据源 文件类数据源 集合类数据源 通用类数据源 第三方文件系统

5 6.2.1 文件类数据源 Flink 提供了从文件中读取数据生成 DataSet 的多种方法, 具体如下 : readtextfile(path): 逐行读取文件并将文件内容转换成 DataSet 类型数据集 ; readtextfilewithvalue(path): 读取文本文件内容, 并将文件内容转换成 DataSet[StringValue] 类型数据集 该方法与 readtextfile(string) 不同的是, 其泛型是 StringValue, 是一种可变的 String 类型, 通过 StringValue 存储文本数据可以有效降低 String 对象创建数量, 减小垃圾回收的压力 ; readcsvfile(path): 解析以逗号 ( 或其他字符 ) 分隔字段的文件, 返回元组或 POJO 对象 ; readsequencefile(key, Value, path): 读取 SequenceFile, 以 Tuple2<Key, Value> 类型返回 以 readtextfile(path) 为例, 可以使用如下语句读取文本文件内容 : val dataset : DataSet[String] = env.readtextfile("file:///home/hadoop/word.txt")

6 6.2.1 文件类数据源 假设有一个 CSV 格式文件 sales.csv, 内容如下 : transactionid,customerid,itemid,amountpaid 111,1,1, ,2,2, ,1,3, ,2,4, ,3,2,500.0

7 6.2.1 文件类数据源 则可以使用如下程序读取该 CSV 文件 : package cn.edu.xmu.dblab import org.apache.flink.api.scala.executionenvironment import org.apache.flink.api.scala._ object ReadCSVFile{ def main(args: Array[String]): Unit = { val benv = ExecutionEnvironment.getExecutionEnvironment val filepath="file:///home/hadoop/sales.csv" val csv = benv.readcsvfile[saleslog](filepath,ignorefirstline = true) csv.print() } case class SalesLog(transactionId:String,customerId:String,itemId:String,amountP aid:double) }

8 6.2.1 文件类数据源 程序的执行结果如下 : SalesLog(111,1,1,100.0) SalesLog(112,2,2,505.0) SalesLog(113,1,3,510.0) SalesLog(114,2,4,600.0) SalesLog(115,3,2,500.0)

9 6.2.2 集合类数据源 Flink 提供了 fromcollection() fromelements() 和 generatesequence() 等方法, 来构建集合类数据源, 具体如下 : fromcollection(): 从集合中创建 DataSet 数据集, 集合中的元素数据类型相同 ; fromelements(): 从给定数据元素序列中创建 DataSet 数据集, 且所有的数据对象类型必须一致 ; generatesequence(): 指定一个范围区间, 然后在区间内部生成数字序列数据集, 由于是并行处理的, 所以最终的顺序不能保证一致 val myarray = Array("hello world","hadoop spark flink") val collectionset = env.fromcollection(myarray) val dataset = env.fromelements("hadoop","spark","flink") val numset = env.generatesequence(1,10)

10 6.2.3 通用类数据源 这里以 Flink 内置的 JDBCInputFormat 类为实例, 介绍通用类数据源的用法 假设已经在 Linux 系统中安装了 MySQL 数据库, 在 Linux 终端中执行如下命令启动 MySQL: $ mysql -u root -p 输入数据库登录密码以后, 就可以启动 MySQL 了, 然后, 执行如下命令创建数据库, 并添加数据 : $ create database flink $ use flink $ create table student(sno char(8),cno char(2),grade int); $ insert into student values('95001','1',96); $ insert into student values('95002','1',94);

11 6.2.3 通用类数据源 新建代码文件 InputFromMySQL.scala, 内容如下 : package cn.edu.xmu.dblab import org.apache.flink.api.common.typeinfo.basictypeinfo import org.apache.flink.api.java.io.jdbc.jdbcinputformat import org.apache.flink.api.java.typeutils.rowtypeinfo import org.apache.flink.api.scala.{dataset, ExecutionEnvironment} import org.apache.flink.api.scala._ object InputFromMySQL{ def main(args: Array[String]): Unit = { // 创建执行环境 val env = ExecutionEnvironment.getExecutionEnvironment

12 6.2.3 通用类数据源 // 使用 JDBC 输入格式从关系数据库读取数据 val inputmysql = env.createinput(jdbcinputformat.buildjdbcinputformat() // 数据库连接驱动名称.setDrivername("com.mysql.jdbc.Driver") // 数据库连接驱动名称.setDBUrl("jdbc:mysql://localhost:3306/flink") // 数据库连接用户名.setUsername("root") // 数据库连接密码.setPassword("123456") // 数据库连接查询 SQL.setQuery("select sno,cno,grade from student") // 字段类型 顺序和个数必须与 SQL 保持一致.setRowTypeInfo(new RowTypeInfo(BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO)).finish() ) inputmysql.print() } }

13 6.2.3 通用类数据源 新建 pom.xml 文件, 在里面添加与访问 MySQL 相关的依赖包, 内容如下 : <project> <groupid>cn.edu.xmu.dblab</groupid> <artifactid>simple-project</artifactid> <modelversion>4.0.0</modelversion> <name>simple Project</name> <packaging>jar</packaging> <version>1.0</version> <repositories> <repository> <id>alimaven</id> <name>aliyun maven</name> <url> </repository> </repositories>

14 6.2.3 通用类数据源 <dependencies> <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-scala_2.12</artifactid> <version>1.11.2</version> </dependency> <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-streaming-scala_2.12</artifactid> <version>1.11.2</version> </dependency> <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-clients_2.12</artifactid> <version>1.11.2</version> </dependency>

15 6.2.3 通用类数据源 <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.40</version> </dependency> <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-connector-jdbc_2.12</artifactid> <version>1.11.2</version> </dependency> </dependencies>

16 6.2.3 通用类数据源 <build> <plugins> <plugin> <groupid>net.alchim31.maven</groupid> <artifactid>scala-maven-plugin</artifactid> <version>3.4.6</version> <executions> <execution> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin>

17 6.2.3 通用类数据源 <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-assembly-plugin</artifactid> <version>3.0.0</version> <configuration> <descriptorrefs> <descriptorref>jar-with-dependencies</descriptorref> </descriptorrefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>

18 6.2.3 通用类数据源 使用 Maven 工具对程序进行编译打包, 然后, 提交到 Flink 中运行 ( 请确认 Flink 已经启动 ) 运行结束以后, 可以在屏幕上看到如下的输出结果 : 95001,1, ,1,94

19 6.2.4 第三方文件系统 Flink 通过 FileSystem 类来抽象自己的文件系统, 这个抽象提供了各类文件系统实现的通用操作和最低保证 每种数据源 ( 比如 HDFS S3 Alluxio XtreemFS FTP 等 ) 可以继承和实现 FileSystem 类, 将数据从各个系统读取到 Flink 中

20 6.2.4 第三方文件系统 DataSet API 中内置了 HDFS 数据源, 这里给出一个读取 HDFS 文件系统的一个实例, 代码如下 : package cn.edu.xmu.dblab import org.apache.flink.api.scala.executionenvironment object ReadHDFS{ def main(args: Array[String]): Unit = { // 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 创建数据源 val inputhdfs = env.readtextfile("hdfs://localhost:9000/word.txt") // 打印输出 inputhdfs.print() } }

21 6.2.4 第三方文件系统 在 pom.xml 文件中, 需要添加与访问 HDFS 相关的依赖包, 内容如下 : <project> <groupid>cn.edu.xmu.dblab</groupid> <artifactid>simple-project</artifactid> <modelversion>4.0.0</modelversion> <name>simple Project</name> <packaging>jar</packaging> <version>1.0</version> <repositories> <repository> <id>alimaven</id> <name>aliyun maven</name> <url> </repository> </repositories>

22 6.2.4 第三方文件系统 <dependencies> <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-scala_2.12</artifactid> <version>1.11.2</version> </dependency> <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-streaming-scala_2.12</artifactid> <version>1.11.2</version> </dependency> <dependency> <groupid>org.apache.flink</groupid> <artifactid>flink-clients_2.12</artifactid> <version>1.11.2</version> </dependency>

23 6.2.4 第三方文件系统 <dependency> <groupid>org.apache.hadoop</groupid> <artifactid>hadoop-common</artifactid> <version>3.1.3</version> </dependency> <dependency> <groupid>org.apache.hadoop</groupid> <artifactid>hadoop-client</artifactid> <version>3.1.3</version> </dependency> </dependencies>

24 6.2.4 第三方文件系统 <build> <plugins> <plugin> <groupid>net.alchim31.maven</groupid> <artifactid>scala-maven-plugin</artifactid> <version>3.4.6</version> <executions> <execution> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin>

25 6.2.4 第三方文件系统 <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-assembly-plugin</artifactid> <version>3.0.0</version> <configuration> <descriptorrefs> <descriptorref>jar-with-dependencies</descriptorref> </descriptorrefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>

26 6.2.4 第三方文件系统 使用 Maven 工具对程序进行编译打包 为了让 Flink 能够顺利访问 HDFS, 需要修改环境变量 如果在学习第 5 章内容时已经完成了修改, 这里就不需要重复操作 ; 如果还没有修改, 执行如下命令修改环境变量 : $ vim ~/.bashrc 该文件中原有配置信息仍然保留, 然后在.bashrc 文件中继续增加如下配置信息 : export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export HADOOP_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath) 执行如下命令使得环境变量设置生效 : $ source ~/.bashrc 使用 flink run 命令把 ReadHDFS 程序提交到 Flink 中运行 ( 请确认 Flink 和 Hadoop 已经启动 ), 如果运行成功, 就可以在屏幕上看到 "hdfs://localhost:9000/word.txt" 文件里面的内容了

27 6.3 数据转换 表 6-1 DataSet API 中常用的算子 算子 功能 map 输入一个元素, 然后返回一个元素, 中间可以做一些清洗 转换等操作 flatmap 输入一个元素, 可以返回零个 一个或者多个元素 mappartition 类似 map, 一次处理一个分区的数据 filter 过滤函数, 对传入的数据进行判断, 符合条件的数据会被 留下 reduce 对数据进行聚合操作, 结合当前元素和上一次 reduce 返回的 值进行聚合操作, 然后返回一个新的值 aggregate 聚合操作, 包括 sum max min 等 distinct 返回一个数据集中去重之后的元素 join 内连接 cross 获取两个数据集的笛卡尔积 union 返回两个数据集的总和, 数据类型需要一致 rebalance 在数据分区时, 根据轮询调度算法, 将数据均匀地分发给 下一级节点 partitionbyhash 在数据分区时, 根据元组的某个属性域进行散列分区 partitionbyrange 在数据分区时, 根据某个属性的范围进行分区

28 6.3 数据转换 数据处理类算子 聚合操作类算子 多表关联类算子 集合操作类算子 分区操作类算子

29 6.3.1 数据处理类算子 1.map map(func) 操作将每个元素传递到函数 func 中, 并将结果返回为一个新的数据集 例如 : val dataset: DataSet[Int] = env.fromelements(1,2,3,4,5) val mapds: DataSet[Int] = dataset.map(x=>x+10) 2.flatMap flatmap(func) 与 map() 相似, 但每个输入元素都可以映射到 0 或多个输出结果 例如 : val dataset: DataSet[String] = env.fromelements("hadoop is good","flink is fast","flink is better") val flatmapds: DataSet[String] = dataset.flatmap(line => line.split(" "))

30 6.3.1 数据处理类算子 3.mapPartition mappartition 的功能和 map 相似, 只是 mappartition 操作是在 DataSet 中基于分区对数据进行处理 val dataset: DataSet[String] = env.fromelements("hadoop","spark","flink") val mappartitionds: DataSet[(String,Int)] = dataset.mappartition(in => in.map( word=> (word,1)) ) 4.filter filter(func) 操作会筛选出满足函数 func 的元素, 并返回一个新的数据集 例如 : val dataset: DataSet[String] = env.fromelements("hadoop is good","flink is fast","flink is better") val filterds: DataSet[String] = dataset.filter(line => line.contains("flink"))

31 6.3.2 聚合操作类算子 1.reduce reduce 算子将 DataSet 数据集通过传入的用户自定义的函数滚动地进行数据聚合处理, 处理以后得到一个新的 DataSet reduce 算子可以作用在整个数据集上, 也可以作用在分组上 (1)reduce 算子作用在整个数据集上 val dataset: DataSet[Int] = env.fromelements(1,2,3,4,5) val reduceds: DataSet[Int] = dataset.reduce(_+_) (2)reduce 算子作用在分组上 可以首先使用 groupby 操作将数据集进行分组, 然后在每个分组上进行 reduce 操作 下面是一个具体实例 :

32 6.3.2 聚合操作类算子 package cn.edu.xmu.dblab import org.apache.flink.api.scala.{dataset, ExecutionEnvironment} import org.apache.flink.api.scala._ case class WordCount(word:String, count:int) object ReduceOperator{ def main(args: Array[String]): Unit = { // 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 创建数据源 val wordcountds: DataSet[WordCount] = env.fromelements( WordCount("spark",1), WordCount("spark",2), WordCount("flink",1), WordCount("flink",1)) // 设定转换操作 val resultds: DataSet[WordCount] = wordcountds.groupby("word").reduce((w1,w2)=>new WordCount(w1.word,w1.count+w2.count)) resultds.print() } }

33 6.3.2 聚合操作类算子 2.aggregate aggregate 算子将一组元素值合并成单个值, 可以作用在整个数据集上, 也可以作用在分组上 Aggregate 函数包括求和 (SUM) 求最小值 (MIN) 和求最大值 (MAX) 多个 aggregate 函数之间用 and 连接 (1) 作用于整个数据集上 package cn.edu.xmu.dblab import org.apache.flink.api.java.aggregation.aggregations import org.apache.flink.api.scala.{dataset, ExecutionEnvironment} import org.apache.flink.api.scala._ object AggregationOperator{ def main(args: Array[String]): Unit = { // 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment

34 6.3.2 聚合操作类算子 // 创建数据源 val input: DataSet[(Int,String,Double)] = env.fromelements( (1,"spark",3.0), (1,"spark",4.0), (1,"spark",4.0), (1,"flink",5.0), (1,"flink",6.0), ) // 指定针对数据集的转换操作 val output: DataSet[(Int,String,Double)] = input.aggregate(aggregations.sum,0).and(aggregations.min,2) // 打印输出 output.print() } } 该程序的输出结果如下 : (5,flink,3.0)

35 6.3.2 聚合操作类算子 (2) 作用于分组上 package cn.edu.xmu.dblab import org.apache.flink.api.java.aggregation.aggregations import org.apache.flink.api.scala.{dataset, ExecutionEnvironment} import org.apache.flink.api.scala._ object AggregationOperator{ def main(args: Array[String]): Unit = { // 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 创建数据源 val input: DataSet[(Int,String,Double)] = env.fromelements( (1,"spark",3.0), (1,"spark",4.0), (1,"spark",4.0), (1,"flink",5.0), (1,"flink",6.0), )

36 6.3.2 聚合操作类算子 // 指定针对数据集的转换操作 val output: DataSet[(Int,String,Double)] = input.groupby(1).aggregate(aggregations.sum,0).and(aggregations.min,2) // 打印输出 output.print() } } 输出结果如下 : (2,flink,5.0) (3,spark,3.0)

37 6.3.2 聚合操作类算子 3.distinct distinct 算子用于去除 DataSet 中所有重复的记录, 实例如下 : val dataset: DataSet[String] = env.fromelements("hadoop","hadoop","spark","flink") val distinctds: DataSet[String] = dataset.distinct()

38 6.3.3 多表关联类算子 1.join 连接 (join) 操作根据指定的条件关联两个数据集, 然后根据选择的字段形成一个数据集 (1) 不带连接函数的形式 val input1: DataSet[(Int,String)] = env.fromelements((1,"spark"),(2,"flink")) val input2: DataSet[(String,Int)] = env.fromelements(("spark",1),("flink",2)) val result = input1.join(input2).where(0).equalto(1) result.print() 程序打印输出的结果如下 : ((1,spark),(spark,1)) ((2,flink),(flink,2))

39 6.3.3 多表关联类算子 (2) 带 JoinFunction 连接函数的形式 Flink 支持在连接的过程中指定自定义的 JoinFunction, 函数的输入为左边数据集中的数据元素和右边数据集中的数据元素所组成的元组, 并返回一个经过计算处理后的数据 package cn.edu.xmu.dblab import org.apache.flink.api.scala.{dataset, ExecutionEnvironment} import org.apache.flink.api.scala._ case class Student(name: String, lesson: String, score: Int) object JoinFunctionTest{ def main(args: Array[String]): Unit = { // 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 设置程序并行度 env.setparallelism(1)

40 6.3.3 多表关联类算子 // 创建数据源 val students: DataSet[Student] = env.fromelements(student("xiaoming","computer",90),student("zhangmei ","english",94)) // 指定针对数据源的转换操作 val weights: DataSet[(String,Double)] = env.fromelements(("computer",0.7),("english",0.4)) val weightedscores = students.join(weights).where("lesson").equalto(0){ (left,right) => (left.name,left.lesson,left.score*right._2) } // 打印输出 weightedscores.print() } } 该程序的输出结果如下 : (xiaoming,computer, ) (zhangmei,english,37.6)

41 6.3.3 多表关联类算子 (3) 带 FlatJoinFunction 连接函数的形式 JoinFunction 和 FlatJoinFunction 的关系, 和 Map 与 FlatMap 的关系是类似的 FlatJoinFunction 可以返回一个或者多个元素, 也可以不返回任何结果 实例如下 : package cn.edu.xmu.dblab import org.apache.flink.api.scala.{dataset, ExecutionEnvironment} import org.apache.flink.api.scala._ case class Student(name: String, lesson: String, score: Int) object FlatJoinFunctionTest{ def main(args: Array[String]): Unit = { // 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 设置程序并行度 env.setparallelism(1)

42 6.3.3 多表关联类算子 // 指定针对数据集的转换操作 val weights: DataSet[(String,Double)] = env.fromelements(("computer",0.7),("english",0.4)) val weightedscores = students.join(weights).where("lesson").equalto(0){ (left,right,out:collector[(string,string,double)]) => if (right._2>0.5) out.collect(left.name,left.lesson,left.score*right._2) } // 打印输出 weightedscores.print() } } 该程序的输出结果如下 : (xiaoming,computer, )

43 6.3.3 多表关联类算子 2.cross cross 算子将两个数据集合并成一个数据集, 返回被连接的两个数据集所有数据行的笛卡尔积, 返回的数据行数等于第一个数据集中符合查询条件的数据行数乘以第二个数据集中符合查询条件的数据行数 package cn.edu.xmu.dblab import org.apache.flink.api.scala.{dataset, ExecutionEnvironment} import org.apache.flink.api.scala._ import org.apache.flink.util.collector case class Coord(id:Int,x:Int,y:Int) object CrossOperator { def main(args: Array[String]): Unit = { // 获取执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 设置程序并行度 env.setparallelism(1)

44 6.3.3 多表关联类算子 // 创建数据源 val coords1: DataSet[Coord] = env.fromelements(coord(1,4,5),coord(2,6,7)) val coords2:dataset[coord] = env.fromelements(coord(3,8,9),coord(4,10,11)) // 指定针对数据集的转换操作 val distances = coords1.cross(coords2){ (c1,c2) => val dist = math.sqrt(math.pow(c1.x-c2.x,2)+math.pow(c1.y-c2.y,2)) (c1.id,c2.id,dist) } // 打印输出 distances.print() } }

45 6.3.3 多表关联类算子 该程序的输出结果如下 : (1,3, ) (2,3, ) (1,4, ) (2,4, )

46 6.3.4 集合操作类算子 比较常用的集合类算子是 union, 主要用于合并两个 DataSet 数据集, 两个数据集的数据元素格式必须相同, 多个数据集可以连续合并 实例如下 : val dataset1: DataSet[(Int,String)] = env.fromelements((1,"spark"),(2,"flink")) val dataset2: DataSet[(Int,String)] = env.fromelements((3,"hadoop"),(4,"storm")) val result: DataSet[(Int,String)] = dataset1.union(dataset2)

47 6.3.5 分区操作类算子 1.Rebalance 模式 该模式根据轮询调度算法, 将数据均匀地分发给下一级节点 其用法如下 : val dataset: DataSet[String] =... val result = dataset.rebalance().map{...} 2.Hash-Partition 模式 该模式根据元组的某个属性域进行散列分区 其用法如下 : val dataset: DataSet[(String,Int)] =... val result = dataset.partitionbyhash(0).mappartition{...} 3.Range-Partition 模式该模式根据某个属性的范围进行分区 其用法如下 : val dataset: DataSet[(String,Int)] =... val result = dataset.partitionbyrange(0).mappartition{...}

48 6.4 数据输出 1. 基于文件的输出接口 Flink 支持多种存储设备上的文件, 包括本地文件和 HDFS 文件等, 同时, Flink 支持多种文件的存储格式, 包括文本文件 CSV 文件等 这里介绍文本文件的输出方法 把数据集输出到本地文件的方法如下 : val dataset: DataSet[(Int,String)] = env.fromelements((1,"spark"),(2,"flink")) dataset.writeastext("file:///home/hadoop/output") env.execute() 需要注意的是, 必须调用 execute() 方法, 否则无法让数据集输出到文件

49 6.4 数据输出 把数据集输出到 HDFS 的方法如下 : val dataset: DataSet[(Int,String)] = env.fromelements((1,"spark"),(2,"flink")) dataset.writeastext("hdfs://localhost:9000/output") env.execute() 在使用 Maven 工具编译打包程序时,pom.xml 文件的内容和 节中的相同, 同时, 也要参照 节中的方法完成环境变量的配置, 才能够顺利写入 HDFS

50 6.4 数据输出 2. 通用输出接口 在 DataSet API 中, 可以使用自定义的 OutputFormat 方法来定义与具体存储系统对应的 OutputFormat, 例如 JDBCOutputFormat 和 HadoopOutputFormat 等 下面是写入 MySQL 数据库的实例 : package cn.edu.xmu.dblab import org.apache.flink.api.java.io.jdbc.{jdbcinputformat, JDBCOutputFormat} import org.apache.flink.api.java.typeutils.rowtypeinfo import org.apache.flink.api.scala.{executionenvironment, _} import org.apache.flink.types.row import org.apache.flink.api.scala.dataset import scala.collection.mutable.arraybuffer

51 6.4 数据输出 object WriteMySQL { def main(args: Array[String]): Unit = { val env = ExecutionEnvironment.getExecutionEnvironment val arr = new ArrayBuffer[Row]() val row1 = new Row(3) row1.setfield(0, "95001") row1.setfield(1, "2") row1.setfield(2, 94) val row2 = new Row(3) row2.setfield(0, "95002") row2.setfield(1, "2") row2.setfield(2, 88) arr.+=(row1) arr.+=(row2)

52 6.4 数据输出 } } val data: DataSet[Row] = env.fromcollection(arr) data.output(jdbcoutputformat.buildjdbcoutputformat() // 数据库连接驱动名称.setDrivername("com.mysql.jdbc.Driver") // 数据库连接地址.setDBUrl("jdbc:mysql://localhost:3306/flink") // 数据库连接用户名.setUsername("root") // 数据库连接密码.setPassword("123456") // 数据库插入 SQL.setQuery("insert into student (sno,cno,grade) values(?,?,?)").finish()) env.execute("insert data to mysql") System.out.println("MySQL 写入成功!")

53 6.4 数据输出 使用 Maven 工具对该程序进行编译打包时,pom.xml 文件的内容和 节中的相同 打包成功以后, 提交到 Flink 中运行, 就会在 MySQL 数据库中写入两条记录 3. 客户端输出 DataSet API 提供的 print() 方法就属于客户端输出 需要注意的是, 当调用 print() 方法把数据集输出到屏幕上以后, 不能再调用 execute() 方法, 否则会报错

54 6.5 迭代计算 所谓迭代计算是指给定一个初值, 用所给的算法公式计算初值得到一个中间结果, 然后将中间结果作为输入参数进行反复计算, 在满足一定条件的时候得到计算结果 迭代计算在批量数据处理过程中有着非常广泛的应用, 比如机器学习和图计算等 DataSet API 对迭代计算功能的支持相对比较完善, 在性能上较其他分布式计算框架也具有明显的优势 Flink 中的迭代计算主要包括两种模式, 即全量迭代计算 (Bulk Iteration) 和增量迭代计算 (Delt Iteration) 全量迭代 增量迭代

55 6.5.1 全量迭代 全量迭代会将整个数据输入, 经过一定的迭代次数, 最终得到结果 图 6-1 给出了全量迭代的基本过程, 具体如下 : Iteration Input( 迭代输入 ): 是初始输入值或者上一次迭代计算的结果 ; Step Function( 步骤函数 ): 步骤函数在每一次迭代中都会被执行, 它由一系列算子组成, 比如 map flatmap join 等 Next Partial Solution( 中间结果 ): 每一次迭代计算的结果, 会被发送到下一次迭代计算中 Iteration Result( 迭代结果 ): 最后一次迭代输出的结果, 会被输出到 DataSink 或者发送到下游处理 ( 作为下一个算子的输入 ) Next Partial Solution 3 1 Iteration Input Step Function 4 Iteration Result 2 Iterate 图 6-1 全量迭代执行过程

56 6.5.1 全量迭代 迭代的结束条件是 : 达到最大迭代次数 : 不需要任何其他条件, 迭代执行到最大迭代次数就会停止 ; 自定义收敛条件 : 允许用户自定义聚合函数和收敛条件 例如将终止条件设置为当 Sum 函数统计结果小于零则终止迭代

57 6.5.1 全量迭代 下面是一个实例 ( 如图 6-2 所示 ), 演示了通过迭代计算把数据集中的每个数都进行增加操作, 具体如下 : Iteration Input( 迭代输入 ): 从一个数据源中读取初始输入数据, 初始数据中包含了 5 个整数 ; Step Function( 步骤函数 ): 步骤函数是一个 map 算子, 它会把每个整数增加 1; Next Partial Solution( 中间结果 ): 步骤函数的输出结果又会成为 map 算子的输入 ; Iteration Result( 迭代结果 ): 经过 10 次迭代, 每个初始整数都增加了 10 Next Partial Solution Map Step Function Iterate 图 6-2 一个全量迭代的实例

58 6.5.1 全量迭代 第 1 次迭代 第 2 次迭代 第 10 次迭代 map(1) -> 2 map(2) -> 3... map(10) -> 11 map(2) -> 3 map(3) -> 4... map(11) -> 12 map(3) -> 4 map(4) -> 5... map(12) -> 13 map(4) -> 5 map(5) -> 6... map(13) -> 14 map(5) -> 6 map(6) -> 7... map(14) -> 15 图迭代过程中数据集的变化情况

59 6.5.1 全量迭代 这里介绍一个全量迭代的实例 使用蒙洛卡特方法来计算圆周率 蒙洛卡特方法的核心思想是 : 假设有一个半径为 1 的圆, 它的面积 S=Pi*R 2 =Pi, 所以, 我们只要计算出这个圆的面积就可以计算出圆周率了 这里我们可以在一个边长为 1 的正方形中计算圆的四分之一扇形的面积, 这样扇形的面积的 4 倍就是整个圆的面积了 如何计算扇形的面积呢? 可以使用概率的方法, 假设在这个正方形中有 n 个点, 其中, 有 m 个点落在了扇形中, 因此,S 扇形 :S 正方形 =m:n, 这样就可以计算出扇形的面积 ( 如图 6-4 所示 ), 最终就可以计算出圆周率了

60 6.5.1 全量迭代 下面是使用蒙洛卡特方法计算圆周率的程序代码 : package cn.edu.xmu.dblab import org.apache.flink.api.scala._ object ComputePi{ def main(args: Array[String]): Unit = { // 创建执行环境 val env = ExecutionEnvironment.getExecutionEnvironment // 创建初始数据集 val initial = env.fromelements(0)

61 6.5.1 全量迭代 // 执行迭代计算 val count = initial.iterate(10000) { iterationinput: DataSet[Int] => val result = iterationinput.map { i => val x = Math.random() val y = Math.random() i + (if (x * x + y * y < 1) 1 else 0) } result } // 计算圆周率 val result = count map { c => c / * 4 } // 打印输出 result.print() } }

62 6.5.2 增量迭代 如图 6-5 所示, 增量迭代并不是每次去迭代全量数据, 而是有两个数据集 WorkSet 和 SolutionSet, 每次输入这两个数据集进行迭代计算, 然后对 WorkSet 进行迭代运算并且不断更新 SolutionSet, 直到达到迭代次数或者 WorkSet 为空, 然后输出迭代计算结果 1 Initial WorkSet Next WorkSet Step Function 3 1 Initial SolutionSet 2 Solution Set Update SolutionSet 3 4 Iteration Result Delta Iterate 图 6-5 增量迭代执行过程

63 6.5.2 增量迭代 增量迭代主要包括以下步骤 : Iteration Input( 迭代输入 ): 读取初始 WorkSet 和初始 SolutionSet 作为第一次迭代计算的输入 ; Step Function( 步骤函数 ): 在每次迭代过程中使用的计算方法, 可以是类似于 map flatmap join 等方法 ; Next Workset/Update Solution Set( 中间结果 ):Next WorkSet 用于驱动迭代计算, 会被反馈到下一次迭代计算中, 而且 SolutionSet 将被不断更新 两个数据集都可以被步骤函数中的算子更新 ; Iteration Result( 迭代结果 ): 最后一次迭代计算的输出, 会被输出到 DataSink 或者发送到下游处理 ( 作为下一个算子的输入 ) 增量迭代的终止条件可以指定为 : WorkSet 为空 : 如果下一次迭代的输入 WorkSet 为空, 则终止迭代 ; 最大迭代次数 : 当计算次数超过指定迭代的最大次数, 则终止迭代

64 6.5.2 增量迭代 下面是一个增量迭代的用法实例 : // 读取初始数据集 val initialsolutionset: DataSet[(Long, Double)] = // [...] val initialworkset: DataSet[(Long, Double)] = // [...] // 设置迭代次数 val maxiterations = 100 val keyposition = 0

65 6.5.2 增量迭代 // 应用增量迭代方法 val result = initialsolutionset.iteratedelta(initialworkset, maxiterations, Array(keyPosition)) { (solution, workset) => val candidateupdates = workset.groupby(1).reducegroup(new ComputeCandidateChanges()) val deltas = candidateupdates.join(solution).where(0).equalto(0)(new CompareChangesToCurrent()) val nextworkset = deltas.filter(new FilterByThreshold()) } (deltas, nextworkset) // 输出迭代计算的结果 result.writeascsv(outputpath) env.execute()

66 6.6 广播变量 广播变量可以理解为是一个公共的共享变量 ( 如图 6-6 所示 ), 通过使用广播变量, 可以把一个数据集广播出去, 然后不同的任务在节点上都能够获取到, 并在每个节点上只会存在一份, 而不是在每个并发线程中存在 如果不使用广播变量, 则在每个节点中的每个任务中都需要拷贝一份数据集, 这样会比较浪费内存

67 6.6 广播变量 TaskManager TaskManager slot( 槽 ) slot( 槽 ) slot( 槽 ) slot( 槽 ) slot( 槽 ) slot( 槽 ) 共享变量 task T 共享变量 task 共享变量 task task task task broadcast( 广播 ) 不使用广播 使用广播 TaskManager slot( 槽 ) 共享变量 task slot( 槽 ) T 共享变量 task slot( 槽 ) 共享变量 task TaskManager slot( 槽 ) slot( 槽 ) task task slot( 槽 ) task broadcast( 广播 )

68 6.6 广播变量 可以使用 DataSet API 提供的 withbroadcastset(dataset,string) 方法来定义广播变量, 这个方法包含了两个参数, 其中, 第 1 个餐数据是需要广播的 DataSet 数据集, 需要在广播之前创建该数据集, 第 2 个参数是广播变量的名称 DataSet API 支持在 RichFunction 接口中通过 RuntimeContext 读取到广播变量 首先在 RichFunction 中实现 Open() 方法, 然后调用 getruntimecontext() 方法获取应用的 RuntimeContext, 接着调用 getbroadcastvariable() 方法通过广播变量名称获取广播变量

69 6.6 广播变量 package cn.edu.xmu.dblab import org.apache.flink.api.common.functions.richmapfunction import org.apache.flink.api.scala.executionenvironment import org.apache.flink.configuration.configuration import scala.collection.mutable.listbuffer import org.apache.flink.api.scala._ object BroadcastDemo { def main(args: Array[String]): Unit = { val env = ExecutionEnvironment.getExecutionEnvironment val rawtdata = ListBuffer[Tuple2[String,Int]]() rawtdata.append(("hadoop",48)) rawtdata.append(("spark",42)) rawtdata.append(("flink",46)) val tupledata = env.fromcollection(rawtdata)

70 6.6 广播变量 // 创建需要广播的数据集 val broadcastdata = tupledata.map(x=>{ Map(x._1->x._2) }) val books = env.fromelements("hadoop","spark","flink") val result = books.map(new RichMapFunction[String,String] { var listdata: java.util.list[map[string,int]] = null var allmap = Map[String,Int]()

71 6.6 广播变量 override def open(parameters: Configuration): Unit = { super.open(parameters) // 获取广播变量数据集 this.listdata = getruntimecontext.getbroadcastvariable[map[string,int]]("broadcastmapname") val it = listdata.iterator() while (it.hasnext){ val next = it.next() allmap = allmap.++(next) } } override def map(value: String) = { val amount = allmap.get(value).get "The amount of "+value+" is:"+amount } }).withbroadcastset(broadcastdata,"broadcastmapname") result.print() } }

72 6.6 广播变量 该程序的输出结果如下 : The amount of hadoop is:48 The amount of spark is:42 The amount of flink is:46

73 6.7 本章小结 相对于 DataStream API 而言,DataSet API 的应用不是特别广泛, 但是, 并不代表 Flink 不擅长批量处理数据 Flink 把批数据看成是流数据的特例, 因此, 可以通过一套引擎来同时处理批数据和流数据 本章对 DataSet 编程模型做了简要介绍, 并阐述了多种不同类型的数据源, 包括文件类数据源 集合类数据源 通用类数据源和第三方文件系统等 同时,Flink 提供了非常丰富的转换算子, 主要包括数据处理类算子 聚合操作类算子 多表关联类算子 集合操作类算子和分区操作类算子等, 本章对这些算子的用法进行了介绍 最后, 本章还介绍了数据输出 迭代计算和广播变量的相关知识

74 附录 A: 主讲教师林子雨简介 主讲教师 : 林子雨 单位 : 厦门大学计算机科学系 个人网页 : 数据库实验室网站 : 扫一扫访问个人主页 林子雨, 男,1978 年出生, 博士 ( 毕业于北京大学 ), 全国高校知名大数据教师, 现为厦门大学计算机科学系副教授, 曾任厦门大学信息科学与技术学院院长助理 晋江市发展和改革局副局长 中国计算机学会数据库专业委员会委员, 中国计算机学会信息系统专业委员会委员 国内高校首个 数字教师 提出者和建设者, 厦门大学数据库实验室负责人, 厦门大学云计算与大数据研究中心主要建设者和骨干成员, 2013 年度 2017 年度和 2020 年度厦门大学教学类奖教金获得者, 荣获 2019 年福建省精品在线开放课程 2018 年厦门大学高等教育成果特等奖 2018 年福建省高等教育教学成果二等奖 2018 年国家精品在线开放课程 主要研究方向为数据库 数据仓库 数据挖掘 大数据 云计算和物联网, 并以第一作者身份在 软件学报 计算机学报 和 计算机研究与发展 等国家重点期刊以及国际学术会议上发表多篇学术论文 作为项目负责人主持的科研项目包括 1 项国家自然科学青年基金项目 (No ) 1 项福建省自然科学青年基金项目 (No.2013J05099) 和 1 项中央高校基本科研业务费项目 (No ), 主持的教改课题包括 1 项 2016 年福建省教改课题和 1 项 2016 年教育部产学协作育人项目, 同时, 作为课题负责人完成了国家发改委城市信息化重大课题 国家物联网重大应用示范工程区域试点泉州市工作方案 2015 泉州市互联网经济调研等课题 中国高校首个 数字教师 提出者和建设者,2009 年至今, 数字教师 大平台累计向网络免费发布超过 1000 万字高价值的研究和教学资料, 累计网络访问量超过 1000 万次 打造了中国高校大数据教学知名品牌, 编著出版了中国高校第一本系统介绍大数据知识的专业教材 大数据技术原理与应用, 并成为京东 当当网等网店畅销书籍 ; 建设了国内高校首个大数据课程公共服务平台, 为教师教学和学生学习大数据课程提供全方位 一站式服务, 年访问量超过 200 万次, 累计访问量超过 1000 万次

75 附录 B: 大数据学习路线图 大数据学习路线图访问地址 :

76 附录 C: 林子雨大数据系列教材 了解全部教材信息 :

77 附录 D: 大数据导论 ( 通识课版 ) 教材 开设全校公共选修课的优质教材 本课程旨在实现以下几个培养目标 : 引导学生步入大数据时代, 积极投身大数据的变革浪潮之中 了解大数据概念, 培养大数据思维, 养成数据安全意识 认识大数据伦理, 努力使自己的行为符合大数据伦理规范要求 熟悉大数据应用, 探寻大数据与自己专业的应用结合点 激发学生基于大数据的创新创业热情 高等教育出版社 ISBN: 定价 :32 元版次 :2020 年 2 月第 1 版教材官网 :

78 附录 E: 大数据导论 教材 林子雨编著 大数据导论 人民邮电出版社,2020 年 9 月第 1 版 ISBN: 定价 :49.80 元教材官网 : 开设大数据专业导论课的优质教材 扫一扫访问教材官网

79 附录 F: 大数据技术原理与应用 ( 第 3 版 ) 教材 大数据技术原理与应用 概念 存储 处理 分析与应用 ( 第 3 版 ), 由厦门大学计算机科学系林子雨博士编著, 是国内高校第一本系统介绍大数据知识的专业教材 人民邮电出版社 ISBN: 定价 :59.80 元 全书共有 17 章, 系统地论述了大数据的基本概念 大数据处理架构 Hadoop 分布式文件系统 HDFS 分布式数据库 HBase NoSQL 数据库 云数据库 分布式并行编程模型 MapReduce Spark 流计算 Flink 图计算 数据可视化以及大数据在互联网 生物医学和物流等各个领域的应用 在 Hadoop HDFS HBase MapReduce Spark 和 Flink 等重要章节, 安排了入门级的实践操作, 让读者更好地学习和掌握大数据关键技术 扫一扫访问教材官网 本书可以作为高等院校计算机专业 信息管理等相关专业的大数据课程教材, 也可供相关技术人员参考 学习 培训之用 欢迎访问 大数据技术原理与应用 概念 存储 处理 分析与应用 教材官方网站 :

80 附录 G: 大数据基础编程 实验和案例教程 ( 第 2 版 ) 本书是与 大数据技术原理与应用 ( 第 3 版 ) 教材配套的唯一指定实验指导书 步步引导, 循序渐进, 详尽的安装指南为顺利搭建大数据实验环境铺平道路 深入浅出, 去粗取精, 丰富的代码实例帮助快速掌握大数据基础编程方法 精心设计, 巧妙融合, 八套大数据实验题目促进理论与编程知识的消化和吸收 结合理论, 联系实际, 大数据课程综合实验案例精彩呈现大数据分析全流程林子雨编著 大数据基础编程 实验和案例教程 ( 第 2 版 ) 清华大学出版社 ISBN: 定价 :69 元 2020 年 10 月第 2 版

81 附录 H: Spark 编程基础 (Scala 版 ) Spark 编程基础 (Scala 版 ) 厦门大学林子雨, 赖永炫, 陶继平编著 披荆斩棘, 在大数据丛林中开辟学习捷径填沟削坎, 为快速学习 Spark 技术铺平道路深入浅出, 有效降低 Spark 技术学习门槛资源全面, 构建全方位一站式在线服务体系 人民邮电出版社出版发行,ISBN: 教材官网 : 本书以 Scala 作为开发 Spark 应用程序的编程语言, 系统介绍了 Spark 编程的基础知识 全书共 8 章, 内容包括大数据技术概述 Scala 语言基础 Spark 的设计与运行原理 Spark 环境搭建和使用方法 RDD 编程 Spark SQL Spark Streaming Spark MLlib 等 本书每个章节都安排了入门级的编程实践操作, 以便读者更好地学习和掌握 Spark 编程方法 本书官网免费提供了全套的在线教学资源, 包括讲义 PPT 习题 源代码 软件 数据集 授课视频 上机实验指南等

82 附录 I: Spark 编程基础 (Python 版 ) Spark 编程基础 (Python 版 ) 厦门大学林子雨, 郑海山, 赖永炫编著 披荆斩棘, 在大数据丛林中开辟学习捷径填沟削坎, 为快速学习 Spark 技术铺平道路深入浅出, 有效降低 Spark 技术学习门槛资源全面, 构建全方位一站式在线服务体系 人民邮电出版社出版发行,ISBN: 教材官网 : 本书以 Python 作为开发 Spark 应用程序的编程语言, 系统介绍了 Spark 编程的基础知识 全书共 8 章, 内容包括大数据技术概述 Spark 的设计与运行原理 Spark 环境搭建和使用方法 RDD 编程 Spark SQL Spark Streaming Structured Streaming Spark MLlib 等 本书每个章节都安排了入门级的编程实践操作, 以便读者更好地学习和掌握 Spark 编程方法 本书官网免费提供了全套的在线教学资源, 包括讲义 PPT 习题 源代码 软件 数据集 上机实验指南等

83 附录 J: 高校大数据课程公共服务平台 扫一扫访问平台主页 扫一扫观看 3 分钟 FLASH 动画宣传片

84 附录 K: 高校大数据实训课程系列案例教材 为了更好满足高校开设大数据实训课程的教材需求, 厦门大学数据库实验室林子雨老师团队联合企业共同开发了 高校大数据实训课程系列案例, 目前已经完成开发的系列案例包括 : 电影推荐系统 ( 已经于 2019 年 5 月出版 ) 电信用户行为分析 ( 已经于 2019 年 5 月出版 ) 实时日志流处理分析 微博用户情感分析 互联网广告预测分析 网站日志处理分析 系列案例教材将于 2019 年陆续出版发行, 教材相关信息, 敬请关注网页后续更新! 扫一扫访问大数据实训课程系列案例教材主页

85 Department of Computer Science, Xiamen University, 2021

大数据技术原理与应用

大数据技术原理与应用 大数据导论 ( 通识课版 ) 教材官网 : http://dblab.xmu.edu.cn/post/bigdataintroduction/ 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 大数据导论 ( 通识课版 ) 课程介绍 (PPT 版本号 :2019 年秋季学期 ) 林子雨厦门大学计算机科学系 扫一扫访问教材官网 E-mail: ziyulin@xmu.edu.cn

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用厦门大学计算机科学系 ( 第 2 版 ) 厦门大学计算机科学系林子雨 2017 年 2 月版本 ziyulin@xmu.edu.cn 大数据技术原理与应用 ( 第 2 版 ) http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 课程介绍 (PPT 版本号 :2017 年 2 月版本

More information

大数据技术原理与应用

大数据技术原理与应用 Spark 编程基础 (Python 厦门大学计算机科学系版 ) 厦门大学计算机科学系林子雨 2019 版 ziyulin@xmu.edu.cn Spark 编程基础 (Python 版 ) 教材官网 : http://dblab.xmu.edu.cn/post/spark-python/ 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 5 章 Spark SQL (PPT

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

大数据导论 ( 通识课版 ) 教材官网 : 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 5 章大数据安全 (PPT 版本号 :2019 年秋季学期 ) 林子雨厦门大

大数据导论 ( 通识课版 ) 教材官网 :   温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 5 章大数据安全 (PPT 版本号 :2019 年秋季学期 ) 林子雨厦门大 大数据导论 ( 通识课版 ) 教材官网 : http://dblab.xmu.edu.cn/post/bigdataintroduction/ 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 5 章大数据安全 (PPT 版本号 :2019 年秋季学期 ) 林子雨厦门大学计算机科学系 扫一扫访问教材官网 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

大数据技术原理与应用

大数据技术原理与应用 厦门大学研究生课程 大数据处理技术 Spark http://dblab.xmu.edu.cn/post/7659/ 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 4 章 Spark 安装和使用方法 (PPT 版本号 :2017 年春季学期 ) 林子雨厦门大学计算机科学系 扫一扫访问班级主页 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu

More information

Spark读取Hbase中的数据

Spark读取Hbase中的数据 Spark 读取 Hbase 中的数据 Spark 和 Flume-ng 整合, 可以参见本博客 : Spark 和 Flume-ng 整合 使用 Spark 读取 HBase 中的数据 如果想及时了解 Spark Hadoop 或者 Hbase 相关的文章, 欢迎关注微信公共帐号 :iteblog_hadoop 大家可能都知道很熟悉 Spark 的两种常见的数据读取方式 ( 存放到 RDD 中 ):(1)

More information

幻灯片 1

幻灯片 1 高校大数据应用与学科人才培养研讨会 厦门大学林子雨博士 / 助理教授 ziyulin@xmu.edu.cn 2017 年 8 月 3 日山东. 烟台 内容提要 大数据课程公共服务平台 大数据技术原理与应用课程建设经验 大数据处理技术 Spark 课程建设经验 大数据课程公共服务平台 大数据课程公共服务平台 建设周期四年 (2013-2017) 投入资金 100 万 + 大数据课程公共服务平台 打造

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用 厦门大学计算机科学系厦门大学计算机科学系林子雨 2015 年版 ziyulin@xmu.edu.cn 大数据技术原理与应用 http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第二章大数据处理架构 Hadoop (PPT 版本号 :2015 年 6 月第 1.0 版 ) 林子雨厦门大学计算机科学系

More information

长 安 大 学 硕 士 学 位 论 文 基 于 数 据 仓 库 和 数 据 挖 掘 的 行 为 分 析 研 究 姓 名 : 杨 雅 薇 申 请 学 位 级 别 : 硕 士 专 业 : 计 算 机 软 件 与 理 论 指 导 教 师 : 张 卫 钢 20100530 长安大学硕士学位论文 3 1 3系统架构设计 行为分析数据仓库的应用模型由四部分组成 如图3 3所示

More information

ABOUT ME AGENDA 唐建法 / TJ MongoDB 高级方案架构师 MongoDB 中文社区联合发起人 Spark 介绍 Spark 和 MongoDB 案例演示

ABOUT ME AGENDA 唐建法 / TJ MongoDB 高级方案架构师 MongoDB 中文社区联合发起人 Spark 介绍 Spark 和 MongoDB 案例演示 完整的大数据解決方案 ABOUT ME AGENDA 唐建法 / TJ MongoDB 高级方案架构师 MongoDB 中文社区联合发起人 Spark 介绍 Spark 和 MongoDB 案例演示 Dataframe Pig YARN Spark Stand Alone HDFS Spark Stand Alone Mesos Mesos Spark Streaming Hive Hadoop

More information

水晶分析师

水晶分析师 大数据时代的挑战 产品定位 体系架构 功能特点 大数据处理平台 行业大数据应用 IT 基础设施 数据源 Hadoop Yarn 终端 统一管理和监控中心(Deploy,Configure,monitor,Manage) Master Servers TRS CRYSTAL MPP Flat Files Applications&DBs ETL&DI Products 技术指标 1 TRS

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

第 06 期 李祥池 : 基于 ELK 和 Spark Streaming 的日志分析系统设计与实现 1 日志 1.1 日志定义 IT 1.2 日志处理方案演进 v1.0 v2.0 Hadoop Storm Spark Hadoop/Storm/Spark v3.0 TB Splunk ELK SI

第 06 期 李祥池 : 基于 ELK 和 Spark Streaming 的日志分析系统设计与实现 1 日志 1.1 日志定义 IT 1.2 日志处理方案演进 v1.0 v2.0 Hadoop Storm Spark Hadoop/Storm/Spark v3.0 TB Splunk ELK SI 电子科学技术第 02 卷第 06 期 2015 年 11 月 Electronic Science & Technology Vol.02 No.06 Nov.2015 年 基于 ELK 和 Spark Streaming 的日志分析系统设计与实现 李祥池 ( 杭州华三通信技术有限公司北京研究所, 北京,100085) 摘要 : 在大数据时代 对数据平台各组件的运行状态实时监控与运行分析具有重要意义

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

DPark MapReduce (Davies) davies@douban.com 2011/12/07 Velocity China 2011 Douban Douban 5500 Douban 5500 1000G, Douban 5500 1000G, 60+ Douban 5500 1000G, 60+ 200+ Douban 5500 1000G, 60+ 200+ > MooseFS

More information

Hive:用Java代码通过JDBC连接Hiveserver

Hive:用Java代码通过JDBC连接Hiveserver Hive: 用 Java 代码通过 JDBC 连接 Hiveserver 我们可以通过 CLI Client Web UI 等 Hive 提供的用户接口来和 Hive 通信, 但这三种方式最常用的是 CLI;Client 是 Hive 的客户端, 用户连接至 Hive Server 在启动 Client 模式的时候, 需要指出 Hive Server 所在节点, 并且在该节点启动 Hive Server

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用厦门大学计算机科学系 ( 第 2 版 ) 厦门大学计算机科学系林子雨 2017 年 2 月版本 ziyulin@xmu.edu.cn 大数据技术原理与应用 ( 第 2 版 ) http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 1 章大数据概述 (PPT 版本号 :2017 年

More information

使用MapReduce读取XML文件

使用MapReduce读取XML文件 使用 MapReduce 读取 XML 文件 XML( 可扩展标记语言, 英语 :extensible Markup Language, 简称 : XML) 是一种标记语言, 也是行业标准数据交换交换格式, 它很适合在系统之间进行数据存储和交换 ( 话说 Hadoop H ive 等的配置文件就是 XML 格式的 ) 本文将介绍如何使用 MapReduce 来读取 XML 文件 但是 Had oop

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Apache Spark 与 多 数 据 源 的 结 合 田 毅 @ 目 录 为 什 么 会 用 到 多 个 数 据 源 Spark 的 多 数 据 源 方 案 有 哪 些 已 有 的 数 据 源 支 持 Spark 在 GrowingIO 的 实 践 分 享 为 什 么 会 用 到 多 个 数 据 源 从 数 据 本 身 来 看 大 数 据 的 特 性 之 一 :Variety 数 据 的 多 样

More information

一 我国部分研究型大学 大学生创新性实验计划 实施的现状 莙政基 莙政基金 外 在学生中有

一 我国部分研究型大学 大学生创新性实验计划 实施的现状 莙政基 莙政基金 外 在学生中有 高等教育研究 乔 连 全 厦门大学教育研究院 福建厦门 从调研情况来看 教育部 大学生创新性实验计划 的实施已取得一定的成效 但 也存在一些问题和不足 结合与国外类似项目的比较 各参与高校应从提高思想认识 创新管理模式 构建课程体系 拓展项目类型 加强项目评价 建立交流平台 落实激励措施等方面进 一步改进和完善 以更好地推动高校人才培养模式改革 培养高素质的创新型人才 研究型大学 创新型人才 本科生科研

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

大数据技术原理与应用

大数据技术原理与应用 分布式数据库厦门大学云计算与大数据研究中心 HBase 厦门大学云计算与大数据研究中心林子雨 2015 ziyulin@xmu.edu.cn 年版 大数据技术公开课 大数据概念 技术与应用 2015 年 10 月 13 日山东大学 第 4 讲分布式数据库 HBase 林子雨博士 / 助理教授厦门大学计算机科学系厦门大学云计算与大数据研究中心 E-mail: ziyulin@xmu.edu.cn 山东大学公开课主页

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Hadoop 生 态 技 术 在 阿 里 全 网 商 品 搜 索 实 战 阿 里 巴 巴 - 王 峰 自 我 介 绍 真 名 : 王 峰 淘 宝 花 名 : 莫 问 微 博 : 淘 莫 问 2006 年 硕 士 毕 业 后 加 入 阿 里 巴 巴 集 团 淘 及 搜 索 事 业 部 ( 高 级 技 术 与 家 ) 目 前 负 责 搜 索 离 线 系 统 团 队 技 术 方 向 : 分 布 式 计 算

More information

Flume-ng与Mysql整合开发

Flume-ng与Mysql整合开发 Flume-ng 与 Mysql 整合开发 我们知道,Flume 可以和许多的系统进行整合, 包括了 Hadoop Spark Kafka Hbase 等等 ; 当然, 强悍的 Flume 也是可以和 Mysql 进行整合, 将分析好的日志存储到 Mysql( 当然, 你也可以存放到 pg oracle 等等关系型数据库 ) 不过我这里想多说一些 :Flume 是分布式收集日志的系统 ; 既然都分布式了,

More information

使用Apache Beam读写HDFS上的文件

使用Apache Beam读写HDFS上的文件 Apache Beam( 原名 Google DataFlow) 是 Google 在 2016 年 2 月份贡献给 Apache 基金会的 Apache 孵化项目, 被认为是继 MapReduce,GFS 和 BigQuery 等之后,Google 在大数据处理领域对开源社区的又一个非常大的贡献 Apache Beam 的主要目标是统一批处理和流处理的编程范式, 为无限, 乱序,web-scale

More information

业 务 与 运 营 Business & Operation (Transform) 加 载 (Load) 至 目 的 端 的 过 程, 该 部 分 在 数 据 挖 掘 和 分 析 过 程 中 为 最 基 础 的 一 部 分 一 个 良 好 的 ETL 系 统 应 该 有 以 下 几 个 功 能 1

业 务 与 运 营 Business & Operation (Transform) 加 载 (Load) 至 目 的 端 的 过 程, 该 部 分 在 数 据 挖 掘 和 分 析 过 程 中 为 最 基 础 的 一 部 分 一 个 良 好 的 ETL 系 统 应 该 有 以 下 几 个 功 能 1 Business & Operation 业 务 与 运 营 大 数 据 技 术 在 精 准 营 销 中 的 应 用 王 小 鹏 北 京 东 方 国 信 科 技 股 份 有 限 公 司 北 京 100102 摘 要 简 要 介 绍 主 流 的 大 数 据 技 术 架 构 和 大 数 据 挖 掘 技 术 ; 阐 述 大 数 据 技 术 在 精 准 营 销 与 维 系 系 统 建 设 中 的 应 用,

More information

培 训 机 构 介 绍 中 科 普 开 是 国 内 首 家 致 力 于 IT 新 技 术 领 域 的 领 航 者, 专 注 于 云 计 算 大 数 据 物 联 网 移 动 互 联 网 技 术 的 培 训, 也 是 国 内 第 一 家 开 展 Hadoop 云 计 算 的 培

培 训 机 构 介 绍  中 科 普 开 是 国 内 首 家 致 力 于 IT 新 技 术 领 域 的 领 航 者, 专 注 于 云 计 算 大 数 据 物 联 网 移 动 互 联 网 技 术 的 培 训, 也 是 国 内 第 一 家 开 展 Hadoop 云 计 算 的 培 Hadoop 2.0 培 训 Hadoop 2.0Training Hadoop 2.0 运 维 与 开 发 实 战 培 训 邀 请 函 培 训 机 构 介 绍 www.zkpk.org 中 科 普 开 是 国 内 首 家 致 力 于 IT 新 技 术 领 域 的 领 航 者, 专 注 于 云 计 算 大 数 据 物 联 网 移 动 互 联 网 技 术 的 培 训, 也 是 国 内 第 一 家 开

More information

厦门大学辅助国内高校开设大数据课程公益项目 一 项目名称厦门大学辅助国内高校开设大数据课程公益项目二 项目介绍大数据时代的到来, 迫切需要高校及时建立大数据技术课程体系, 为社会培养和输送一大批具备大数据专业素养的高级人才, 满足社会对大数据人才日益旺盛的需求 本项目旨在为高校教师开设入门级大数据课

厦门大学辅助国内高校开设大数据课程公益项目 一 项目名称厦门大学辅助国内高校开设大数据课程公益项目二 项目介绍大数据时代的到来, 迫切需要高校及时建立大数据技术课程体系, 为社会培养和输送一大批具备大数据专业素养的高级人才, 满足社会对大数据人才日益旺盛的需求 本项目旨在为高校教师开设入门级大数据课 说 明 书 厦门大学数据库实验室 2015 年 9 月 1 日 厦门大学辅助国内高校开设大数据课程公益项目 一 项目名称厦门大学辅助国内高校开设大数据课程公益项目二 项目介绍大数据时代的到来, 迫切需要高校及时建立大数据技术课程体系, 为社会培养和输送一大批具备大数据专业素养的高级人才, 满足社会对大数据人才日益旺盛的需求 本项目旨在为高校教师开设入门级大数据课程提供全流程辅助, 大力推进高校大数据课程建设

More information

第 03 期 刘高军等 : 基于 CNONIX 的 XML 与 EXCEL 相互转换技术研究 XML XML CNONIX XML EXCEL EXCEL EXCEL EXCEL CNONIXEXCEL XML EXCEL CNONIX XML EXCEL CNONIX 1 CNONIX 数据元分析

第 03 期 刘高军等 : 基于 CNONIX 的 XML 与 EXCEL 相互转换技术研究 XML XML CNONIX XML EXCEL EXCEL EXCEL EXCEL CNONIXEXCEL XML EXCEL CNONIX XML EXCEL CNONIX 1 CNONIX 数据元分析 电子科学技术电子科学技术第 02 卷第 03 期 Electronic 2015 年 Science 5 月 & Technology Electronic Science & Technology Vol.02 No.03 May.2015 年 基于 CNONIX 的 XML 与 EXCEL 相互转换技术研究 刘高军, 李丹, 程利伟, 钱程, 段然 ( 北方工业大学计算机学院, 北京,100144)

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用 http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第八讲基于 Hadoop 的数据仓库 Hive (PPT 版本号 :2016 年 4 月 6 日版本 ) 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu

More information

旅游科学

旅游科学 旅 游 科 学 王春雷 会展专业人才培养模式是一个院校对于会展办学的整体设计 因而需要进行系统性的构建 但目前这方面的研究成果不多 更缺乏实证性的研究 本 文基于文献综述的发现和会展专业的特点 从理论上构建了一个项目驱动型会展 专业人才培养模式的基本框架 进而以上海师范大学会展经济与管理专业为例 侧重从教育理念 培养目标 培养过程 培养制度和培养评价等方面进行了实证研究 项目驱动型 会展专业 人才培养模式

More information

Hadoop&Spark解决二次排序问题(Hadoop篇)

Hadoop&Spark解决二次排序问题(Hadoop篇) Hadoop&Spark 解决二次排序问题 (Spark 篇 ) 问题描述 二次排序就是 key 之间有序, 而且每个 Key 对应的 value 也是有序的 ; 也就是对 MapReduce 的输出 (KEY, Value(v 1,v 2,v 3,...,v n )) 中的 Value(v 1,v 2,v 3,...,v n ) 值进行排序 ( 升序或者降序 ), 使得 Value(s 1,s 2,s

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用 ( 第 2 版 ) http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 9 章 Spark (PPT 版本号 :2017 年 2 月版本 ) 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

通过Hive将数据写入到ElasticSearch

通过Hive将数据写入到ElasticSearch 我在 使用 Hive 读取 ElasticSearch 中的数据 文章中介绍了如何使用 Hive 读取 ElasticSearch 中的数据, 本文将接着上文继续介绍如何使用 Hive 将数据写入到 ElasticSearch 中 在使用前同样需要加入 elasticsearch-hadoop-2.3.4.jar 依赖, 具体请参见前文介绍 我们先在 Hive 里面建个名为 iteblog 的表,

More information

使用Cassandra和Spark 2.0实现Rest API服务

使用Cassandra和Spark 2.0实现Rest API服务 使用 Cassandra 和 Spark 2.0 实现 Rest API 服务 在这篇文章中, 我将介绍如何在 Spark 中使用 Akkahttp 并结合 Cassandra 实现 REST 服务, 在这个系统中 Cassandra 用于数据的存储 我们已经见识到 Spark 的威力, 如果和 Cassandra 正确地结合可以实现更强大的系统 我们先创建一个 build.sbt 文件, 内容如下

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用 厦门大学计算机科学系厦门大学计算机科学系林子雨 2016 年版 ziyulin@xmu.edu.cn 大数据技术原理与应用 http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第一章大数据概述 (PPT 版本号 :2016 年 1 月 24 日版本 ) 林子雨厦门大学计算机科学系

More information

目錄

目錄 資 訊 素 養 線 上 教 材 單 元 五 資 料 庫 概 論 及 Access 5.1 資 料 庫 概 論 5.1.1 為 什 麼 需 要 資 料 庫? 日 常 生 活 裡 我 們 常 常 需 要 記 錄 一 些 事 物, 以 便 有 朝 一 日 所 記 錄 的 事 物 能 夠 派 得 上 用 場 我 們 能 藉 由 記 錄 每 天 的 生 活 開 銷, 就 可 以 在 每 個 月 的 月 底 知

More information

教学输入与学习者的语言输出 温晓虹 本文从三个方面探讨了语言的输入与输出的关系 首先从理论研究的角度讨 论了从语言输入到语言输出的习得过程 实验研究表明 输入的语言素材必须被学习者所接收 即使接收了的内容也并不会自动进入中介语的体系 而是需要进一步对输入语言进行 分解 归类等分析性与综合性的处理 在语言 内化 的基础上 学习者的中介语系统才能 够不断地得到重新组合 趋于目的语 另外 学习者在语言输出前和输出时需要调节

More information

2019 级大数据技术与应用专业人才培养方案 一 专业名称及代码专业名称 : 大数据技术与应用专业代码 : 二 入学要求高中阶段教育毕业生或同等学力人员三 修业年限三年, 专科四 职业面向 ( 一 ) 服务面向 所属专业大类 ( 代码 ) 所属专业类 ( 代码 ) 对应行业 ( 代码 )

2019 级大数据技术与应用专业人才培养方案 一 专业名称及代码专业名称 : 大数据技术与应用专业代码 : 二 入学要求高中阶段教育毕业生或同等学力人员三 修业年限三年, 专科四 职业面向 ( 一 ) 服务面向 所属专业大类 ( 代码 ) 所属专业类 ( 代码 ) 对应行业 ( 代码 ) 2019 级大数据技术与应用专业人才培养方案 一 专业名称及代码专业名称 : 大数据技术与应用专业代码 :610215 二 入学要求高中阶段教育毕业生或同等学力人员三 修业年限三年, 专科四 职业面向 ( 一 ) 服务面向 所属专业大类 所属专业类 对应行业 主要职业类别 主要岗位类别 ( 或技术领域 ) 职业资格证书或技能等级证书举例 电子信息 大类 (61) 计算机类 (02) 软件和信息技术服务业

More information

实验 6 无约束规划与非线性规划模型的求解 姓名 : 徐美君 学号 : 班级 : 数统 (3) 班 一 实验要求 (1) 了解 matlab 中常用优化命令 ( 无约束规划 : fminunc, fminsearch; 约束规 划 :fminbnd, fmincon, fmi

实验 6 无约束规划与非线性规划模型的求解 姓名 : 徐美君 学号 : 班级 : 数统 (3) 班 一 实验要求 (1) 了解 matlab 中常用优化命令 ( 无约束规划 : fminunc, fminsearch; 约束规 划 :fminbnd, fmincon, fmi 实验 6 无约束规划与非线性规划模型的求解 姓名 : 徐美君 学号 :201505060451 班级 : 数统 (3) 班 一 实验要求 (1) 了解 matlab 中常用优化命令 ( 无约束规划 : fminunc, fminsearch; 约束规 划 :fminbnd, fmincon, fminimax) 的用法 (2) 掌握 lingo 软件进行非线性规划问题的求解方法 实验方法 : 先重复实验内容中各例子的操作,

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

WWW PHP Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2

WWW PHP Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2 WWW PHP 2003 1 Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2 Comments PHP Shell Style: # C++ Style: // C Style: /* */ $value = $p * exp($r * $t); # $value

More information

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes

More information

《人员招聘与任用》

《人员招聘与任用》 人 员 招 聘 与 任 用 课 程 整 体 教 学 设 计 ( 03~ 04 学 年 第 一 学 期 ) 课 程 名 称 : 人 员 招 聘 与 任 用 所 属 系 部 : 管 理 系 制 定 人 : 合 作 人 : 王 舜 华 张 桂 清 张 俊 娜 制 定 时 间 : 03 年 0 月 河 北 政 法 职 业 学 院 课 程 整 体 教 学 设 计 一 课 程 基 本 信 息 课 程 名 称 :

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

untitled

untitled -JAVA 1. Java IDC 20 20% 5 2005 42.5 JAVA IDC JAVA 60% 70% JAVA 3 5 10 JAVA JAVA JAVA J2EE J2SE J2ME 70% JAVA JAVA 20 1 51 2. JAVA SUN JAVA J2EE J2EE 3. 1. CSTP CSTP 2 51 2. 3. CSTP IT CSTP IT IT CSTP

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

PowerPoint Presentation

PowerPoint Presentation MATLAB 与 Spark/Hadoop 相集成 : 实现大数据的处理和价值挖 马文辉 2015 The MathWorks, Inc. 1 内容 大数据及其带来的挑战 MATLAB 大数据处理 tall 数组 并行与分布式计算 MATLAB 与 Spark/Hadoop 集成 MATLAB 访问 HDFS(Hadoop 分布式文件系统 ) 在 Spark/Hadoop 集群上运行 MATLAB

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

二 外汇风险溢酬的度量及其时间序列模型

二 外汇风险溢酬的度量及其时间序列模型 外汇风险溢酬理论述评 郑振龙 邓弋威 一 外汇风险溢酬问题的提出 国家自然科学基金项目 非完美信息下基于观点偏差调整的资产定价 福建省自然科 学基金项目 卖空交易对证券市场的影响研究 教育部人文社科一般项目 市场有效性 价格发现与 定价权争夺 基于人民币即期汇率和远期汇率的研究 教育部留学回国人员科研启动基金 人民币 即期与远期汇率关系及外汇市场协同稳定机制研究 郑振龙 男 福建平潭人 厦门大学金融系教授

More information

5 2. 过程与方法 情感 态度与价值观 三 知识结构图 四 教学内容和教学要求 课 程 教学要求 课时安排

5 2. 过程与方法 情感 态度与价值观 三 知识结构图 四 教学内容和教学要求 课 程 教学要求 课时安排 单元教学综述 一 内容概述 2 IE 5 5 10 11 12 13 14 二 教学目标 1. 知识与技能 1 2 3 4 5 2. 过程与方法 1 2 3 4 3. 情感 态度与价值观 1 2 3 三 知识结构图 四 教学内容和教学要求 课 程 教学要求 课时安排 1 10 1 2 11 1 1 2 12 1 2 3 4 1 小学信息技术第 3 册教师用书 续表 课 程 教学要求 课时安排 13

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

Microsoft PowerPoint - Big Data rc Sharing掃盲時間.ppt [相容模式]

Microsoft PowerPoint - Big Data rc Sharing掃盲時間.ppt [相容模式] Big Data RC Sharing 大數據掃盲 Service Planner of Enterprise Big Data 大 數 據 服 務 規 劃 師 企 業 大 數 據 課 程 規 劃 依 照 企 業 資 料 流 程 的 特 殊 性, 安 排 合 適 的 課 程 協 助 企 業 導 入 應 用 大 數 據 案 例 :Etu 資 策 會 平 安 保 險 湖 南 國 防 科 技 大 學 等

More information

站在hadoop上看hive

站在hadoop上看hive Hive 优化以及执行原理 数据平台杨新彦 2014-01-13 1. 整体架构优化 2. MR 阶段优化 3. JOB 优化 4. SQL 作业优化 5. 平台优化 开发量大 为什么要用 hive 简单 SELECT word, count(1) FROM ( select explode(split(line, \s )) AS word FROM article ) w GROUP BY word

More information

02

02 Thinking in C++: Volume One: Introduction to Standard C++, Second Edition & Volume Two: Practical Programming C++ C C++ C++ 3 3 C C class C++ C++ C++ C++ string vector 2.1 interpreter compiler 2.1.1 BASIC

More information

80 1. 芬兰教育发展联盟

80 1. 芬兰教育发展联盟 范怡红 柯丹云 : 文章从芬兰高等教育概况 教师发展政策 组织机构三个方面描述了芬兰高校教师发展的背景与概 况, 并以赫尔辛基大学为案例, 从教师发展部门 教师发展理念 教师发展项目 评估措施 奖励机制等方面进行研 究, 归纳出赫尔辛基大学及芬兰大学教师发展的特色, 为我国的大学教师发展提供参考 : 传统文化 ; 现代文化 ; 连通性 :G65 : A : 1005-9245(2012)05-0079-08

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

宋守信 教授 杨书宏 教授级高工 傅 贵 教授 许开立 教授 高等工程教育专业认证委员会安全工程专业试点工作组 北京交通大学经济管理学院 北京 中国职业安全健康协会培训部 北京 中国矿业大学 北京 资源与安全工程学院 北京 东北大学资源与土木工程学院 沈阳 简要介绍我国高等工程教育专业认证试点的发展状况和主要做法 详细阐述安全工程专业认证以学生为本的指导思想和以质量保证及质量改进为出发点的基本特点

More information

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

分布式数据库期中作业说明

分布式数据库期中作业说明 厦门大学林子雨编著 大数据技术原理与应用 ( 版本号 :2016 年 4 月 20 日版本 ) ( 备注 :2015 年 8 月 1 日第一版教材中没有本章, 本章为 2016 年新增内容, 将被放入第二版教材中 ) ( 版权声明 : 版权所有, 请勿用于商业用途 ) 主讲教师 : 林子雨厦门大学数据库实验室二零一六年四月 中国高校大数据课程公共服务平台, 由中国高校首个 数字教师 的提出者和建设者

More information

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

Microsoft Word - 《Hadoop大数据技术与应用》教学大纲.doc

Microsoft Word - 《Hadoop大数据技术与应用》教学大纲.doc Hadoop 大数据技术原理与应用 课程教学大纲 ( 课程英文名称 ) 课程编号 :201800522062 学分 :5 学分学时 :63 学时 ( 其中 : 讲课学时 51 上机学时 :12) 先修课程 : 后续课程 :Spark 适用专业 : 大数据应用技术开课部门 : 一 课程的性质与目标 Hadoop 大数据技术原理与应用 是互联网 + 创业教育学院软件工程 ( 大数据 人工智能 ) 专业的一门校定必修专业课

More information

untitled

untitled http://idc.hust.edu.cn/~rxli/ 1.1 1.2 1.3 1.4 1.5 1.6 2 1.1 1.1.1 1.1.2 1.1.3 3 1.1.1 Data (0005794, 601,, 1, 1948.03.26, 01) (,,,,,) 4 1.1.1 Database DB 5 1.1.1 (DBMS) DDL ( Create, Drop, Alter) DML(

More information

大数据分析技术 [13] 1.1 大数据 Big Data [2] IBM 5V Volume Velocity Variety Value Veracity Volume Velocity Variety Value Veracity 表 1 大数据特征表 Tab.1

大数据分析技术 [13] 1.1 大数据 Big Data [2] IBM 5V Volume Velocity Variety Value Veracity Volume Velocity Variety Value Veracity 表 1 大数据特征表 Tab.1 2016 2016, Vol. 37, No. 01 37 01 COMPUTER ENGINEERING & SOFTWARE IT 大数据在输变电设备状态评估中的研究 周广 1, 闫丹凤 1, 许光可 2, 李笋 1. 100876 2. 250001 2 摘要 : 电网的高速发展带来海量数据的存储和分析问题, 传统的数据管理和分析工具不再适用 本文主要对大数据分析的相关技术在输变电设备状态评估中的应用进行了研究

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用 http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第十一讲流计算 (PPT 版本号 :2016 年 4 月 27 日版本 ) 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu

More information

课程设置—国民经济学

课程设置—国民经济学 课程设置 国民经济学 序号 课程类型 课程名称 学期 学分 总学时 授课语言 任课教师 ( 职称 ) 1 科学社会主义理论与实践 秋季学期 2 32 中文 学校统开 2 资本论 选读秋季学期 1.5 28 中文经院统开公共学位 3 经济思想史秋季学期 1.5 28 中文经院统开 4 英语 秋季 春季学期 4 64 英文 学校统开 5 高级宏观经济学 Ⅰ 秋季学期 3 56 中文 经院统开 6 高级计量经济学

More information

untitled

untitled Database System Principle Database System Principle 1 SQL 3.1 SQL 3.2-3.3 3.4 3.5 3.6 Database System Principle 2 3.1 SQL SQL Structured Query Language SQL Database System Principle 3 SQL 3.1.1 SQL 3.1.2

More information

数学分析(I)短课程 [Part 2] 4mm 自然数、整数和有理数

数学分析(I)短课程 [Part 2]   4mm 自然数、整数和有理数 .. 数学分析 (I) 短课程 [Part 2] 自然数 整数和有理数 孙伟 华东师范大学数学系算子代数中心 Week 2 to 18. Fall 2014 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014 1 / 78 3. 自然数理论初步 孙伟 ( 数学系算子代数中心 ) 数学分析 (I) 短课程 Week 2 to 18. Fall 2014

More information

2014 10 October 2014 + ( 沈阳理工大学环境与化学工程学院, 辽宁沈阳 110165) 沈阳理工大学环境工程专业改革人才培养模式采取的措施及取得的成效在遵循 实施工程教育, 突出工程实践和 社会实践, 提高学生的创新能力 的人才培养模式的基础上, 通过教学模式改革优化课程设置校企结合建立工程实践能力四年连 续培养体系导师负责制的科研创新能力训练体系, 培养 创新 + 工程实践

More information

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取将导致上次获取的 access_token 失效 接入方可以使用 AppID 和 AppSecret

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Apache CarbonData集群模式使用指南

Apache CarbonData集群模式使用指南 我们在 Apache CarbonData 快速入门编程指南 文章中介绍了如何快速使用 Apache CarbonData, 为了简单起见, 我们展示了如何在单机模式下使用 Apache CarbonData 但是生产环境下一般都是使用集群模式, 本文主要介绍如何在集群模式下使用 Apache CarbonData 启动 Spark shell 这里以 Spark shell 模式进行介绍,master

More information

吉林大学学报 工学版 244 第 4 卷 复杂 鉴于本文篇幅所限 具体公式可详见参考文 献 7 每帧的动力学方程建立及其解算方法如图 3 所示 图4 滚转角速度与输入量 η 随时间的变化波形 Fig 4 Waveform of roll rate and input η with time changing 图5 Fig 5 滚转角随时间的变化波形 Waveform of roll angle with

More information

【附件:社群─申請表】(社群層級) 【四-四-五-1】

【附件:社群─申請表】(社群層級) 【四-四-五-1】 附 件 : 社 群 申 請 表 ( 社 群 層 級 ) 四 - 四 - 五 -1 高 雄 市 辦 理 十 二 年 國 民 基 本 教 育 精 進 國 中 小 教 學 品 質 計 畫 湖 內 區 明 宗 國 小 辦 理 103 年 度 教 師 專 業 學 習 社 群 ---- 環 境 教 育 議 題 社 群 名 稱 環 境 教 育 議 題 -- 風 華 再 現 的 二 仁 溪 召 集 人 或 聯 絡

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用厦门大学计算机科学系 ( 第 2 版 ) 厦门大学计算机科学系林子雨 2017 年 2 月版本 ziyulin@xmu.edu.cn 大数据技术原理与应用 ( 第 2 版 ) http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第 13 章大数据在不同领域的应用 (PPT 版本号 :2017

More information

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法

ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 30 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : /// <summary> /// 测试方法 ExcelUtility 类库使用说明 ( 续 ) 开发 / 设计 : 左文俊 第一个新增功能, 列宽自适应, 当超过 0 个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能, 示例代码如下 : 0 /// 测试方法 : 测试将 DataTable 导出到 EXCEL, 无模板 public void TestExportToExcelByDataTable() string excelpath

More information

Microsoft Word - 王彬_已修改_.doc

Microsoft Word - 王彬_已修改_.doc 第 39 卷 第 1 期 应 用 科 技 Vol.39, No.1 2012 年 2 月 Applied Science and Technology Feb. 2012 doi:10.3969/j.issn.1009-671x.201110009 基 于 J2EE 网 络 教 学 系 统 的 设 计 与 实 现 李 静 梅, 王 彬, 彭 晴 晴 哈 尔 滨 工 程 大 学 计 算 机 科 学 与

More information

如何在 Apache Hive 中解析 Json 数组

如何在 Apache Hive 中解析 Json 数组 问题 我们都知道,Hive 内部提供了大量的内置函数用于处理各种类型的需求, 参见官方文档 :Hive Operators and User-Defined Functions (UDFs) 我们从这些内置的 UDF 可以看到两个用于解析 Json 的函数 :get_json_object 和 json_tuple 用过这两个函数的同学肯定知道, 其职能解析最普通的 Json 字符串, 如下 : hive

More information

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii 前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time

More information

数据结构与算法 - Python基础

数据结构与算法 - Python基础 Python 教材及课件 课件及作业见网址 xpzhang.me 1 1. Python 2. 3. (list) (tuple) 4. (dict) (set) 5. 6. 7. 2 Python Python 3 Python 4 Python 1, 100, -8080, 0,... 0x 0-9, a-f 0 xff00, 0 xa432bf 5 1.24, 3.14, -9.80,...

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Fregata: 轻量级大规模机器学习算法库 Chief Data Scientist, TalkingData 大纲 大规模机器学习的挑战 Fregata 的优点 GSA 算法介绍 GSA 算法在 Spark 上的并行化与 MLLib 的对比如何使用 Fregata Fregata 的发展目标 大规模机器学习两个挑战 计算瓶颈 调参困难 经典算法的计算瓶颈 计算复杂度随数据规模超线性增长 Cheng

More information

什么是 Servlet 技术 Servlet 与 JSP 的联系与区别 实例介绍了解 Servlet 技术的特点和应用领域, 以及与 JSP 的联系与区别 4.EJB 技术 EJB 技术基础 EJB 基本环境的建立 实例介绍了解 EJB 技术的特点和应用领域, 熟悉 EJB 应用的部署和维护 5.S

什么是 Servlet 技术 Servlet 与 JSP 的联系与区别 实例介绍了解 Servlet 技术的特点和应用领域, 以及与 JSP 的联系与区别 4.EJB 技术 EJB 技术基础 EJB 基本环境的建立 实例介绍了解 EJB 技术的特点和应用领域, 熟悉 EJB 应用的部署和维护 5.S 天津大学 Web 开发技术 课程教学大纲 课程代码 : 2160252 课程名称 : Web 开发技术 学 时 : 32 学 分 : 1.5 学时分配 : 授课 : 16 上机 : 16 实验 : 实践 : 实践 ( 周 ): 授课学院 : 计算机科学与技术学院 适用专业 : 计算机科学与技术 先修课程 : Java 语言, 数据结构 一. 课程的性质与目的 Web 开发技术 是计算机科学与技术专业的一门专业选修课

More information

目錄 C ontents Chapter MTA Chapter Chapter

目錄 C ontents Chapter MTA Chapter Chapter 目錄 C ontents Chapter 01 1-1 MTA...1-2 1-2...1-3 1-3...1-5 1-4...1-10 Chapter 02 2-1...2-2 2-2...2-3 2-3...2-7 2-4...2-11...2-16 Chapter 03 3-1...3-2 3-2...3-8 3-3 views...3-16 3-4...3-24...3-33 Chapter

More information

大数据技术原理与应用

大数据技术原理与应用 大数据技术原理与应用 厦门大学计算机科学系厦门大学计算机科学系林子雨 2015 年版 ziyulin@xmu.edu.cn 大数据技术原理与应用 http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第一章大数据概述 (PPT 版本号 :2015 年 6 月第 1.0 版 ) 林子雨厦门大学计算机科学系

More information

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp 01 1.6 Spyder Anaconda Spyder Python Spyder Python Spyder Spyder 1.6.1 Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Spyder Python File

More information

仅 中 方 证 书 学 历 证 书 学 位 证 书 仅 外 方 证 书 学 位 证 书 文 凭 颁 发 证 书 中 外 双 方 证 书 中 方 证 书 学 历 证 书 学 位 证 书 外 方 证 书 学 位 证 书 文 凭 其 他 证 书 证 书 名 称 说 明 : 请 参 照 学 位 授 予 和

仅 中 方 证 书 学 历 证 书 学 位 证 书 仅 外 方 证 书 学 位 证 书 文 凭 颁 发 证 书 中 外 双 方 证 书 中 方 证 书 学 历 证 书 学 位 证 书 外 方 证 书 学 位 证 书 文 凭 其 他 证 书 证 书 名 称 说 明 : 请 参 照 学 位 授 予 和 上 海 师 范 大 学 与 法 国 柏 莱 斯 帕 斯 卡 尔 大 学 合 作 举 办 计 算 机 科 学 与 技 术 专 业 本 科 教 育 项 目 5 年 度 自 评 报 告 一 基 本 情 况 信 息 Ⅰ 基 本 信 息 项 目 名 称 上 海 师 范 大 学 与 法 国 柏 莱 斯 帕 斯 卡 尔 大 学 合 作 举 办 计 算 机 科 学 与 技 术 专 业 本 科 教 育 项 目 Co-operative

More information

Eclipse C C++, or

Eclipse C C++,  or Eclipse C C++, Emailctchen@pl.csie.ntut.edu.tw or s1669021@ntut.edu.tw, s2598003@ntut.edu.tw http://pl.csie.ntut.edu.tw/~ctchen, http://www.ntut.edu.tw/~s2598003/ 2004/9/10 (0.02 ) Eclipse http://www.eclipse.org

More information

Untitled Spreadsheet

Untitled Spreadsheet 20190001001 01 职高汽车营销实习指导教师 缺考 20190001008 01 职高汽车营销实习指导教师 43.5 20190001011 01 职高汽车营销实习指导教师 70 20190002002 02 职高面点实习指导教师 67 20190002005 02 职高面点实习指导教师 62 20190002006 02 职高面点实习指导教师 62 20190002007 02 职高面点实习指导教师

More information