2023大数据技术之Spark基础解析_第1页
2023大数据技术之Spark基础解析_第2页
2023大数据技术之Spark基础解析_第3页
2023大数据技术之Spark基础解析_第4页
2023大数据技术之Spark基础解析_第5页
已阅读5页,还剩179页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据技术Spark基础解析

1

第1章Spark概述

1.1什么是Spark

什么是Spark

1'定义

Spark是一种基于内存的快速、通用、可扩展的大数据分析引擎。

2、历史

2009年诞生于加帅大学伯克利分校AMPLab,项弓采用Scala编写。

2010年开源;

2013年6月成为Apache孵化项目

2014年2月成为Apache顶级项目。

1.2Spark内置模块

Spark内置模块

SparkSQLSparkSparkMlibSpark

StreamingGraghX

结构化数据机器学习

实时计算图计算

SparkCore

独立调度器YARNMesos

2

SparkCore:实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储

系统交互等模块。SparkCore中还包含了对弹性分布式数据集(ResilienlDistributedDataSet,

简称RDD)的API定义。

SparkSQL:是Spark用来操作结构化数据的程序包。通过SparkSQL,我们可以使用

SQL或者ApacheHive版本的SQL方言(HQL)来查询数据。SparkSQL支持多种数据源,

比如Hive表、Parquet以及JSON等。

SparkStreaming:是Spark提供的对实时数据进行流式计算的组件。提供了用来操作数

据流的API,并且与SparkCore中的RDDAPI高度对应。

SparkMLlib:提供常见的机器学习(ML)功能的程序库。包括分类、回归、聚类、协同

过滤等,还提供了模型评估、数据导入等额外的支持功能。

集群管理器:Spark设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计

算。为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(Cluster

Manager)上运行,包括HadoopYARN、ApacheMesos»以及Spark自带的一个简易调度器,

叫作独立调度器.

Spark得到了众多大数据公司的支持,这些公司包括HortonworkssIBM>InteR

Cloudera.M叩R、Pivotak百度、阿里、腾讯、京东、携程、优酷土豆。当前百度的Spark

已应用于大搜索、直达号、百度大数据等业务;阿里利用GraphX构建了大规模的图计算和

图挖掘系统,实现了很多生产系统的推荐算法;腾讯Spark集群达到8000台的规模,是当

前已知的世界上最大的Spark集群。

3

1.3Spark特点

沙Spark特点@芮琏谷

I)快:与Hadoop的MapReduce相比,Spark基于内存的运算要快IOO倍以上,基于硬盘的运算也要快10倍以

上。Spark实现了高效的DAG执行引擎,可以通过基于内存来而效处理数据流,计并的中间结果是存在于内存中

的。

2)易用:Spark支持Java、Python和Scala的API.还支持超过80种高级算法,使用户可以快速构建不I可的应

用。面ILSpark支持文可.式的Pyihon和Scala的Shell,可以非常方便地在:这些Shell中使用Spark集群来验证解次问

题的方法.

3)通用:Spark提供「统一的解决方案。Spark可以用于批处理、交互式查询(SparkSQL)、实时流处理

(SparkStreaming)、机舞学习(SparkMLlib)和图计算(GraphX).这些不同类型的处理都可以在同一个应

用中无缝使用。减少J'开发和维护的人力成本和部署平台的物力成本。

4)兼容性:Spark可以非营方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和

ApacheMesos作为它的资源管理和调度器,并J1可以处理所仃Hadoop支持的数据,包括HDFS、HBase等。这对于

己经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力.

第2章Spark运行模式

2.1Spark安装地址

1.官网地址

http:〃SDark.aD/

2.文档杳看地址

h—DS:〃spark.apache.o「g/docs/2.1.1/

3.下载地址

https:〃sD/downloads.html

3

2.3Local模式

2.3.1概述

〈个概述◎尚硅谷

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。

它可以通过以下集中方式设置Master.

local:所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执行

一些测试代码,或者练手,就用这种模式;

local[K]:指定使用几个线程来运行计算,比如local[4:就是运行4个Worker线程。通

常我们的Cpu有几个Core,就指定几个线程,最大化利用Cpu的计算能力;

localf*]:这种模式直接帮你按照Cpu最多Cores来设置线程数了。

2.3.2安装使用

