当前位置: 首页 > 编程日记 > 正文

带进度条的ASP无组件断点续传下载代码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Option Explicit%>

<%
'================================================================
'
'        带进度条的ASP无组件断点续传下载
'
'================================================================
'简介:
'  1)利用xmlhttp方式
'  2)无组件
'  3)异步方式获取,节省服务器资源
'  4)服务器到服务器的文件传送。(当然,你自己电脑上的IIS也是http服务器)
'  5)支持断点续传
'  6)分段下载
'  7)使用缓冲区,提升下载速度
'  8)支持大文件下载(速度我就不说了,你可以测,用事实说话)
'  9)带进度条:下载百分比、下载量、即时下载速度、平均下载速度
'
'用法:
'  设置好下面的三个变量,RemoteFileUrl、LocalFileUrl、RefererUrl
'
'作者:午夜狂龙(Madpolice)
'madpolice_dong@163.com
'2005.12.25
'================================================================
%>

<%'-----------------------------以下为设置部分--------------------------------%>
<%Server.Scripttimeout = 24 * 60 * 60  '脚本超时设置,这里设为24小时%>
<%
Dim RemoteFileUrl  '远程文件路径
Dim LocalFileUrl  '本地文件路径,相对路径,可以包含/及..

'速度问题注意:下面这个测试文件是在“网通”服务器上!!!
RemoteFileUrl = "http://hdt.driversky.com/down/foxmail60beta2.exe"
LocalFileUrl = "foxmail60beta2.exe"

Dim RefererUrl
'该属性设置文件下载的引用页,
'某些网站只允许通过他们网站内的连接下载文件,
'这些网站的服务器判断用户是否是在他们网站内点击的文件链接就是靠这个属性。
RefererUrl = "http://www.skycn.com/crack_skycn.html"  '若远程服务器未限制,可留空

Dim BlockSize  '分段下载的块大小
Dim BlockTimeout  '下载块的超时时间(秒)

BlockSize = 128 * 1024  '128K,按1M带宽计算的每秒下载量(可根据自己的带宽设置,带宽除以8),建议不要设的太小
BlockTimeout = 64  '应当根据块的大小来设置。这里设为64秒。如果128K的数据64秒还下载不完(按每秒2K保守估算),则超时。

Dim PercentTableWidth  '进度条总宽度

PercentTableWidth = 560
%>
<%'-----------------------------以上为设置部分--------------------------------%>

<%
'***********************************************************************
'          !!!以下内容无须修改!!!
'***********************************************************************
%>
<%
Dim LocalFileFullPhysicalPath  '本地文件在硬盘上的绝对路径

LocalFileFullPhysicalPath = Server.Mappath(LocalFileUrl)
%>

<%
Dim http,ados

On Error Resume Next
Set http = Server.CreateObject("Msxml2.ServerXMLHTTP.7.0")
If Err Then
  Err.Clear

  Set http = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
  If Err Then
    Err.Clear

    Set http = Server.CreateObject("Msxml2.ServerXMLHTTP.5.0")
    If Err Then
      Err.Clear

      Set http = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
      If Err Then
        Err.Clear

        Set http = Server.CreateObject("Msxml2.ServerXMLHTTP")
        If Err Then
          Err.Clear
          Response.Write "服务器不支持Msxml,本程序无法运行!"
          Response.End
        End If
      End If
    End If
  End If
End If
On Error Goto 0

Set ados = Server.CreateObject("Adodb.Stream")
%>

<%
Dim RangeStart  '分段下载的开始位置
Dim fso

Set fso = Server.CreateObject("Scripting.FileSystemObject")
If fso.FileExists(LocalFileFullPhysicalPath) Then  '判断要下载的文件是否已经存在
RangeStart = fso.GetFile(LocalFileFullPhysicalPath).Size  '若存在,以当前文件大小作为开始位置
Else
RangeStart = 0  '若不存在,一切从零开始
fso.CreateTextFile(LocalFileFullPhysicalPath).Close  '新建文件
End If
Set fso = Nothing
%>

<%
Dim FileDownStart  '本次下载的开始位置
Dim FileDownEnd  '本次下载的结束位置
Dim FileDownBytes  '本次下载的字节数
Dim DownStartTime  '开始下载时间
Dim DownEndTime  '完成下载时间
Dim DownAvgSpeed  '平均下载速度

