版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据处理框架:Storm:Storm安装与配置1环境准备1.1检查系统需求在开始安装ApacheStorm之前,确保你的系统满足以下最低要求:操作系统:推荐使用Linux发行版,如Ubuntu、CentOS等。内存:至少4GBRAM。处理器:至少2核CPU。磁盘空间:至少10GB可用空间。1.2下载Storm安装包访问ApacheStorm的官方网站。选择最新稳定版本的tar.gz文件进行下载。将下载的文件保存到你的服务器或本地机器上。#下载Storm安装包示例
wget/dist/storm/storm-1.2.4/apache-storm-1.2.4.tar.gz1.3安装Java环境ApacheStorm需要Java环境支持。确保你的系统上已经安装了Java8或更高版本。1.3.1检查Java是否已安装#检查Java版本
java-version如果命令返回Java版本信息,说明Java已安装。如果没有安装,可以使用以下命令在Ubuntu上安装Java:#在Ubuntu上安装Java
sudoapt-getupdate
sudoapt-getinstalldefault-jdk在CentOS上安装Java:#在CentOS上安装Java
sudoyumupdate
sudoyuminstalljava-1.8.0-openjdk1.3.2验证Java环境安装完成后,再次运行java-version命令,确保Java版本符合要求。#验证Java版本
java-version输出应类似于:openjdkversion"1.8.0_282"
OpenJDKRuntimeEnvironment(build1.8.0_282-b08)
OpenJDK64-BitServerVM(build25.282-b08,mixedmode)1.4解压Storm安装包将下载的Storm安装包解压到一个合适的目录下,例如/opt。#解压Storm安装包
tar-xzfapache-storm-1.2.4.tar.gz-C/opt1.5配置Storm环境变量为了方便使用Storm,需要将Storm的bin目录添加到系统的PATH环境变量中。#编辑bash配置文件
sudonano/etc/environment
#在文件末尾添加以下行
PATH="/opt/apache-storm-1.2.4/bin:$PATH"保存并关闭文件后,使环境变量生效:#使环境变量生效
source/etc/environment1.6配置Storm集群Storm集群的配置主要在conf/storm.yaml文件中进行。以下是一些基本的配置项:nimbus.host:Nimbus服务器的主机名或IP地址。supervisor.slots.ports:Supervisor上可用的端口列表,用于运行worker进程。storm.local.dir:Storm在本地文件系统上的工作目录。1.6.1示例配置#conf/storm.yaml示例配置
nimbus.host:"storm-nimbus"
supervisor.slots.ports:[6700,6701,6702,6703]
storm.local.dir:"/opt/apache-storm-1.2.4/storm-local"1.7启动Storm集群在Nimbus服务器上启动Nimbus服务:#启动Nimbus服务
stormnimbus在Supervisor服务器上启动Supervisor服务:#启动Supervisor服务
stormsupervisor1.8验证Storm集群使用stormui命令启动StormUI,然后在浏览器中访问http://<nimbus-host>:8080,查看集群状态和拓扑信息。#启动StormUI
stormui1.9安装ZookeeperStorm集群需要Zookeeper进行协调。确保Zookeeper已安装并运行在集群中。1.9.1下载Zookeeper#下载Zookeeper
wget/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz1.9.2解压Zookeeper#解压Zookeeper
tar-xzfzookeeper-3.4.14.tar.gz-C/opt1.9.3配置Zookeeper编辑conf/zoo.cfg文件,配置Zookeeper集群。#编辑Zookeeper配置文件
nano/opt/zookeeper-3.4.14/conf/zoo.cfg
#添加以下行
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=21811.9.4启动Zookeeper在每台Zookeeper服务器上启动Zookeeper服务。#启动Zookeeper服务
/opt/zookeeper-3.4.14/bin/zkServer.shstart1.10配置Storm与Zookeeper在Storm的conf/storm.yaml文件中,配置Zookeeper的连接信息。#conf/storm.yaml示例配置
storm.zookeeper.servers:
-"zookeeper1"
-"zookeeper2"
-"zookeeper3"
storm.zookeeper.port:21811.11安装Storm依赖Storm可能需要一些额外的依赖库,例如librdkafka用于Kafka集成。在Ubuntu上安装这些依赖:#安装Storm依赖
sudoapt-getinstalllibrdkafka0在CentOS上安装依赖:#安装Storm依赖
sudoyuminstalllibrdkafka1.12配置Storm日志Storm的日志配置在conf/perties文件中。根据你的需求调整日志级别和输出位置。#编辑Storm日志配置文件
nano/opt/apache-storm-1.2.4/conf/perties1.12.1示例配置#conf/perties示例配置
log4j.rootLogger=INFO,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:%L-%m%n1.13安装Storm客户端在需要提交拓扑的客户端机器上,安装Storm客户端。#解压Storm客户端
tar-xzfapache-storm-1.2.4.tar.gz-C/opt1.13.1配置Storm客户端编辑conf/storm.yaml文件,配置客户端连接到Nimbus和Zookeeper。#conf/storm.yaml示例配置
nimbus.host:"storm-nimbus"
nimbus.thrift.port:6627
storm.zookeeper.servers:
-"zookeeper1"
-"zookeeper2"
-"zookeeper3"
storm.zookeeper.port:21811.14测试Storm集群使用Storm自带的示例拓扑进行测试,确保集群正常工作。#提交示例拓扑
stormjar/opt/apache-storm-1.2.4/examples/storm-starter/storm-starter-topologies-1.2.4.jarorg.apache.storm.starter.WordCountTopologyword-count在StormUI中查看拓扑状态,确认拓扑已成功提交并运行。通过以上步骤,你已经完成了ApacheStorm的安装与基本配置。接下来,可以开始开发和提交你自己的Storm拓扑,进行大数据实时处理。2大数据处理框架:Storm安装与配置2.1安装Storm2.1.1配置Storm环境变量在安装Storm之前,配置环境变量是确保Storm能够正确运行的关键步骤。环境变量的设置通常包括STORM_HOME和JAVA_HOME,这两个变量分别指向Storm的安装目录和Java的安装目录。设置STORM_HOME#在.bashrc或.bash_profile文件中添加以下行
exportSTORM_HOME=/path/to/storm
exportPATH=$PATH:$STORM_HOME/bin设置JAVA_HOMEexportJAVA_HOME=/path/to/java确保JAVA_HOME指向你的JDK安装目录,Storm需要JDK来运行。2.1.2解压Storm安装包下载Storm的安装包后,通常是一个.tar.gz文件,使用以下命令解压:tar-xzfstorm-1.2.2.tar.gz这将创建一个名为storm-1.2.2的目录,你可以根据需要重命名或移动这个目录到一个更合适的位置。2.1.3设置Nimbus和Supervisor节点Storm集群由Nimbus和Supervisor节点组成。Nimbus节点负责分配任务和管理集群,而Supervisor节点则运行和管理任务的工作进程。配置Nimbus节点Nimbus节点的配置主要在conf/storm.yaml文件中进行。你需要设置Nimbus的主机名和端口:nimbus.host:"nimbus-hostname"
nimbus.thrift.port:662配置Supervisor节点Supervisor节点的配置同样在conf/storm.yaml文件中。设置Supervisor的主机名和使用的端口:supervisor.slots.ports:[6700,6701,6702]每个端口代表一个slot,一个slot可以运行一个worker进程。启动Nimbus和Supervisor在Nimbus节点上,使用以下命令启动Nimbus:$STORM_HOME/bin/stormnimbus在Supervisor节点上,启动Supervisor:$STORM_HOME/bin/stormsupervisor2.2配置Storm集群2.2.1配置ZookeeperStorm使用Zookeeper进行协调和状态管理。确保Zookeeper已经安装并运行在集群中。在storm.yaml中配置Zookeeper的连接信息:storm.zookeeper.servers:
-"zookeeper-hostname"
storm.zookeeper.port:21812.2.2配置StormUIStormUI提供了集群的可视化界面。在storm.yaml中配置UI的主机名和端口:ui.port:8888
ui.host:"ui-hostname"启动UI:$STORM_HOME/bin/stormui2.2.3配置StormWorker在每个运行worker进程的节点上,配置storm.yaml以指定Nimbus和Zookeeper的连接信息。此外,设置supervisor.id以唯一标识每个Supervisor:supervisor.id:"supervisor-unique-id"2.3提交和运行Storm拓扑2.3.1创建Storm拓扑Storm拓扑是数据流处理的逻辑表示。使用Java或Python编写拓扑,例如,一个简单的Java拓扑://StormTopology.java
importorg.apache.storm.topology.TopologyBuilder;
importorg.apache.storm.topology.IRichBolt;
importorg.apache.storm.topology.IRichSpout;
importorg.apache.storm.Config;
importorg.apache.storm.StormSubmitter;
publicclassStormTopology{
publicstaticvoidmain(String[]args)throwsException{
TopologyBuilderbuilder=newTopologyBuilder();
//添加Spout
builder.setSpout("spout",newMySpout(),1);
//添加Bolt
builder.setBolt("bolt",newMyBolt(),2).shuffleGrouping("spout");
Configconf=newConfig();
conf.setDebug(true);
//提交拓扑
StormSubmitter.submitTopology("my-topology",conf,builder.createTopology());
}
}2.3.2提交拓扑使用以下命令提交拓扑到Storm集群:$STORM_HOME/bin/stormjar/path/to/your/topology.jarorg.example.StormTopologymy-topology2.3.3监控拓扑使用StormUI或命令行工具监控拓扑的运行状态:$STORM_HOME/bin/stormui或者,使用命令行查看拓扑信息:$STORM_HOME/bin/stormlist2.4故障排除和优化2.4.1监控日志Storm的日志文件提供了关于拓扑运行的详细信息。检查Nimbus、Supervisor和worker的日志文件,以诊断问题。2.4.2调整配置根据拓扑的性能需求,调整storm.yaml中的配置参数,如worker.childopts和topology.max.spout.pending。2.4.3使用JMX监控Storm支持JMX监控,可以使用JMX工具如VisualVM来监控Storm进程的性能指标。2.5结论通过上述步骤,你已经成功安装和配置了Storm集群,并能够提交和运行拓扑。接下来,你可以进一步优化配置,以满足特定的性能需求,并利用日志和监控工具进行故障排除和性能调优。3大数据处理框架:Storm:配置Storm3.1配置Storm.yaml文件在Storm的配置中,storm.yaml文件是核心配置文件,它定义了Storm集群的运行环境和参数。下面是一个storm.yaml文件的示例,我们将详细解释其主要配置项:#storm.yaml配置文件示例
#Nimbus和Supervisor的主机和端口配置
nimbus:
host:"nimbus-host"
thrift-port:6627
supervisor:
host:"supervisor-host"
thrift-port:6628
#Zookeeper的配置
zookeeper:
host:"zookeeper-host"
port:2181
chroot:"/storm"
#集群的配置
storm:
cluster-mode:"distributed"
topology-workers:2
topology-tasks:4
topology-max-spout-pending:1000
supervisor-childopts:"-Xms512m-Xmx1024m"
nimbus-childopts:"-Xms512m-Xmx1024m"
supervisor-launch-retries:3
supervisor-shutdown-wait:10
supervisor-max-heap-size:1024
supervisor-min-heap-size:512
supervisor-max-per-mem:1024
supervisor-min-per-mem:512
supervisor-max-per-cpu:1
supervisor-min-per-cpu:0.5
supervisor-max-active-workers:10
supervisor-max-active-workers-per-topology:5
supervisor-max-active-workers-per-host:2
supervisor-max-active-workers-per-port:1
supervisor-max-active-workers-per-executor:1
supervisor-max-active-workers-per-task:1
supervisor-max-active-workers-per-topology-per-host:2
supervisor-max-active-workers-per-topology-per-port:1
supervisor-max-active-workers-per-topology-per-executor:1
supervisor-max-active-workers-per-topology-per-task:1
supervisor-max-active-workers-per-topology-per-supervisor:1
supervisor-max-active-workers-per-topology-per-supervisor-per-host:2
supervisor-max-active-workers-per-topology-per-supervisor-per-port:1
supervisor-max-active-workers-per-topology-per-supervisor-per-executor:1
supervisor-max-active-workers-per-topology-per-supervisor-per-task:1
#日志配置
log4j:
rootLogger:"INFO,R"
appender:
R:
type:"org.apache.log4j.RollingFileAppender"
file:"/var/log/storm/storm.log"
maxFileSize:"10MB"
maxBackupIndex:103.1.1解释Nimbus和Supervisor配置:Nimbus是Storm集群的主节点,负责分配任务和管理集群状态;Supervisor是工作节点,负责运行和管理任务。这里配置了它们的主机名和Thrift服务端口。Zookeeper配置:Zookeeper用于Storm集群的协调和状态管理。chroot参数指定了Zookeeper中Storm使用的根目录。集群配置:cluster-mode设置为distributed表示使用分布式模式。topology-workers和topology-tasks分别定义了每个拓扑运行的worker数量和每个worker的任务数量。supervisor-childopts和nimbus-childopts配置了JVM的内存参数。日志配置:log4j配置了Storm的日志级别和日志文件的滚动策略,确保日志文件不会无限增长。3.2设置日志和监控Storm的日志和监控是确保集群健康运行的关键。日志配置已在storm.yaml中示例,接下来是监控配置。3.2.1监控配置Storm使用多种方式来监控集群状态,包括JMX、StormUI和外部监控系统如Ganglia或Nagios。在storm.yaml中,可以配置以下监控相关参数:#监控配置示例
metrics:
enabled:true
jmx:
enabled:true
port:7182
ui:
enabled:true
port:8080
ganglia:
enabled:false
port:8650
host:"ganglia-host"3.2.2解释metrics配置:metrics部分启用了监控功能,jmx和ui分别配置了JMX和StormUI的端口。ganglia配置了是否启用Ganglia监控,以及其主机和端口。3.3配置集群模式Storm支持多种集群模式,包括分布式模式(distributed)和本地模式(local)。本地模式主要用于开发和测试,而分布式模式用于生产环境。3.3.1分布式模式配置在storm.yaml中,通过设置storm.cluster-mode为distributed来启用分布式模式。此外,还需要配置Nimbus和Supervisor的主机信息,以及Zookeeper的连接信息。3.3.2本地模式配置对于本地模式,storm.cluster-mode应设置为local。在这种模式下,Nimbus和Supervisor的功能将由同一台机器上的进程执行,无需配置主机信息。3.3.3示例:切换到本地模式#切换到本地模式的storm.yaml配置
storm:
cluster-mode:"local"
nimbus:
host:"localhost"
thrift-port:6627
supervisor:
host:"localhost"
thrift-port:6628
zookeeper:
host:"localhost"
port:2181
chroot:"/storm"3.3.4解释在本地模式下,所有服务都运行在本地主机上,端口配置用于本地服务间的通信。这种配置简化了开发和测试环境的搭建,但不适用于生产环境。通过以上配置,可以确保Storm集群在不同模式下稳定运行,同时具备有效的日志记录和监控功能。4测试Storm安装4.1启动Nimbus和Supervisor服务在开始测试Storm的安装之前,首先需要确保Nimbus和Supervisor服务能够正常启动。Nimbus是Storm集群的主节点,负责分配任务和管理集群状态;Supervisor是工作节点,负责运行和管理Topology中的任务。4.1.1Nimbus服务启动定位Nimbus服务的配置文件:打开Storm的配置目录,通常为$STORM_HOME/conf。编辑nimbus.yaml文件,确保Nimbus的主机名和端口正确配置。启动Nimbus服务:在Nimbus节点上,执行以下命令:$STORM_HOME/bin/stormnimbus4.1.2Supervisor服务启动定位Supervisor服务的配置文件:同样在Storm的配置目录中,编辑supervisor.yaml文件,确保Supervisor的主机名和端口正确配置,以及分配给它的资源和任务槽数量。启动Supervisor服务:在每个Supervisor节点上,执行以下命令:$STORM_HOME/bin/stormsupervisor4.2提交测试Topology测试Topology是检查Storm集群是否正确安装和配置的关键步骤。一个简单的测试Topology可以是WordCount示例,它接收数据流,统计每个单词出现的次数。4.2.1创建Topology编写Spout:Spout是Topology中的数据源。以下是一个简单的Spout示例,它模拟发送单词到Topology中://Spout类定义
publicclassWordSpoutextendsBaseRichSpout{
privatestaticfinallongserialVersionUID=1L;
privateSpoutOutputCollector_collector;
privateRandom_rand;
privateList<String>_words;
publicvoidopen(Mapconf,TopologyContextcontext,SpoutOutputCollectorcollector){
_collector=collector;
_rand=newRandom();
_words=Arrays.asList("storm","bigdata","tutorial","example");
}
publicvoidnextTuple(){
//模拟发送单词
Stringword=_words.get(_rand.nextInt(_words.size()));
_collector.emit(newValues(word));
try{
Thread.sleep(1000);
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
}编写Bolt:Bolt是Topology中的数据处理器。以下是一个简单的Bolt示例,用于统计单词出现次数://Bolt类定义
publicclassWordCounterBoltextendsBaseBasicBolt{
privatestaticfinallongserialVersionUID=1L;
privateMap<String,Integer>_counts;
publicvoidprepare(MapstormConf,TopologyContextcontext){
_counts=newHashMap<>();
}
publicvoidexecute(BasicInputinput,BasicOutputCollectorcollector){
//接收单词并计数
Stringword=input.getStringByField("word");
Integercount=_counts.get(word);
_counts.put(word,(count==null)?1:count+1);
collector.emit(newValues(word,_counts.get(word)));
}
}定义Topology:使用StormAPI定义Topology,包括Spout和Bolt的连接://Topology定义
publicclassWordCountTopology{
publicstaticvoidmain(String[]args){
TopologyBuilderbuilder=newTopologyBuilder();
builder.setSpout("word-spout",newWordSpout(),5);
builder.setBolt("word-counter",newWordCounterBolt(),8)
.shuffleGrouping("word-spout");
Configconf=newConfig();
conf.setDebug(true);
LocalClustercluster=newLocalCluster();
cluster.submitTopology("word-count",conf,builder.createTopology());
//等待Topology运行
Thread.sleep(10000);
cluster.shutdown();
}
}4.2.2提交Topology编译并打包Topology:使用Maven或Gradle编译项目,并将所有依赖项打包到一个JAR文件中。提交Topology到Storm集群:使用以下命令提交Topology:$STORM_HOME/bin/stormjar/path/to/your/topology.jarcom.example.WordCountTopologyword-count4.3检查Topology运行状态提交Topology后,需要检查其运行状态,确保所有组件都在正常工作。4.3.1使用StormUI访问StormUI:打开浏览器,访问http://<nimbus-host>:8888,这将显示Storm集群的UI界面。查看Topology信息:在UI中,找到你提交的Topology,检查其状态、组件和执行情况。4.3.2使用StormCLI检查Topology列表:执行以下命令查看所有正在运行的Topology:$STORM_HOME/bin/stormlist获取Topology详细信息:使用以下命令获取Topology的详细信息:$STORM_HOME/bin/stormtopology-summary检查组件状态:通过以下命令检查Topology中组件的状态:$STORM_HOME/bin/stormrebalanceword-count通过上述步骤,你可以确保Storm集群的安装和配置正确无误,且能够成功运行和监控Topology。5高级配置5.1优化Storm性能5.1.1原理Storm的性能优化主要围绕减少数据处理延迟、提高吞吐量和确保资源高效利用。这包括调整拓扑结构、优化数据序列化、合理配置执行器和工作器,以及利用Storm的调度策略。5.1.2内容调整拓扑结构并行度调整:通过设置spout.parallelism_hint和bolt.parallelism_hint来调整并行度,确保数据流的均衡处理。选择合适的执行器:根据任务的计算需求选择合适的执行器,如Java执行器或Native执行器。优化数据序列化使用更高效的序列化库,如Kryo,替代默认的Java序列化,以减少序列化和反序列化的时间。合理配置执行器和工作器执行器:每个Bolt或Spout可以运行在多个执行器上,通过调整topology.builtin.metrics.bucket.size.secs来优化执行器的配置。工作器:每个工作器是一个JVM进程,通过调整topology.workers来控制工作器的数量,从而影响资源的使用和任务的并行处理能力。利用Storm的调度策略资源调度:通过topology.scheduler配置,选择合适的调度策略,如CapacityScheduler或FairScheduler,以优化资源分配。5.1.3示例代码//设置拓扑结构的并行度
TopologyBuilderbuilder=newTopologyBuilder();
builder.setSpout("spout",newMySpout(),8);//8个并行实例
builder.setBolt("bolt",newMyBolt(),16).shuffleGrouping("spout");//16个并行实例
//配置Kryo序列化
Map<String,Object>conf=newHashMap<>();
conf.put(Config.TOPOLOGY_SERIALIZER,KryoSerializer.class);
conf.put(Config.TOPOLOGY_ACKER_EXECUTORS,2);
conf.put(Config.TOPOLOGY_WORKER_CHILDOPTS,"-Xmx512m");
//提交拓扑结构
StormSubmitter.submitTopology("my-topology",conf,builder.createTopology());5.2配置容错和恢复5.2.1原理Storm通过多种机制提供容错能力,包括任务失败的自动检测、任务的重新调度、数据的持久化存储,以及状态检查点。5.2.2内容任务失败的自动检测Storm通过心跳机制检测工作器的健康状态,一旦检测到工作器失败,会自动重新调度任务。数据的持久化存储使用HDFS、Cassandra等持久化存储系统,确保数据在处理过程中的持久性。状态检查点通过配置erval.secs,定期保存拓扑状态,以便在故障恢复时使用。5.2.3示例代码//配置状态检查点
Map<String,Object>conf=newHashMap<>();
conf.put(Config.TOPOLOGY_STATE_CHECKPOINT_INTERVAL_SECS,60);//每60秒保存一次状态
//提交拓扑结构
StormSubmitter.submitTopology("my-topology",conf,builder.createTopology());5.3安全性和权限管理5.3.1原理Storm的安全性主要通过身份验证、授权和审计来实现。这包括使用Kerberos进行身份验证,ApacheRanger或自定义授权框架进行权限管理,以及日志记录和监控系统进行审计。5.3.2内容身份验证使用Kerberos进行身份验证,确保只有授权用户可以提交拓扑或访问Storm集群。权限管理通过ApacheRanger或自定义授权框架,设置用户和角色的访问权限,控制对Storm资源的访问。审计利用日志记录和监控系统,如Flume和Kafka,记录和监控所有对Storm集群的操作,以进行安全审计。5.3.3示例代码//配置Kerberos身份验证
Map<String,Object>conf=newHashMap<>();
conf.put(Config.STORM_KERBEROS_PRINCIPAL,"storm@EXAMPLE.COM");
conf.put(Config.STORM_KERBEROS_KEYTAB,"/path/to/storm.keytab");
//提交拓扑结构
StormSubmitter.submitTopology("my-topology",conf,builder.createTopology());以上配置和代码示例展示了如何在Storm中进行高级配置,包括性能优化、容错和恢复机制的设置,以及安全性和权限管理的实现。通过这些配置,可以显著提高Storm集群的稳定性和处理效率,同时确保数据的安全性和合规性。6大数据处理框架:Storm:常见问题与解决6.1解决安装错误6.1.1问题1:依赖包冲突在安装Storm时,可能会遇到与系统中已安装的其他软件包的依赖冲突。例如,Storm依赖于特定版本的JDK,如果系统中安装了不兼容的JDK版本,可能会导致安装失败。解决方案确认JDK版本:java-version确保JDK版本为1.8或更高。安装正确版本的JDK:sudoapt-getinstallopenjdk-8-jdk设置环境变量:在/etc/environment中添加:JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
PATH="$JAVA_HOME/bin:$PATH"重启系统:重启系统以确保所有环境变量生效。6.1.2问题2:Zookeeper版本不匹配Storm与Zookeeper紧密集成,用于集群管理和状态存储。如果Zookeeper版本与Storm不兼容,可能会导致安装过程中的错误。解决方案下载正确版本的Zookeeper:访问Zookeeper官网,下载与Storm版本兼容的Zookeeper版本。配置Zookeeper路径:在Storm的配置文件storm.yaml中,设置Zooke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《日语学术论文写作》教学大纲
- 2024版家庭装修水电安装协议书
- 2024网络游戏开发运营方与广告代理商的广告投放合同
- 中考名著导读《红岩》
- 2024门窗行业信息化建设与数据服务合同3篇
- 2024雏鸡养殖设备采购合同
- 05 全真模拟(一)-备战2023年中考英语听说高分攻略(北京专用)(答案及听力原文)
- 2024航空器材采购与维修合同
- 2024铜门行业论坛赞助与合作合同3篇
- 临床技能训练 循环系统-卫生部评估课件
- 思想道德与法治全册教案
- 教师口语教程教学课件汇总全套电子教案(完整版)
- 《形体舞蹈》课程思政教学案例(一等奖)
- 风电机组电气仿真模型建模导则(征求意见稿)
- 高考语文备考之从小说考点解读《哦香雪》(知识点解读+精品课件+比较阅读+模拟命题)
- 2022年中医馆相关制度
- 异常反应调查诊断ppt课件
- 浙教版八年级下册科学3.1空气与氧气(3课时)(68张PPT)
- 道路减速带减速模型分析
- 身体健康状况自测表
- 50T汽车吊吊装施工方案
评论
0/150
提交评论