1)上传并解压spark安装包

[atguigu@hadoopl02sorfware]$tar-zxvfspark-2.1.1-bin-

hadoop2.7.tgz-C/opt/module/

[atguigu@hadoopl02module]$mvspark-2.1.l-bin-hadoop2.7spark

2)官方求PI案例

[atguigu@hadoopl02spark]$bin/spark-subnit\

--classorg.apache.spark.examples.SparkPi\

-executor-memory1G\

-total-executor-cores2\

./examples/jars/spark-examples_2.11-2.1.L.jar\

100

(1)基本语法

bin/spark-submit\

—class<main-class>

-master<master-url>\

-deploy-mode<deploy-mode>\

-conf<key>=<value>\

...#otheroptions

<application-jar>\

[application-arguments]

(2)参数说明:

-master指定Master的地址,默认为Local

4

--class:你的应用的启动类(如org.apache.spark.examples.SparkPi)

-deploy-mode:是否发布你的驱动到worker节点(cluster)或者作为一个本地客户端

(client)(default:client)*

-conf:任意的Spark配置属性,格式key=value.如果值包含空格,可以加引号

ttkcy=valuc,,

application-jar:打包好的应用jar,包含依赖.这个URL在集群中全局可见。比如hdfs:〃

共享存储系统,如果是file://path,那么所有的节点的paih都包含同样的jar

application-arguments:传给main。方法的参数

-execulor-memory1G指定每个execulor可用内存为IG

—total-executor-cores2指定每个executor使用的cup核数为2个

3)结果展示

该算法是利用蒙特・卡罗算法求PI

18/09/2909:04:35INFOTaskschedulerimpl:RemovedTaskset0.0,whosetaskshaveallcom

pleted,frompool

18/09/2909:04:35INFODAGScheduler:Job0finished:reduceatSparkPi.scala:38,took2

§1Q863s

4膘33.141077914L07791可

18/09/29INFOsparKUl:3to叩edSparkwebUIathttp://192.168.9.102:4040

18/09/2909:04:35INFOMaoOutputTrackerMasterEndpoint:MapoutputTrackerMasterEndpoints

Topped!

18/09/2909:04:35INFOMemorystore:Memorystorecleared

18/09/2909:04:35INFOBlockManager:BlocKManagerstopped

18/09/2909:04:35INFOBlockManage「Master:BlockManage「Masterstopped

18/09/2909:04:35INFOoutputcommitcoordinatorSoutputcommitcoordinatorEndpoint:outputc

ommitcoordinatorstopped!

18/09/2909:04:35INFOSparkcontext:SuccessfullystoppedSparkcontext

18/09/2909:04:35INFOSnutdownHookManager:Shutdownnookcalled

18/09/2909:04:35INFOShutdownHookManager:Deletingdirectory/t叩/spark-afa7967e-0946

-40dl-b786-b41a992ff624

[atguigu@hadoopl02spark]5

4)准备文件

[atguigu@hadoopl02spark]$mkdirinput

在input下创建3个义件Ltxt和2.txt,并输入以下内容

helloatguigu

hellospark

5)启动spark-shell

[atguigu0hadooplO2spark]$bin/spark-shell

UsingSpark'sdefaultlog4jprofile:org/apache/spark/log4j-

perties

Settingdefaultloglevelto"WARN”.

Toadjustlogginglevelusesc.setLogLevel(newLevel).ForSparkR,

usesetLogLevel(newLevel).

18/09/2908:50:52WARNNativeCodeLoader;Unabletoloadnative-

hadooplibraryforyourplatform...usingbuiltin-javaclasses

whereapplicable

18/09/2908:50:58WARNObjectstore:Failedtogetdatabase

global_temp,returningNoSuchObjectException

SparkcontextWebUIavailableat02:4040

Sparkcontextavailableas*sc'(master=local[*]/appid=local-

1538182253312).

Sparksessionavailableas'spark,.

Welcometo

/~7~/

5

//.八,///八\version2.1.1

UsingScalaversion2.11.8(JavaHotspot(TM)64-BitServerVM,Java

1.8.0_144)

Typeinexpressionstohavethemevaluated,

Type:helpformoreinformation.

scala>

开启另一个CRD窗口

[atguigu0hadooplO2spark]$jps

3627SparkSubmit

4047Jps