Dim BlockStartTime  '块开始下载时间
Dim BlockEndTime  '块完成下载时间
Dim BlockAvgSpeed  '块平均下载速度

Dim percentWidth  '进度条的宽度
Dim DownPercent  '已下载的百分比

FileDownStart = RangeStart
%>

<%
Dim adosCache  '数据缓冲区
Dim adosCacheSize  '缓冲区大小

Set adosCache = Server.CreateObject("Adodb.Stream")
adosCache.Type = 1  '数据流类型设为字节
adosCache.Mode = 3  '数据流访问模式设为读写
adosCache.Open
adosCacheSize = 4 * 1024 * 1024  '设为4M,获取的数据先放到(内存)缓冲区中,当缓冲区满的时候数据写入磁盘

'若在自己的电脑上运行本程序,当下载百兆以上级别的大文件的时候,可设置大的缓冲区
'当然,也不要设的太大,免得发生(按下浏览器上的停止按钮或断电等)意外情况导致缓冲区中的数据没有存盘,那缓冲区中的数据就白下载了
%>

<%
'先显示html头部
Response.Clear
Call HtmlHead()
Response.Flush
%>

<%
Dim ResponseRange  '服务器返回的http头中的"Content-Range"
Dim CurrentLastBytes  '当前下载的结束位置(即ResponseRange中的上限)
Dim TotalBytes  '文件总字节数
Dim temp

'分段下载
DownStartTime = Now()

