Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 使用pyspark从hdfs读取文件时连接被拒绝_Hadoop_Apache Spark_Hdfs_Pyspark - Fatal编程技术网

Hadoop 使用pyspark从hdfs读取文件时连接被拒绝

Hadoop 使用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

我安装了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>
    <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.7
VM: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>