可登录hadoop102:4040查看程序运行

DSparkthell-SparkJobs+

69。①不安全hadoop'02:4040/jobs/

史用凌科常用J?我

Spor^,.1JobsStagesStorageEnvironmentExecutorsSQL

SparkJobs⑺

User:atguigu

TotalUptime:12S

SchedulingMode:FIFO

►EventTimeine

6)运行WordCount程序

scala>sc.textFile("input").flatMap(_.split(*'

")).map((_,1)).reduceByKey(_+_).collect

resO:Array[(String,Int)]=Array((hadoop,6),(oozie,3),(spark,3),

(hive,3),(atguigu,3),(hbase,6))

scala>

可登录hadoop102:4040查看程序运行

DeunstoruobO

tmjrnxxaocD

2.3.3提交流程

i)提交任务分析:

6

至Spark通用运行简易流程答

重要角色:

Driver(驱动器)

Spark的驱动器是执行开发程序中的main方法的进程。它负责开发人员编写的用来创

建SparkContext、创建RDD,以及进行RDD的转化操作和行动操作代码的执行。如果你

是用sparkshell,那么当你启动Sparkshell的时候,系统后台自启了一个Spark驱动器程序,

就是在Sparkshell中预加我的一个叫作sc的SparkContext对象。如果驱动器程序终止,那

么Spark应用也就结束了。主要负责:

1)把用户程序转为,壬务2)

跟踪Executor的运行状况3)

为执行器节点调度任务

4)UI展示应用运行状况

Executor(执行器)

SparkExecutor是一个工作进程,负责在Spark作业中运行任务,任务间相互独立。

Spark应用肩动时,Executor节点被同时启动,并且始终伴随着整个Spark应用的生命周

期而存在。如果有Executor节点发生了故障或崩溃,Spark应用也可以继续执行,会将出

错节点上的任务调度到其他Executor节点上继续运行。主要负责:

I)负责运行组成Spark应用的任务,并将结果返回给驱动器进程;

7

2)通过自身的块管理器(BlockManager)为用户程序中要求缓存的RDD提供内存式

存储。RDD是直接缓存在Execulor进程内的,因此任务可以在运行时充分利用缓存数据加

速运算。

2.3.4数据流程

(extFileC'inpur):读取本地文件inpul文件夹数据;

fIatMap(_.split('*")):压平操作,按照空格分割符将一行数据映射成一个个单词;

map((_,l)):对每一个元素操作,将单词映射为元组;

reduccByKey(_+_):按照key将值进行聚合,相加;

collect:将数据收集到Driver端展示。

WordCount案例分析U芮可片

sc.textFile("input").flatMap(_.split("H)).map((_,l)).reduceByKey(_+_).collect

2.4Standalone模式

2.4.1概述

构建一个由Mastcr+Slave构成的Spark集群,Spark运行在集群中。

8

Standalone运行模式介绍

2.4.2安装使用

1)进入spark安装目录下的conf文件夹

[atguigu@hadoopl02module]$cdspark/conf/

2)修改配置文件名称

[atguigu0hadooplO2conf]$mvslaves.templateslaves

[atguigu0hadooplO2conf]$mvspark-env.sh.templatespark-env.sh

3)修改slave文件,添加work节点:

(atguigu@hadoopl02conf]$vimslaves

hadoopl02

hadoopl03

hadoopl04

4)修改spark-cnv.sh文件,添加如下配置:

[atguigu0hadooplO2conf]$vimspark-env.sh

SPARK_MASTER_HOST=hadoopl01

SPARK^MASTER二PORT=7017

5)分发spark包

[atguigu@hadoopl02module]$xsyncspark/

6)启动

[atguigu@hadoopl02spark]$sbin/start-all.sh

[atguigu@hadoopl02spark]$util.sh

================atguigu@hadoopl02================

3330Jps

3238Worker

3163Master

================atguigu0hadooplO3================

2966Jps

2908Worker

9

2978Worker

3036Jps

网页查看:hadoop102:8080

注意:如果遇到"JAVA_HOMEnotset”异常,可以在sbin目录下的spark-config.sh文件

中加入如下配置:

exportJAVA_HOME=XXXX

7)官方求PI案例

[atguigu@hadoopl02spark]$bin/spark-subnit\

--classorg.apache.spark.examples.SparkPi\