Do
  BlockStartTime = Timer()

  http.open "GET",RemoteFileUrl,true,"",""  '用异步方式调用serverxmlhttp

  '构造http头
  http.setRequestHeader "Referer",RefererUrl
  http.setRequestHeader "Accept","*/*"
  http.setRequestHeader "User-Agent","Baiduspider+(+http://www.baidu.com/search/spider.htm)"  '伪装成Baidu
  'http.setRequestHeader "User-Agent","Googlebot/2.1 (+http://www.google.com/bot.html)"  '伪装成Google
  http.setRequestHeader "Range","bytes=" & RangeStart & "-" & Cstr(RangeStart + BlockSize - 1)  '分段关键
  http.setRequestHeader "Content-Type","application/octet-stream"
  http.setRequestHeader "Pragma","no-cache"
  http.setRequestHeader "Cache-Control","no-cache"

  http.send  '发送

  '循环等待数据接收
  While (http.readyState <> 4)
    '判断是否块超时
    temp = Timer() - BlockStartTime
    If (temp > BlockTimeout) Then
      http.abort
      Response.Write "<script>document.getElementById(""status"").innerHTML=""<strong>错误:数据下载超时,建议重试。</strong>"";</script>" & vbNewLine & "</body></html>"
      Call ErrHandler()
      Call CloseObject()
      Response.End
    End If

    http.waitForResponse 1000  '等待1000毫秒
  Wend

  '检测状态
  If http.status = 416 Then  '服务器不能满足客户在请求中指定的Range头。应当是已下载完毕。
    FileDownEnd = FileDownStart  '设置一下FileDownEnd,免得后面的FileDownBytes计算出错
    Call CloseObject()
    Exit Do
  End If

  '检测状态
  If http.status > 299 Then  'http出错
    Response.Write "<script>document.getElementById(""status"").innerHTML=""<strong>http错误:" & http.status & "&nbsp;" & http.statusText & "</strong>"";</script>" & vbNewLine & "</body></html>"
    Call ErrHandler()
    Call CloseObject()
    Response.End
  End If

  '检测状态
  If http.status <> 206 Then  '服务器不支持断点续传
    Response.Write "<script>document.getElementById(""status"").innerHTML=""<strong>错误:服务器不支持断点续传!</strong>"";</script>" & vbNewLine & "</body></html>"
    Call ErrHandler()
    Call CloseObject()
    Response.End
  End If

  '检测缓冲区是否已满
  If adosCache.Size >= adosCacheSize Then
    '打开磁盘上的文件
    ados.Type = 1  '数据流类型设为字节
    ados.Mode = 3  '数据流访问模式设为读写
    ados.Open
    ados.LoadFromFile LocalFileFullPhysicalPath  '打开文件
    ados.Position = ados.Size  '设置文件指针初始位置

    '将缓冲区数据写入磁盘文件
    adosCache.Position = 0
    ados.Write adosCache.Read
    ados.SaveToFile LocalFileFullPhysicalPath,2  '覆盖保存
    ados.Close

    '缓冲区复位
    adosCache.Position = 0
    adosCache.SetEOS
  End If
  
  '保存块数据到缓冲区中
  adosCache.Write http.responseBody  '写入数据

  '判断是否全部(块)下载完毕
  ResponseRange = http.getResponseHeader("Content-Range")  '获得http头中的"Content-Range"
  If ResponseRange = "" Then  '没有它就不知道下载完了没有
    Response.Write "<script>document.getElementById(""status"").innerHTML=""<strong>错误:文件长度未知!</strong>"";</script>" & vbNewLine & "</body></html>"
    Call CloseObject()
    Response.End
  End If
  temp = Mid(ResponseRange,Instr(ResponseRange,"-")+1)  'Content-Range是类似123-456/789的样子
  CurrentLastBytes = Clng(Left(temp,Instr(temp,"/")-1))  '123是开始位置,456是结束位置
  TotalBytes = Clng(Mid(temp,Instr(temp,"/")+1))  '789是文件总字节数
  If TotalBytes - CurrentLastBytes = 1 Then
    FileDownEnd = TotalBytes

    '将缓冲区数据写入磁盘文件
    ados.Type = 1  '数据流类型设为字节
    ados.Mode = 3  '数据流访问模式设为读写
    ados.Open
    ados.LoadFromFile LocalFileFullPhysicalPath  '打开文件
    ados.Position = ados.Size  '设置文件指针初始位置
    adosCache.Position = 0
    ados.Write adosCache.Read
    ados.SaveToFile LocalFileFullPhysicalPath,2  '覆盖保存
    ados.Close

    Response.Write "<script>document.getElementById(""downsize"").innerHTML=""" & TotalBytes & """;</script>" & vbNewLine
    Response.Flush
    Call CloseObject()
    Exit Do  '结束位置比总大小少1就表示传输完成了
  End If
  
  '调整块开始位置,准备下载下一个块
  RangeStart = RangeStart + BlockSize

  '计算块下载速度、进度条宽度、已下载的百分比
  BlockEndTime = Timer()
  temp = (BlockEndTime - BlockStartTime)
  If temp > 0 Then
    BlockAvgSpeed = Int(BlockSize / 1024 / temp)
  Else
    BlockAvgSpeed = ""
  End If
  percentWidth = Int(PercentTableWidth * RangeStart / TotalBytes)
  DownPercent = Int(100 * RangeStart / TotalBytes)

  '更新进度条
  Response.Write "<script>document.getElementById(""downpercent"").innerHTML=""" & DownPercent & "%"";document.getElementById(""downsize"").innerHTML=""" & RangeStart & """;document.getElementById(""totalbytes"").innerHTML=""" & TotalBytes & """;document.getElementById(""blockavgspeed"").innerHTML=""" & BlockAvgSpeed & """;document.getElementById(""percentdone"").style.width=""" & percentWidth & """;</script>" & vbNewLine
  Response.Flush
Loop While Response.IsClientConnected

If Not Response.IsClientConnected Then
  Response.End
End If

DownEndTime = Now()
FileDownBytes = FileDownEnd - FileDownStart
temp = DateDiff("s",DownStartTime,DownEndTime)
If (FileDownBytes <> 0) And (temp <> 0) Then
  DownAvgSpeed = Int((FileDownBytes / 1024) / temp)
Else
  DownAvgSpeed = ""
End If

'全部下载完毕后更新进度条
Response.Write "<script>document.getElementById(""downpercent"").innerHTML=""100%"";document.getElementById(""percentdone"").style.width=""" & PercentTableWidth & """;document.getElementById(""percent"").style.display=""none"";document.getElementById(""status"").innerHTML=""<strong>下载完毕!用时:" & S2T(DateDiff("s",DownStartTime,DownEndTime)) & ",平均下载速度:" & DownAvgSpeed & "K/秒</strong>"";</script>" & vbNewLine
%>

</body>
</html>

<%
Sub CloseObject()
  Set ados = Nothing
  Set http = Nothing
  adosCache.Close
  Set adosCache = Nothing
End Sub
%>

<%
'http异常退出处理代码
Sub ErrHandler()
  Dim fso

  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  If fso.FileExists(LocalFileFullPhysicalPath) Then  '判断要下载的文件是否已经存在
    If fso.GetFile(LocalFileFullPhysicalPath).Size = 0 Then  '若文件大小为0
      fso.DeleteFile LocalFileFullPhysicalPath  '删除文件
    End If
  End If
  Set fso = Nothing
End Sub
%>

<%Sub HtmlHead()%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>带进度条的ASP无组件断点续传下载----作者:午夜狂龙(Madpolice)--2005.12.25</title>
</head>
<body>
<div id="status">正在下载&nbsp;<span style="color:blue"><%=RemoteFileUrl%></span>&nbsp;,请稍候...</div>
<div>&nbsp;</div>
<div id="progress">已完成:<span id="downpercent" style="color:green"></span>&nbsp;<span id="downsize" style="color:red"><%=RangeStart%></span>&nbsp;/&nbsp;<span id="totalbytes" style="color:blue"></span>&nbsp;字节(<span id="blockavgspeed"></span>K/秒)</div>
<div>&nbsp;</div>
<div id="percent" align="center" style="display:''">
  <table style="border-collapse:collapse;" border="1" bordercolor="#666666" cellpadding="0" cellspacing="0" width="<%=PercentTableWidth%>" align="center" bgcolor="#eeeeee">
    <tr height="20">
      <td>
        <table border="0" width="" cellspacing="1" bgcolor="#0033FF" id="percentdone">
          <tr>
            <td>&nbsp;<td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
</div>
<%End Sub%>

<%
'--------------------------------------------------------------------
'将秒数转换为"x小时y分钟z秒"形式
'--------------------------------------------------------------------
Function S2T(ByVal s)
  Dim x,y,z,t
  If s < 1 Then
    S2T = (s * 1000) & "毫秒"
  Else
    s = Int(s)
    x = Int(s / 3600)
    t = s - 3600 * x
    y = Int(t / 60)
    z = t - 60 * y
    If x > 0 Then
      S2T = x & "小时" & y & "分" & z & "秒"
    Else
      If y > 0 Then
        S2T = y & "分" & z & "秒"
      Else
        S2T = z & "秒"
      End If
    End If
  End If
End Function
'--------------------------------------------------------------------
%>

转载于:https://www.cnblogs.com/QDuck/archive/2006/11/17/564050.html

相关文章:

塔式、机架式、刀片式服务器比较

塔式机架式刀片式优点单个成本低&#xff1b;扩展能力和散热能力好&#xff1b;可以配置多路处理器、多根内存、多块硬盘、多个冗余电源和散热风扇相对于塔式大大节省了空间占用&#xff0c;使布线、管理更为简洁&#xff1b;节省了机房托管费用&#xff1b;平衡了性能与空间扩…

Flume-0.9.4数据插入HBase-0.96

来自&#xff1a;http://blog.csdn.net/iam333/article/details/18770977 最近由于业务需要&#xff0c;需要将flume的数据插入HBase-0.96,利用flume的实时日志收集&#xff0c;实现数据的实时存储。正如前文所 述&#xff0c;flume-ng即flume-1.4.0版本和hbase-0.96结合相对比…

卡壳了~~~ 解决了~~~My Site创建成功了.....

没想到解决这个问题如此简单就是把SharePoint Products and Technologies Configuration Wizard运行一遍&#xff0c;一切都修复了&#xff0c;哈哈~~~快下班了&#xff0c;也没过多测试&#xff0c;似乎没有损失什么数据。 转载于:https://www.cnblogs.com/booolee/archive/20…

Linux 配置开机自启 和 修改环境变量

【 操作系统 Centos7 】 一&#xff0c;开机自动启动的配置 1&#xff0c;赋予 /etc/rc.local 的执行权限 > chmod x /etc/rc.local 2&#xff0c;在 /etc/rc.local 在文件末尾编写要执行的脚本 3&#xff0c;注意写在这个文件中的脚本不要使用相对路径 二&#xff0c;环境变…

无线传感器网络WSN技术、协议、距离汇总

技术协议距离WMANIEEE802.16五公里内WLANIEEE802.11几公里内WPAN蓝牙IEEE802.15.4 紫蜂IEEE802.15.110m内

IISApp -a查找对应的AppPool

cmd下运行IISApp -a可以查找出来每个w3wp.exe对应的应用程序池 [name:IISApp To AppPool][tags:IIS] [From AlphaWu.Blog]转载于:https://www.cnblogs.com/AlphaWu/archive/2006/11/27/574390.html

ZKFC服务异常:Parent znode does not exist.

昨天搭建了一套hadoop集群&#xff0c;今天发现两个namenode的zkfc服务起不来&#xff0c;在zkfc日志中发现如下所示的信息&#xff1a;Unable to start failover controller. Parent znode does not exist../bin/zkCli.sh -server master1ls /没有看到/hadoop-ha解决方法&…

数学工具WZgrapher

之前说了mathGV&#xff0c;其实还有一个不错类似软件WZgrapher&#xff0c;不仅可以画函数图&#xff0c;还可以微积分。 截图如下&#xff1a; 转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/3632778.html

用ASP.NET建立一个在线RSS新闻聚合器(3)

显示特定聚合摘要的新闻项   我们面临的下一个任务是创建 DisplayNewsItems.aspx 页面。这个页面会以链接的形式显示所选聚合摘要的新闻项标题&#xff0c;当点击标题时&#xff0c;新闻的内容就会显示在右下部分的框架中。要完成这一任务&#xff0c;我们会面临以下两个主要…

mysql中在表中insert数据时,有重复主键id时,变成update

MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法 例如&#xff1a; idnamesexage 1kathymale23 2Javerfamale32 3Mikemale19方法一&#xff1a; INSERT INTO kk (id, name,sex) VALUES(1,kara,ssss) ON DUPLICATE KEY UPDATE id1;方法二&#xff1a; REPLACE…

ECS 实例网络带宽

1. 带宽是否独享&#xff1f; 是独享。 2. 带宽单线还是双线&#xff0c;电信还是网通&#xff1f; 多线 BGP&#xff08;中国电信、联通、移动、教育网等&#xff09;接入&#xff0c;确保全国用户访问畅通。 3. 5 Mbps 带宽怎么理解&#xff1f; 5 Mbps 带宽是指带宽总出口是…

bootstrap-less源码分析:容器

流体容器和固定容器的公共样式 .container-fixed(gutter: grid-gutter-width) {//grid-gutter-width为默认取值&#xff0c;值为30px margin-right: auto; margin-left: auto; padding-left: floor((gutter / 2));//向下取整 padding-right: ceil((gutter / 2)); &:extend(…

Windows7防火墙服务无法启用怎么办

Windows7防火墙服务无法启用怎么办 点击windows 7控制面板中防火墙的“推荐配置”没有反应&#xff0c;打开“服务”&#xff0c;无法启动windows firewall&#xff0c;并报错。问题&#xff1a; 1.点击windows 7控制面板中防火墙的“推荐配置”没有反应 2.打开“服务”&#x…

在首次发布三周之后,MLflow迎来了0.2版本

在今年的SparkAI峰会上&#xff0c;MLflow团队推出了MLflow&#xff0c;一个开源的用于简化机器学习生命周期的平台。从首次发布到现在的三周时间里&#xff0c;已经有很多数据科学家和工程师对使用MLflow和为MLflow贡献代码感兴趣。MLFlow的GitHub仓库已经有180个分支&#xf…

CoCreateInstance 出错 ,返回 -2147221164 CLASS_NOT_REGISTERED ,原因

今天发现有台机子执行 CoCreateInstance 总是不成功&#xff0c;而在其他的很多机子上是没有问题的。 追了半天发现这台机子的注册表权限不对。HKEY_CLASSES_ROOT的权限只有Everyone&#xff0c;少了System&#xff0c;以及其他的几个。 加上System之后就可以了。不知道Everyon…

bootstrap-less源码分析:行和列

一、行 grid.less文件中有关行的全部源码 .row { .make-row();//调用 }//进mixin/grid.less找到行的定义 .make-row(gutter: grid-gutter-width) { margin-left: ceil((gutter / -2));//负的槽宽的一半 -15 margin-right: floor((gutter / -2)); &:extend(.clearfix all…

博客园,我来了~

希望在这里留下我美好的回忆~ 转载于:https://www.cnblogs.com/wangzhigang/p/3638400.html

ARE YOU THE ONE?

总觉得&#xff0c;特定环境下&#xff0c;他或者她&#xff0c;这个称呼是有一些暧昧的。比如我的前同事M&#xff0c;跟她男朋友刚相亲认识的时候&#xff0c;跟我说起&#xff0c;总是那个人那个人的称呼&#xff0c;一副局外人的架势。后来&#xff0c;他们熟悉了&#xff…

Windows和Linux的编译理解

Windows一般编译出来的x86的软件&#xff0c;就是只能在x86的系统上才能运行&#xff0c;同理&#xff0c;在x64系统上也是一样的道理。 Linux利用gcc编译器编译&#xff0c;可以在Linux上面运行&#xff0c;但是想要在嵌入式系统上运行的话&#xff0c;需要在Linux上安装相应的…

安卓环境搭建 unable to access Android SDK add-on list解决方案

选择Setup Proxy 选择Manual proxy configuration 设置Host name 为&#xff1a;mirrors.neusoft.edu.cn 保持Port number 为&#xff1a;80 确定 参考博客&#xff1a;https://blog.csdn.net/qq_35892584/article/details/109746886?utm_mediumdistribute.pc_relevant.…

Git使用笔记(一)

今天第一次使用Git&#xff0c;在本地和CSDN Code进行代码同步。鉴于“好记性不如烂笔头”的经验教训&#xff0c;特把步骤记录下来。 准备工作&#xff1a; 1. 在CSDN&#xff08;或者Github&#xff09;上注册一个帐号&#xff0c;然后创建一个Repository。记录下Repository的…

ASP.NET 2.0站点登录、导航与权限管理

(一)登录 asp.net 2.0中&#xff0c;新增了许多新的功能和控件。其中&#xff0c;新增的登陆控件可谓使得WEB应用的设计更加得心应手。什么是登陆控件呢&#xff1f;就是我们平常在WEB应用中经常要用到的用户注册&#xff0c;登陆&#xff0c;忘记密码&#xff0c;登陆后根据权…

Android 中一些常用类的常用方法(Math、Random、Color、Paint、Canvas、Bitmap、BitmapFactory)...

1.java.lang.Math类常用的常量和方法&#xff1a; Math.PI 记录的圆周率 Math.E 记录e的常量 Math.abs 求绝对值 Math.sin 正弦函数 Math.asin 反正弦函数 Math.cos 余弦函数 Math.acos 反余弦函数 Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数 Math.toD…

效果很好的asp.net的数据库访问模型(优化,封装一体化)

效果很好的asp.net的数据库访问模型&#xff08;优化&#xff0c;封装一体化&#xff09; 非常有效的数据库/配置文件访问模型。成功使用在几万流量的网站上。任何建议欢迎大家交流。 在使用SqlCommand对象过程中&#xff0c;我们需要分配Connection对象。 通常&#xff0c;对于…

【技巧——windows】直接登陆到桌面,免去输入密码

关于这个问题其实我很早之前就研究过&#xff0c;只是一直都是弄一次就不管了&#xff0c;下次就忘记怎么弄了&#xff0c;又去查&#xff0c;现在就写个笔记吧。 win8/8.1 在开始的界面输入netplwiz&#xff0c;或者点击winr打开运行&#xff0c;输入netplwiz&#xff0c;然后…

虚商烦恼多?不在怕的!你距离享受高效虚商控制台只差一步的距离

摘要&#xff1a;虚商烦恼多&#xff1f;不在怕的&#xff01;你距离享受高效虚商控制台只差一步的距离虚商自助服务平台 vco.console.aliyun.com/原文链接本文为云栖社区原创内容&#xff0c;未经允许不得转载

Shark Hive Spark Hadoop2 进行整合的测试。

本文目的是测试将shark和hadoop2进行整合。 本来打算使用Shark 最新版0.9.0 &#xff0c;但是官方好像还没有针对与Hadoop2的正式下载地址。&#xff08;这个要说明一下&#xff0c;官方只提供了源码&#xff0c;并没有找到编译好的0.9.0 for hadoop2 &#xff0c;也许需要自己…