- Hive优化高频面试题
lzhlizihang
hivehivehadoop面试题hive优化
文章目录一、开启本地模式二、explain分析sql语句三、修改Fetch操作四、开启hive的严格模式五、JVM重用六、分区、分桶以及压缩七、合理设置map和ruduce的数量八、设置并行执行九、CBO优化-成本优化器十、谓词下推十一、小表join大表--使用MapJoin十二、大表join大表--使用SMBJoin十三、列裁剪与分区裁剪十四、避免数据倾斜1、数据倾斜的表现2、数据倾斜的原因和解
- hive相关面试题以及答案
酷爱码
编程学习分布式hive
什么是Hive?它的作用是什么?答:Hive是一个建立在Hadoop之上的数据仓库工具,它提供了类似于SQL的查询语言HiveQL来操作存储在Hadoop中的数据。Hive的主要作用是让用户能够使用SQL语法来查询和分析大规模数据集。Hive的架构是什么样的?答:Hive的架构主要包括三个关键组件:HiveQL、HiveMetastore和Hive执行引擎。HiveQL是用户使用的SQL查询语言,
- Hadoop中HDFS工作原理
sdlyjzh
HadoopHDFS
Hadoop其实并不是一个产品,而是一些独立模块的组合。主要有分布式文件系统HDFS和大型分布式数据处理库MapReduce。由于目前主要用到HDFS,所以这里看一下它的工作原理,以及相应的介绍下配置。什么是HDFS?HadoopDistributedFileSystem,字面意思,Hadoop分布式文件系统,通俗的讲,就是可以将不同节点的设备用来存储。它分为两个部分:NameNode和DateN
- Flex:截图实现之(1)使用AS3对剪贴板读取与写入
Winters_huang
flexstringflashhtmlrtflist
很有用的一篇文章,感谢原作者的分享。http://www.cnblogs.com/shinings/archive/2010/04/10/1709047.html基于安全考虑,Flash只允许将数据写入系统剪贴板中,因此,Flash之中只能执行System下的setClipboard方法.基于Flash的:例子如下:使用AS将数据写入内存package{importflash.display.Sp
- Spark
薇晶晶
大数据
Spark简介Spark的特点运行速度快:使用DAG执行引擎以支持循环数据流与内存计算容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过SparkShell进行交互式编程通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于AmazonEC2等云环境中,并且可以
- hadoop集群常用命令搜集——筑梦之路
筑梦之路
大数据hadoop大数据分布式
服务启停命令#脚本启停hadoop全部服务(master节点执行,各节点需配置免密)./start-all.sh#包含yarn(ResourceManager,NodeManager)和hdfs(JournalNode,NameNode,DataNode,DFSZKFailoverController)./stop-all.sh#脚本启停ResourceManager,NodeManager./s
- hadoop集群常用shell脚本
Hi Xiu Hui
hadoophadoop
1.群发脚本XSync(xsync)#!/bin/bash#1获取参数,如果不够直接退出pcount=$#if((pcount==0));thenechonoargs;exit;fi#2获取文件名称p1=$1fname=`basename$p1`echofname=$fname#3获取上级目录到绝对路径pdir=`cd-P$(dirname$p1);pwd`echopdir=$pdir#4获取当前
- Hadoop集群常用命令
小萌新~~~~
hadoop大数据分布式
1.启动Hadoop集群#启动HDFSstart-dfs.sh#启动YARNstart-yarn.sh2.停止Hadoop集群#停止YARNstop-yarn.sh#停止HDFSstop-dfs.sh3.HDFS常用命令查看HDFS状态hdfsdfsadmin-report上传文件到HDFShdfsdfs-put/local/path/to/file/hdfs/path/从HDFS下载文件hdfs
- hadoop集群常用命令
悻运
hadoop
#Hadoop集群常用命令##HDFS文件系统操作命令1.**基本文件操作**-hadoopfs-ls:列出目录内容-hadoopfs-mkdir:创建目录-hadoopfs-put:从本地复制文件到HDFS-hadoopfs-get:从HDFS复制文件到本地-hadoopfs-cat:查看文件内容-hadoopfs-tail:查看文件尾部内容-hadoopfs-rm:删除文件-hadoopfs-
- hadoop 集群的常用命令
Eternity......
大数据spark
Hadoop集群是一个分布式系统,常用于存储和处理大规模数据。以下是一些Hadoop集群的常用命令:HDFS(Hadoop分布式文件系统)命令1.启动和停止HDFS-启动HDFSstart-dfs.sh此命令会启动NameNode、SecondaryNameNode和DataNode等HDFS相关的守护进程。-停止HDFSstop-dfs.sh该命令用于停止正在运行的HDFS守护进程。2.创建目录
- Oracle logminer详解
南風_入弦
Oracleoracle数据库恢复
OracleLogMiner是Oracle数据库提供的一个内置工具,用于分析和挖掘数据库的在线重做日志文件(OnlineRedoLogFiles)和归档日志文件(ArchiveLogFiles)。通过LogMiner,用户可以查看数据库的历史操作(如DML和DDL语句),帮助进行数据审计、故障恢复、性能分析等任务。一、LogMiner的核心功能历史操作追踪解析重做日志中的SQL操作,包括INSER
- 11 配置Hadoop集群-免密登录
满分对我强制爱
hadoopgithub大数据
第一课时一、复习导入前面的课程中我们在虚拟机上安装并测试使用了hadoop的示例程序wordcount,并且在准备好了集群的同步工具,那接下来,我们就可去配置hadoop集群了。二、授新(一)认识ssh命令SSH(SecureShell)命令是一种用于通过加密协议安全地连接到远程服务器的工具。它广泛应用于远程登录、文件传输和命令执行等场景。它最基本的用法是连接到远程服务器,格式如:ssh用户名@主
- 【信奥一本通提高篇】基础算法之贪心算法
C-DHEnry
信奥一本通提高篇算法贪心算法
原文https://bbs.fmcraft.top/blog/index.php/archives/22/贪心算法概述近年来的信息学竞赛试题,经常出现求一个问题的可行解或最优解的题目。这类问题就是我们通常所说的最优化问题。贪心算法是求解这类问题的一种常用算法。在众多的算法中,贪心算法可以算得上是最接近人们日常思维的一种算法,常被信息学奥赛选手用来求解一些数据规模很大的问题。一、贪心算法贪心算法是从
- dolphin上MySQL到hive、seatunnel任务创建
元亨利贞之乾
mysqlhive数据库
dolphin上MySQL到hive、seatunnel任务创建:1.先获取所需数量的taskCodeLongtaskCode=getClient().opsForProcess().generateTaskCode(projectCode,1).get(0);2.创建MySqlSource对象,result_table_name、url、user、password、query是必须的public
- HttpComponents使用纪要
何人听我楚狂声
javajava
概览本文原载于我的博客,地址:https://blog.guoziyang.top/archives/15/HttpComponents是Apache基金会开发和维护的一组底层HTTP及其它协议相关的Java套件包。HttpComponents的前身是ApacheCommons包下的HttpClient包,在3.1版本后,独立成了单独的一组套件,包全名为org.apache.httpcompone
- Hadoop分布式文件系统HDFS
AI天才研究院
AI大模型企业级应用开发实战DeepSeekR1&大数据AI人工智能大模型计算科学神经计算深度学习神经网络大数据人工智能大型语言模型AIAGILLMJavaPython架构设计AgentRPA
Hadoop分布式文件系统HDFS作者:禅与计算机程序设计艺术/ZenandtheArtofComputerProgramming关键词:大数据存储,分布式计算,海量数据处理,高可用性,容错机制1.背景介绍1.1问题的由来随着互联网技术和数字设备的普及,企业级数据量呈现出爆炸式的增长趋势。传统的单机或小型集群的数据存储与管理方式已无法满足大规模数据处理的需求。数据的快速增长对存储系统的容量、性能以
- hdfs原理
raining_time
hdfs原理hdfs读写原理hdfs优缺点hdfs安全模式hdfs常用命令
简介HDFS(HadoopDistributedFileSystem)Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(GoogleFileSystem)Google文件系统。HDFS有很多特点:①保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。(用空间换安全)②运行在廉价的机器上。③适合大数据的处理。多大?多小?HDFS默认会将文件分割成block,
- 实时数据流处理利器:Apache Storm 在大数据中的应用
Echo_Wish
大数据高阶实战秘籍大数据apachestorm
实时数据流处理利器:ApacheStorm在大数据中的应用引言在如今的数据驱动时代,企业和开发者们面临的一个核心挑战是如何高效处理实时数据流。传统的批处理框架(如Hadoop)在面对海量数据时表现优秀,但其高延迟的缺点使其难以满足实时场景的需求。这时,ApacheStorm作为一个低延迟、高吞吐、分布式的流式处理框架,成为了实时数据分析、日志监控、欺诈检测等场景的理想选择。今天,我们就来深入探讨A
- 归档重做日志archived log (明显) 比redo log重做日志文件小
jnrjian
数据库oracle
归档重做日志(明显)比重做日志文件小。(文档ID1356604.1)日志切换将由于以下原因发生:1.由于在重做日志文件已满之前强制创建存档而记录和设计的行为SQL>altersystemswitchlogfile;SQL>altersystemarchivelogcurrent;RMAN>backuparchivelogall;RMAN>backupdatabaseplusarchivelog;A
- Hbase的学习笔记(3)
白居不易.
hbase学习java
Hbase的学习笔记(3)本次主要学习Hbase与Java的配合使用,即通过Java语言完成对Hbase表的增删改查。1.所需依赖jar包org.apache.hadoophadoop-clientorg.apache.hadoophadoop-common注意:有些时候程序报错,跟maven的jar包加载顺序有关,具体的可以去了解下相关知识。我在测试时,虽然有的类导包进来是importorg.a
- 基于云服务器的数仓搭建-hive/spark安装
AlphaFree_
服务器hivespark
mysql本地安装安装流程(内存占用200M,升至2.1G)#将资料里mysql文件夹及里面所有内容上传到/opt/software/mysql目录下mkdir/opt/software/mysqlcd/opt/software/mysql/#待上传文件install_mysql.shmysql-community-client-8.0.31-1.el7.x86_64.rpmmysql-commu
- Linux下安装Zookeeper教程
.猫的树
Linuxjava-zookeeperzookeeperlinux
ZooKeeper简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。一、下载ZooKe
- Linux系统之ar命令详解
门前灯
linuxar运维服务器ar详解
ar命令是Unix和类Unix操作系统中的一个工具,用于创建、修改以及提取归档文件(archive)。归档文件是一种将多个文件打包成一个单独文件的方式,但与tar不同,它通常用于静态库的创建,这些静态库可以被编译器和链接器用来构建可执行程序。扩展名为.a的文件就是一种由ar创建的归档文件。基本语法ar[选项][操作][归档文件][成员文件...]常用操作r(replace):将文件插入归档文件中。
- 大数据必学免费、开源分布式数据库——Apache Hive
遇码
大数据数据仓库开源hivehadoopsql数据库ApacheHive
Hive是大数据开发、分析领域无法绕开的一个话题。我将分认识Hive、快速部署、快速入门等几个模块为同学们详细地介绍Hive,期望可以为刚刚接触大数据领域的同学们建立一个初步的认知。Hive是什么Hive,又称ApacheHive,由Facebook开源用于解决海量结构化日志的数据统计工具。Hive是基于ApacheHadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查
- 阿里开源的免费数据集成工具——DataX
遇码
大数据开源datax数据集成大数据seatunnelkettleflinkcdc
企业里真实的数据流转是什么样子的呢?左侧描述了一个企业真实的样子,我们总是需要把数据从一个地方搬到另一个地方,最后就是搬来搬去搬成了一张张解不开的网。右侧则表达了使用DataX为中心实现数据的同步。什么是DataXDataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功
- Sqoop-试题
minaMoonGirl
sqoophadoophive
一、试题部分使用Sqoop导入工具,要求只追加导入检查列中时间晚于或等于last-value的记录,则incremental模式应该设置为____?A.mergeB.lastmodifiedC.last-valueD.appendsqoop导出采用调用模式时,以下说法正确的是?A.使用--call参数调用存储过程B.存储过程需要提前在hive中创建C.存储过程需要提前在hdfs中创建D.使用--c
- Spark 从HDFS读取时,通常按文件块(block)数量决定初始partition数,这是怎么实现的?
闯闯桑
sparkhdfs大数据
在Spark中,从HDFS读取数据时按文件块(block)数量决定初始partition数,这一机制是通过HadoopInputFormat的分片(split)策略实现的。具体流程如下:1.HDFS文件块(Block)与SparkPartition的对应关系HDFS默认块大小(如128MB/256MB)决定了文件的物理存储分布。Spark在读取HDFS文件时,会调用Hadoop的InputForm
- whole-archive与gc-sections
蓁蓁啊
OneOSlinuxc语言单片机嵌入式硬件stm32
在嵌入式系统开发中,--whole-archive和--gc-sections是链接器(ld)的两个关键选项,它们的组合使用对最终二进制文件的构成有决定性影响。下面从原理和实际示例详细说明:一、基础原理1.--whole-archive作用机制:强制链接器处理静态库(.a文件)时,包含库中所有目标文件(.o文件)覆盖默认的"仅包含被引用目标文件"的行为作用范围:从出现位置开始,直到遇到--no-w
- hadoop相关面试题以及答案
酷爱码
编程学习hadoop大数据分布式
什么是Hadoop?它的主要组件是什么?Hadoop是一个开源的分布式计算框架,用于处理大规模数据的存储和计算。其主要组件包括HadoopDistributedFileSystem(HDFS)和MapReduce。解释HDFS的工作原理。HDFS采用主从架构,包括一个NameNode和多个DataNode。NameNode负责管理文件系统的命名空间和数据块的映射关系,DataNode负责存储实际数
- 大数据内容分享(五):Hadoop各组件的主要功能及作用详解
之乎者也·
大数据(Hadoop)内容分享大数据hadoop分布式
目录前言存储类型组件计算分析引擎组件任务调度和集群管理组件其它组件总结前言虽然hadoop的生态体系已经有好多年了,而且越来越多的做大数据的可能会觉得hadoop体系在数据处理方面有一些笨重,但是作为大数据的分布式系统领域的鼻祖,我们还是好好学习一下。Hadoop体系最初建立于2005年,是由DougCutting和MikeCafarella开发的。它的设计灵感来自于Google的MapReduc
- 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