一-masterspark://hadoopl02:7077\

-executor-memory1G\

--total-executor-cores2\

./examples/jars/spark-examples_2.11-2.1.1.jar\

100

99,PROCESS_LOCAL.6030bytes)

17/07/2600:21:15INTOnskStgnagor:Finished97.0instjg。0.0(TTO97)in26on172.16.148,152(executor0

)(98/100)

17/Q7/2&001"门5IMUQTa。WtMAnacwr:Finishedfa&kqq.Oin4口迪00(TI099)in00mq由17/一lb.UK_152Qx*uSrO

/opt/module/spark/bin/spark-shell\

-masterspark://hadooplOl:7077\

-executor-memorylg\

--total-executor-cores2

7/07/2600:21:15」!STandalone>cheduler6ackend:shuttingdownallexecutors

17/07/2600:21:15INFOC-oarseGraiiedSchedulerRackendSOriverFndpoint:Askingeachexecutortoshutdown

17/07/2600:21:15INFOM1apOutputTrackerMasterFndpoint:MapOotputTrackerMasterfndpointstoppedI

17/07/2600:21:15INFOM1eiiorystore:Me«orystorecleared

17/07/2600:21:15INFORlockManager:ftlockManagerstopped

17/07/2600:21:15INFOBlockManagerwaster:BlockManagernasterstopped

17/07/2600:21:15INFOo\utputcommftcoordfnatorSOutputComnitcoordinatorFndpoint:OutputCorvritCoordinatorstopped!

00:21:15INFOsparkconxeict:successfullystoppedsparkcontext

17/07/2600:21:15INFObhutdownHo>kMaruger:shutdownhookcalled

7/07/2600:21:1INTOShutdo^nHo^kManager:Delptinqdirectory/1wrk-8d"0137d847-4480-hb69yb80bAs258s

8)启动sparkshell

参数:-masterspark://hadDopl02:7077指定要连接的集群的master

执行WordCounl程序

scala>sc.textFile("input").flatMap(_.split(*'

")).map((_,1)).reduceByKey(_+_).collect

resO:Array[(String,Int)]=Array((hadoop,6),(oozie,3)z(spark,3),

(hive,3),(atguigu,3),(hbase,6))

scala>

2.4.3JobHistoryServer配置

I)修改spark-defaull.conf.template名称

[atguigu@hadoopl02conf]$mvspark-defaults.conf.templatespark­

defaults.conf

2)修改spark-default.conf文件,开启Log:

[atguigu0hadooplO2conf]$vispark-defaults.conf

spark.eventLog.enabledtrue

10

spark.eventLog.dirhdfs://hadoopl02:9000/directory

注意:HDFS上的目录需要提前存在。

3)修改spark-env.sh文件,添加如下配置:

[atguigu@hadoopl02conf]$vispark-env.sh

exportSPARK_HISTORY_OPTS=H-Dspark.history.ui.port=18080

-Dspark.history.retainedApplications=30

-Dspark.history,fs.logDirectory=hdfs://hadooplOl:9000/directory',

参数描述:

spark.cvcntLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下

spark.history.ui.port=18080WEBUIW问的端口号为18080

spark.history.fs.logDirectory=hdfs://hadoopl()2:9()(X)/directory配置/该属性后,在start-

history-server.sh时就无需再显式的指定路径,SparkHistoryServer页面只展示该指定路径

下的信息

spark.history.retaincdApplications=30指定保存Application历史记录的个数,如果超过

这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用

数。

4)分发配置文件

[atguigu0hadooplO2conf]$xsyncspark-defaults.conf

[atguigu@hadoopl02conf]$xsyncspark-env.sh

5)启动历史服务

[atguigu0hadooplO2spark]$sbin/start-history-server.sh

6)再次执行任务

[atguigu0hadooplO2spark]$bin/spark-subnit\

--classorg.apache.spark.examples.SparkPi\

-masterspark://hadooplOl:7077\

--executor-memory1G\

-total-executor-cores2\

./examples/jars/spark-examples_2.11-2.1.1.jar\

100

7)查看历史服务

hadoop102:18080

11

标J?.,HistoryServer

t«»rv«f8TKi»«r—/MoxvgM«AZ3<XFI

UMC»*»gk2«

三三CFG6”=

