- 入门Apache Spark:基础知识和架构解析
juer_0001
javaspark
介绍ApacheSparkSpark的历史和背景ApacheSpark是一种快速、通用、可扩展的大数据处理引擎,最初由加州大学伯克利分校的AMPLab开发,于2010年首次推出。它最初设计用于支持分布式计算框架MapReduce的交互式查询,但逐渐发展成为一种更通用的数据处理引擎,能够处理数据流、批处理和机器学习等工作负载。Spark的特点和优势Spark是一种快速、通用、可扩展的大数据处理框架,
- Spark核心算子对比:`reduceByKey`与`groupByKey`源码级解析及生产调优指南
数据大包哥
大数据spark分布式
Spark核心算子对比:reduceByKey与groupByKey源码级解析及生产调优指南1.核心机制对比在Spark中,reduceByKey和groupByKey都是对键值对RDD(RDD[(K,V)])进行聚合操作的高阶算子,但两者的底层实现和性能表现截然不同。特性reduceByKeygroupByKeyShuffle前预聚合✅启用(mapSideCombine=true)❌禁用(map
- spark为什么比mapreduce快?
京东云开发者
sparkmapreduce大数据
作者:京东零售吴化斌spark为什么比mapreduce快?首先澄清几个误区:1:两者都是基于内存计算的,任何计算框架都肯定是基于内存的,所以网上说的spark是基于内存计算所以快,显然是错误的2;DAG计算模型减少的是磁盘I/O次数(相比于mapreduce计算模型而言),而不是shuffle次数,因为shuffle是根据数据重组的次数而定,所以shuffle次数不能减少所以总结spark比ma
- Spark 运行问题 java.lang.NoSuchMethodError 解决方案
@飞往你的山
sparkscala
一般情况,出现这种问题是因为scala和spark的版本不匹配,需要重新下载两者相匹配的版本。File-ProjectStructure-Libraies-“+”-java选择spark目录下jars文件夹Maven项目,pom.xml文件中添加Spark依赖,需要联网下载,或者本地库中已经下载好依赖包2.3.3org.apache.sparkspark-core_2.11${spark.vers
- 如何使用Spark Streaming将数据写入HBase
Java资深爱好者
sparkhbase大数据
在SparkStreaming中将数据写入HBase涉及到几个步骤。以下是一个基本的指南,帮助你理解如何使用SparkStreaming将数据写入HBase。1.环境准备HBase:确保HBase集群已经安装并运行。Spark:确保Spark已经安装,并且Spark版本与HBase的Hadoop版本兼容。HBaseConnectorforSpark:你需要使用HBase的SparkConnecto
- Spark技术系列(一):初识Apache Spark——大数据处理的统一分析引擎
数据大包哥
#Spark大数据
Spark技术系列(一):初识ApacheSpark——大数据处理的统一分析引擎1.背景与核心价值1.1大数据时代的技术演进MapReduce的局限性:磁盘迭代计算、中间结果落盘导致的性能瓶颈Spark诞生背景:UCBerkeleyAMPLab实验室为解决复杂迭代计算需求研发(2010年开源)技术定位:基于内存的通用分布式计算框架(支持批处理、流计算、机器学习、图计算等)1.2Spark内置模块S
- 阿里云服务器的作用
腾云服务器
阿里云服务器云计算
使用阿里云服务器能做什么?大家都知道可以用来搭建网站、数据库、机器学习、Python爬虫、大数据分析等应用,阿里云服务器网来详细说下使用阿里云服务器常见的玩法以及企业或个人用户常见的使用场景:玩转阿里云服务器使用阿里云服务器最常见的应用就是用来搭建网站,例如个人博客、企业网站等;除了搭建网站还可以利用阿里云GPU服务器搭建机器学习和深度学习等AI应用;使用阿里云大数据类型云服务器做数据分析;利用云
- 数据湖构建
HaoHao_010
服务器云服务器云计算阿里云
阿里云的数据湖构建(DataLake)是一种用于存储和处理大量不同类型数据的解决方案,通常用于大数据分析和机器学习等应用场景。数据湖与传统的数据仓库不同,它能够存储结构化、半结构化和非结构化数据,支持大规模数据的整合、存储、查询和分析。阿里云提供了一整套工具和服务来帮助企业构建数据湖,以下是数据湖构建的主要步骤和关键服务:1.数据湖概述数据湖是一种统一的数据存储库,能承载来自多个来源的数据,包括:
- Spark之PySpark
james二次元
大数据SparkPythonPySpark
PySpark是ApacheSpark的PythonAPI,它允许开发者使用Python编程语言进行大规模数据处理和分析。ApacheSpark是一个快速、通用、可扩展的大数据处理引擎,支持批处理、流处理、机器学习、图计算等多种数据处理模式。PySpark使得Python开发者能够利用Spark强大的分布式计算能力,处理大数据集,并执行高效的并行计算。一、PySpark核心概念1.RDD(弹性分布
- pandas series 相加_Numpy和Pandas教程
weixin_39778393
pandasseries相加
Pandas简介-python数据分析library-基于numpy(对ndarray的操作)-有一种用python做Excel/SQL/R的感觉-为什么要学习pandas?-pandas和机器学习的关系,数据预处理,featureengineering。-pandas的DataFrame结构和大家在大数据部分见到的spark中的DataFrame非常类似。目录-numpy速成-Series-Da
- 2025届毕业设计选题参考,包含网站管理系统开发,微信小程序开发,APP开发,大数据分析,人工智能
平姐设计
计算机毕业设计选题清单微信小程序开发语言人工智能数据分析
网站开发选题:1、基于Java的企业食堂管理系统的设计与实现2、基于web的办公平台3、综合学工服务系统4、超市管理系统5、基于springboot的云笔记共享系统6、毕业生实习管理系统7、驾校预约管理系统8、基于Java的航空订票系统9、企业资源规划系统10、洗衣房预约管理系统的设计与实现11、桌面端有声小说12、基于Python的毕业生就业率分析管理系统的设计与实现13、基于VUE的富平县农产
- 十分钟了解大数据处理的五大关键技术及其应用
IT时代周刊
2019年5月大数据程序员编程语言hadoop
其中主要工作环节包括:♦大数据采集、♦大数据预处理、♦大数据存储及管理、♦大数据分析及挖掘、♦大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。一、大数据采集技术数据是指通过RFID射频数据、传感器数据、社交网络交互数据及移动互联网数据等方式获得的各种类型的结构化、半结构化(或称之为弱结构化)及非结构化的海量数据,是大数据知识服务模型的根本。重点要突破分布式高速高可靠数据爬取
- 华为MRS产品组件
QianJin_zixuan
hadoophive大数据数据库架构gaussdb
MRS:MRS是一个在华为云上部署和管理Hadoop系统的服务,一键即可部署Hadoop集群。MRS提供租户完全可控的一站式企业级大数据集群云服务(全栈大数据平台),轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件。集群管理:使用MRS的首要操作就是购买集群,MRS的扩容不论在存储还是计算能力上,都可以简单地通过增加Core节点或者Task节点来完成。集群Core节
- Hive SQL 使用及进阶详解
小四的快乐生活
hivesqlhadoop
一、Hive简介Hive是建立在Hadoop之上的数据仓库基础架构,它提供了类似于SQL的查询语言HiveSQL(也称为HQL),用于对存储在Hadoop分布式文件系统(HDFS)中的大规模数据进行数据查询和分析。Hive将SQL查询转换为MapReduce、Tez或Spark等分布式计算任务,使得不熟悉Java编程的数据分析人员也能方便地处理大规模数据。二、HiveSQL基础使用(一)环境准备在
- AIoT是什么?AIoT现状如何?
问就是想睡觉
物联网人工智能
AIoT是什么?AIoT即人工智能物联网(ArtificialIntelligence&InternetofThings),是人工智能技术(AI)与物联网(IoT)在实际应用中的落地融合。物联网产生、收集来自不同维度的海量数据并存储于云端、边缘端,再通过大数据分析以及更高形式的人工智能技术,实现万物数据化、万物智联化。其目的是建构一种更高级形式的智能化生态体系,在该体系内,不同智能终端设备之间、不
- 深入探索Spark MLlib:大数据时代的机器学习利器
concisedistinct
人工智能mllibspark-mlSparkMLlib大数据机器学习
随着大数据技术的迅猛发展,机器学习在各行各业的应用日益广泛。ApacheSpark作为大数据处理的利器,其内置的机器学习库MLlib(MachineLearningLibrary)提供了一套高效、易用的工具,用于处理和分析海量数据。本文将深入探讨SparkMLlib,介绍其核心功能和应用场景,并通过实例展示如何在实际项目中应用这些工具。一、SparkMLlib概述1.什么是SparkMLlib?S
- Spark Streaming 容错机制详解
goTsHgo
spark-streaming大数据分布式spark-streaming大数据分布式
SparkStreaming是Spark生态系统中用于处理实时数据流的模块。它通过微批处理(micro-batch)的方式将实时流数据进行分片处理,每个批次的计算本质上是Spark的批处理作业。为了保证数据的准确性和系统的可靠性,SparkStreaming实现了多种容错机制,包括数据恢复、任务失败重试、元数据恢复等。接下来,我们将从底层原理和源代码的角度详细解释SparkStreaming是如何
- Spark提交任务
docsz
sparkspark大数据
1、Spark提交任务到Yarn1.1、DwKuduAppspark-submit--classcom.io.etl.dwkudu.DwKuduApp\--files/etl/etl-dwkudu/conf/doris.property,/etl/etl-dwkudu/conf/redis.property,/etl/etl-dwkudu/conf/log4j.property\--mastery
- 如何使用GraphX在Spark中进行图计算
python资深爱好者
spark大数据分布式
GraphX是ApacheSpark的一个图计算框架,它允许开发者在分布式环境中进行大规模的图数据处理和分析。以下是如何使用GraphX在Spark中进行图计算的基本步骤:1.环境准备首先,确保你已经安装了ApacheSpark,并且你的Spark版本支持GraphX。GraphX是Spark的一个组件,因此通常与Spark一起安装。2.导入GraphX库在你的Spark应用程序中,你需要导入Gr
- 在Spark中如何配置Executor内存以优化性能
python资深爱好者
sparkjava大数据
在Spark中,配置Executor内存以优化性能是一个关键步骤。以下是一些具体的配置方法和建议:一、Executor内存配置参数在Spark中,Executor的内存配置主要通过以下几个参数进行:--executor-memory或spark.executor.memory:指定每个Executor进程的内存大小。这个参数对Spark作业运行的性能影响很大。适当增加每个Executor的内存量,
- 什么容错性以及Spark Streaming如何保证容错性
python资深爱好者
spark大数据分布式
一、容错性的定义容错性是指一个系统在发生故障或崩溃时,能够继续运行并提供一定服务的能力。在网络或系统中,这通常涉及到物理组件损坏或软件失败时系统的持续运行能力。容错系统的关键特性包括负载平衡、集群、冗余、复制和故障转移等。二、SparkStreaming保证容错性的方法SparkStreaming为了保证数据的准确性和系统的可靠性,实现了多种容错机制,主要包括以下几个方面:元数据的容错性:Spar
- Spark集群架构
情深不仅李义山
sparkspark大数据
文章目录Spark架构Spark执行任务流程Spark运行环境SparkonYARNSparkStandaloneSpark架构Spark可以运行在YARN上也可以运行Mesos上,无论运行在哪个集群管理架构上,Spark都是以主从架构运行程序。主节点会运行Driver进程,该进程会调用Spark程序的main方法,启动SparkContext;Executor就是从节点的进程,该进程负责执行Dr
- 四、spark集群架构
weixin_34411563
大数据开发工具
spark集群架构官方文档:http://spark.apache.org/docs/latest/cluster-overview.html集群架构我们先看这张图这张图把spark架构拆分成了两块内容:1)spark应用程序:即左边的DriverProgram这块;2)spark集群:即右边的ClusterManager和另外两个WorkerNode;这样的结构,我们大概可以猜测一下spark是
- Spark集群架构介绍
olifchou
Sparksparkapachespark大数据分布式
Spark之YARN介绍一、导语二、Spark及其特性三、Spark架构总览一、导语ApacheSpark(后续简称为Spark)是一款正在点燃大数据世界的开源集群计算框架。据SparkCertifiedExperts显示,在内存中运行时,Sparks性能要比Hadoop快一百倍,在磁盘上运行,Sparks比Hadoop快达十倍。在本篇博客中,我将会为你简单介绍一下Spark的底层基础架构。二、S
- Spark Standalone集群架构
htfenght
sparkspark
北风网spark学习笔记SparkStandalone集群架构SparkStandalone集群集群管理器,clustermanager:Master进程,工作节点:Worker进程搭建了一套Hadoop集群(HDFS+YARN)HDFS:NameNode、DataNode、SecondaryNameNodeYARN:ResourceManager、NodeManagerSpark集群(Spark
- Spark----Spark 在不同集群中的架构
XiaodunLP
Spark
Spark注重建立良好的生态系统,它不仅支持多种外部文件存储系统,提供了多种多样的集群运行模式。部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行;当以分布式集群部署的时候,可以根据自己集群的实际情况选择Standalone模式(Spark自带的模式)、YARN-Client模式或者YARN-Cluster模式。Spark的各种运行模式虽然在启动方式、运行位置、调
- spark1.x和spark2.x的区别
xuxu1116
sparkspark1.x与2.x的区别
spark2.x版本相对于1.x版本,有挺多地方的修改,1Spark2ApacheSpark作为编译器:增加新的引擎Tungsten执行引擎,比Spark1快10倍2ml做了很大的改进,支持协同过滤http://spark.apache.org/docs/latest/ml-collaborative-filtering.html3spark2org.apache.spark.sql加了Spark
- spark程序提交到集群上_Spark集群模式&Spark程序提交
毫无特色
spark程序提交到集群上
Spark集群模式&Spark程序提交1.集群管理器Spark当前支持三种集群管理方式Standalone—Spark自带的一种集群管理方式,易于构建集群。ApacheMesos—通用的集群管理,可以在其上运行HadoopMapReduce和一些服务应用。HadoopYARN—Hadoop2中的资源管理器。Tip1:在集群不是特别大,并且没有mapReduce和Spark同时运行的需求的情况下,用
- 基于docker-compose安装spark 1+3及Spark On Yarn模式集群
dh12313012
docker-composesparkdocker
基于docker-compose安装spark1+3及SparkOnYarn模式集群1、`docker-compose.yml`:2、`spark.env`:此处的样例是参考别人的,之后自己整合一套可以使用的1+3模式的集群。spark镜像可以自行在dockerhub选择自己想要的进行替换即可。备注:此处未开启日志功能,在WEB界面上面找不到log的,如需开启,可自行添加参数或自己进入容器手动修改
- spark vi基本使用
Freedom℡
spark
打开文件与创建文件是Linux的内置命令,以命令的方式来运行。命令格式:vi/路径/文件名注意以下两种情况:1.如果这个文件不存在,此时就是新建文件,编辑器的左下角会提示:newfile2.如果文件已存在,此时就打开这个文件,进入命令模式。把文本内容添加到一个全新的文件的快捷方式:echo1>>1.txt三种模式vi编辑器有三种工作模式,分别为:命令模式,输入模式,底线模式。命令模式:所敲按键编辑
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include