AAS代码运行-第11章-2

hdfs dfs -ls /user/littlesuccess/AdvancedAnalysisWithSparkhdfs dfs -mkdir /user/littlesuccess/AdvancedAnalysisWithSpark/ch11hdfs dfs -put fish.py /user/littlesuccess/AdvancedAnalysisWithSpark/ch11

做好上述准备工作之后,就可以运行pyspark代码了:

raw_data = sc.textFile(‘hdfs://172.31.25.243:8020/user/littlesuccess/AdvancedAnalysisWithSpark/ch11/fish.py‘)data = (raw_data.filter(lambda x: x.startswith("#")).map(lambda x: map(float, x.split(‘,‘)))) data.take(5)

运行过程中发现了一个错误:

>>> data.take(5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5/lib/spark/python/pyspark/rdd.py", line 1081, in take
    totalParts = self._jrdd.partitions().size()
  File "/opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py", line 538, in __call__
  File "/opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5/lib/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o31.partitions.
: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category READ is not supported in state standby
    at org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:87)
    at org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.checkOperation(NameNode.java:1713)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkOperation(FSNamesystem.java:1322)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:3974)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfo(NameNodeRpcServer.java:813)
    at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.getFileInfo(AuthorizationProviderProxyClientProtocol.java:502)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:815)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:587)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1026)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013)
    

发现原因在于我的集群设置了NameNode HA,而我的脚本中的hdfs用的是StandBy NameNode的地址,这个问题就解决了。

重新运行命令,又发现如下错误:

时间: 2024-10-10 20:58:51

AAS代码运行-第11章-2的相关文章

AAS代码运行-第11章-1

启动PySpark export IPYTHON=1 # PySpark也可使用IPython shell pyspark --master yarn --num-executors 3 发生如下错误: /opt/cloudera/parcels/CDH-5.3.3-1.cdh5.3.3.p0.5/bin/../lib/spark/bin/pyspark: line 135: exec: ipython: not found 原因是没有按照ipython,在google所有一下安装的方法,到网站

AAS代码运行-第4章

[[email protected] aas]# ls ch02 ch03 spark-1.2.1-bin-hadoop2.4 spark-1.2.1-bin-hadoop2.4.tgz [[email protected] aas]# cd spark-1.2.1-bin-hadoop2.4 [[email protected] spark-1.2.1-bin-hadoop2.4]# cd .. [[email protected] aas]# mkdir ch04 [[email prote

《代码大全》第11章 阅读笔记

记得这次与core组对接,为了一个命名为suanshi的文件笑了好久,其实我们自己在命名过程中也比较随意,虽然早过了大一那会用abc命名的年纪,但命名往往还是有点随心所欲,大小写,下划线,有的时候第二次用就多加一个字母或者少写一个字母,总之很混乱,有的时候再读自己的代码时想变量名代表什么都要想好久,所以一个好的命名规范对编程而言很重要. 本书的第11章恰是对初学者命名规范进行了一个较为详细的介绍,感悟如下: 1.当涉及到多人共同编程或一个人的程序要交给另一个人阅读的时候,应该制定一套较为统一的命

第11章 Windows线程池(1)_传统的Windows线程池

第11章 Windows线程池 11.1 传统的Windows线程池及API 11.1.1 传统的线程池对象及对应的API 线程池对象 API 普通任务线程池 QueueUserWorkItem 计时器线程池 CreateTimerQueue(创建线程池) CreateTimerQueueTimer(创建计时器) ChangeTimerQueueTimer DeleteTimerQueueTimer DeteTimerQueueEx 同步对象等待线程池 RegisterWaitForSingle

第11章 享元模式(Flyweight Pattern)

原文 第11章 享元模式(Flyweight Pattern) 概述:   面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题.但是在某些情况下,对象的数量可能会太多,从而导致了运行时的代价.那么我们如何去避免大量细粒度的对象,同时又不影响客户程序使用面向对象的方式进行操作?享元模式j就可以让我们更好的复用我们内存中已存在的对象,降低系统创建对象实例的性能消耗 运用共享技术有效地支持大量细粒度的对象.[GOF <设计模式>] 结构图:   举例: 为了方便说清享元模式的核心,我

第11章 进程与多线程

Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程.比如在Windows系统中,一个运行的exe就是一个进程. 线程是指进程中的一个执行流程,一个进程中可以运行多个线程.比如java.exe进程中可以运行很多线程.线程总是属于某个进程,进程中的多个线程共享进程的内存. “同时”执行是人的感觉,在线程之间实际上轮换执行. 二.Jav

第11章 AWT编程

第11章 AWT编程 AWT全称是抽象窗口工具集 GUI 图形用户界面 AWT缺点 1.图形显示丑陋 2.AWT组件这能使用这些操作系统共有的组件 3.AWT非常笨拙,是非面向对象的编程模式 总体上Swing组件代替了大部分AWT组件,对AWT有很好的补充和加强 Swing仅提供了能力更强大的用户界面组件,即使是完成采用Swing编写的组件也依然要使用AWT的事件处理机制 java.awt包中提供了两个基类表示图形界面元素 Component 和MenuComponent 代表一个能以图形化方式

第11章非阻塞I/O

第11章非阻塞I/O 一个实例客户端 在实现新I/O的客户端时,调用静态工厂方法SocketChannel.open()来创建一个新的java.nio.channels.SocketChannel对象.这个方法的参数是一个java.net.SocketAddress对象,指示要连接的主机和端口. 例如:下面的代码段连接指向rama.poly.edu端口19的通道: SocketAddress rama  = new InetSocketAddress("rama.poly.edu",1

第 11 章 桥梁模式【Bridge Pattern】

以下内容出自:<<24种设计模式介绍与6大设计原则>> 今天我要说说我自己,梦想中的我自己,我身价过亿,有两个大公司,一个是房地产公司,一个是服装制造业,这两个公司都很赚钱,天天帮我在累加财富,其实是什么公司我倒是不关心,我关心的是是不是在赚钱,赚了多少,这才是我关心的,我是商人呀,唯利是图是我的本性,偷税漏税是我的方法,欺上瞒下.压榨员工血汗 我是的手段嘛,我先用类图表示一下我这两个公司: 类图很简单,声明了一个Corp 抽象类,定义一个公司的抽象模型,公司首要是赚钱的,不赚钱谁