mu**ntfoflw=

W«3MM*4««,•,。MUJBJ«

二=

Kens"。=

xxg<M

三=

M4MS-MMOli1•〜d・8«>加=

itaams*

KtB«3MMMMxnapaaiMM=

2fU«dMt1MXgg59JC=

叶%.・.XX,Y跳切3tu・at;

k=

««»?M«t/9G8««••・,

2.4.4HA配置

I>riverApplicatiou

图1HA架构图

1)zookeeper正常安装并启动

2)修改spark-env.sh文件添加如下配置:

[atguigu@hadoopl02conf]$vispark-env.sh

注释掉.如下内容:

#SPARK_MASTER_HOST=hadoopl02

#SPARK二MASTER二PORT=7077

添加上如下内容「

exportSPARK_DAEMON_JAVA_OPTS=n

-Dspark.dpplcy一rACOVAryModA=Z00KREPER

-Dspark.deploy,zoolieeper.url=hadoopl01zhadoopl02,hadoopl03

-Dspark.deploy.zookeeper.dir=/sparkn

3)分发配置文件

[atguigu@hadoopl02conf]$xsyncspark-env.sh

4)在hadoopl02上启动全部节点

[atguigu@hadoopl02spark]$sbin/start-all.sh

5)在hadoopl03上单独启动master节点

[atguigu@hadoopl03spark]$sbin/start-master.sh

12

6)sparkHA集群访问

/opt/module/spark/bin/spark-shell\

-masterspark://hadooplOl:7077,hadoopl02:7077\

--executor-memory2g\

-total-executor-cores2

2.5Yarn模式

2.5.1才既述Spark客户端直接连接Yarn・不需要额外构建Spark集群。有yarn-

client和yarn・cluster两种模式,主要区别在于:Driver程序的运行节点。

yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到叩p的输出

yarn-cluster:Driver程序运行在由RM(ResourceManager)启动的AP(APPMaster)

适用于生产环境。

Yam运行模式介绍U福U答

4.AppStatus直至结束

3.AM巨动Executor

并分配Tnsk

NodeManager

SparkSpark

ExecutorExecutor

v

NodeManager

Spark

Executor

2.5.2安装使用

I)修改hadoop配置文件yarn-site.xml,添加如下内容:

[atguigu@hadoopl02hadoop]$viyarn-site.xml

是否启动一个线程检杳每个任务正使用的物理内存量,如果任务超出分配值,

则直接将其杀掉,默认是二rue—>

<property>

<name>yarn.nodemanager.pmem-check-enabled</name>

<value>false</value>

</property>

<!一是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,

则直接将其杀掉,默认是二rue—>

<property>

<name>yarn.nodemanager.vmem-check-enabled</name>

13

<value>false</value>

</property>

2)修改spark-env.sh,添加如下配置:

[atguigu@hadoopl02conf]$vispark-env.sh

YARNCONFDIR=/opt/module/hadoop-2.7.2/etc/hadoop

3)分发配置文件

[atguigu@hadoopl02conf]$xsync/opt/module/hadoop-

2.7.2/etc/hadoop/yarn-site.xml

[atguigu@hadoopl02conf]$xsyncspark-env.sh

4)执行一个程序

[atguigu0hadooplO2spark]$bin/spark-subnit\

--classorg.apache.spark.examples.SparkPi\

-masteryarn\

-deploy-modeclient\

./examples/jars/spark-examples_2.11-2.1.1.jar\

100

注意:在提交任务之前需启动HDFS以及YARN集群。

2.5.3日志查看

I)修改配置文件spark-defaulls.conf

添加如下内容:

spark.yarn.historyServer.address=hadoopl01:18080

spark.history.ui.port=4000

2)重启spark历史服务

[atguigu@hadoopl02spark]$sbin/stop-history-server.sh

stoppingorq.apache.spark.deploy.history.HistoryServer

[atguigu@hadoopl02spark]$sbin/start-history-server.sh

startingorg.apache.spark.deploy.history.HistoryServer,loggingto

/opt/module/spark/logs/spark-atguigu-

org.apache.spark.deploy.history.HistoryServer-1-hadoopl02.out

3)提交任务到Yarn执行

[atguigu0hadooplO2spark]$bin/spark-subnit\

--classorg.apache.spark.examples.SparkPi\

