Hadoop 使用pyspark从hdfs读取文件时连接被拒绝
我安装了hadoop 2.7,在core-site.xml和hdfs-site.xml中设置路径和配置,如下所示: 核心站点.xmlHadoop 使用pyspark从hdfs读取文件时连接被拒绝,hadoop,apache-spark,hdfs,pyspark,Hadoop,Apache Spark,Hdfs,Pyspark,我安装了hadoop 2.7,在core-site.xml和hdfs-site.xml中设置路径和配置,如下所示: 核心站点.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://<ip_addr>:9000/</value> </property> <property&g
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://<ip_addr>:9000/</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/kavya/hdfs/data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/kavya/hdfs/name</value>
</property>
</configuration>
这是我在pyspark中的代码的一部分,用于从hdfs读取文件,然后提取字段:
file = sc.textFile("hdfs://<ip_addr>/usr/local/hadoop/TestLogs/traffic_log.log")
result = file.filter(lambda x: len(x)>0)
result = result.map(lambda x: x.split("\n"))
print(result) # PythonRDD[2] at RDD at PythonRDD.scala
lines = result.map(func1).collect() #this is where I get the connection refused error.
print(lines)
file=sc.textFile(“hdfs:///usr/local/hadoop/TestLogs/traffic_log.log")
结果=file.filter(λx:len(x)>0)
result=result.map(λx:x.split(“\n”))
在PythonRDD.scala的RDD处打印(结果)#PythonRDD[2]
lines=result.map(func1.collect()#这就是我得到连接被拒绝错误的地方。
打印(行)
func1
是一个包含正则表达式的函数,用于从我的日志中提取字段。然后将结果返回到行
。当直接从vm读取文本文件时,这个程序工作得非常好
Spark版本:Spark-2.0.2-bin-hadoop2.7VM:CentOS
如何解决此错误?我遗漏了什么吗?需要设置两件事: 1) 在hdfs-site.xml中,确保已禁用权限:
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
<property>
dfs.permissions.enabled
假的
2) 在core-site.xml中,将您的IP地址设置为主机的IP地址:
<property>
<name>fs.defaultFS</name>
<value>hdfs://<MASTER IP ADDRESS>:8020</value>
<property>
fs.defaultFS
hdfs://:8020
看起来您已经在linux机器上安装了hadoop。两件事。您是否正确地实现了ssh?您是否格式化了namenode并启动了所有服务?是的,ssh工作正常。我格式化了namenode并使用start dfs.sh
启动了服务。但仍然获取连接拒绝错误。
file = sc.textFile("hdfs://<ip_addr>/usr/local/hadoop/TestLogs/traffic_log.log")
result = file.filter(lambda x: len(x)>0)
result = result.map(lambda x: x.split("\n"))
print(result) # PythonRDD[2] at RDD at PythonRDD.scala
lines = result.map(func1).collect() #this is where I get the connection refused error.
print(lines)
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
<property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://<MASTER IP ADDRESS>:8020</value>
<property>