-masteryarn\

--deploy-modeclient\

./examples/jars/spark-examples_2.11-2.1.L.jar\

100

4)Web页面查看日志

14

AllApplications

SpartcJobs㈠

u».”i

SlOMfWWVE

SiUMMJMl*

2.6Mesos模式

Spark客户端直接连接Mesos;不需要额外构建Spark集群。国内应用比较少,更多的

是运用yam调度。

2.7几种模式对比

模式Spark安装机费数需扇动的进程所属者

Local1无Spark

Standalone3Master及WorkerSpark

Yarn1Yarn及HDFSHadoop

第3章案例实操

SparkShell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDE

中编制程序,然后打成jar包,然后提交到集群,最常用的是创建一个Maven项目,利用

Maven来管理jar包的依赖。

3.1编写WordCount程序

I)创建一个Maven项目WordCount并导入依赖

〈dependencies〉

〈dependency〉

<groupld>org.apache.spark</grouplc>

<artifactld>spark-core2.11</artifactId>

15

<version>2.1.l</version>

</dependency>

〈/dependencies〉

<build>

<finalName>WordCount</finalName>

<plugins>

<plugin>

<groupld>net.alchim31.maven</groupld>

<artifactId>scala-maven-plugin</artifactId>

<version>3.2.2</version>

<execations>

<execution>

<goals>

<goal>compile</goal>

<goal>testCompile</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

2)编写代码

packagecom.atguigu

importorg.apache.spark.{SparkConf,SparkContext}

objectWordCount{

defmain(args:Array[String]):Unit={

//I.创建SparkConf并设置App名称

valconf=newSparkConf().setAppName("WC")

//2.创建SparkContext,该对象是提交SparkApp的入口

valsc=newSparkContext(conf)

//3.使用sc创建RDD并执行相应的transformation和action

sc.textFile(args(0)).flatMap(_.split(*'")).map:(_,

1)).reduceByKey1).sortBy(_._2,false).saveAsTextFile(args(1))

//4.关闭连接

SC.Stop()

)

)

3)打包插件

<plugin>

<groupld>org.apache.maven.plugins</groupld>

<artifactld>maven-asseinbly-plugin</artifactlci>

<version>3.0.0</version>

〈configuration〉

<archive>

<manifest>

<mainClass>WordCount</mainClass>

〈/manifest〉

</archive>

16

<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>

4)打包到集群测试

bin/spark-submit\

-classWordCount\

-masterspark://hadoopl02:7077\

WordCount.jar\

/word.txt\

/out

3.2本地调试

本地Spark程序调试需要使用local提交模式,即将本机当做运行环

境,Master和Worker都为本机。运行时直接加断点调试即可。如下:

创建SparkConf的时候设置额外属性,表明本地执行:

valconf=newSparkConf().setAppName(*'WCn).setMaster("local;*1")

如果本机操作系统是windows,如果在程序中使用了hadoop相关的东

西,比如写入文件到HDFS,则会遇到如下异常:

2017-0^-1416:08:34.907ERROR—[ruinjorgapAeh?.hadoop.util.Sh*lKhn^i03>Fail"tolocateth*mnuti1cbin*ryinhftdooplinar*pAth

JAVAto.lOCxe<»pTioc:CouldnorwcvtabUnull\bminHadoop

atorrKadoop.uti1.Shel1.geiXal1f--

aior«.hadoop.util.Shell,grin:(nlspAth(-")

ator«.apdcfe.hadoop.util.Shell.

ator«apache.hadooputil.Sxnngtx;ls.

ator£.apache,hadoop.conf.Confifiuxation.geiTrinaedStriaij

atorc.apocke.hadoop.hdfs.DFSClicct.iiiitC?....?)

ator£.apochc.hadoop.hd£s.DFSC]:cut・<initQ-i….,J

atore.a^achc.hacoop.hdfs.dxztrxbvtocFxlcSyztoa.............--.:)

atorc.apache,hadoop.tz.FxleSystca.Croat二…工工•一.I,।

出现这个问题的原因,并不是程序的错误,而是用到了hadoop相关的服

务,解决办法是将附和里面的hadoop-common-bin-2.73-x64.zip解压到任意目

录。

<-v个,比{C:)>ProgramFiles>hadoop>

1.lesson名称

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论