连接hdfs异常protocol message end-group tag did not match expected tag

在本地调试连接hdfs进行写文件操作,连接异常。
java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.; Host Details : local host is: “Gore-PC/10.108.66.211”; destination host is: “10.108.66.81”:9000;

Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.

public static void main(String[] args) throws IOException {
                System.setProperty("hadoop.home.dir", "d:/hadoop-common-2.2.0-bin/");
                // 将本地文件上传到hdfs。
                String target = "hdfs://10.94.1.104:9000/home/history/sample.csv";
                FileInputStream fis = new FileInputStream(new File("D:\\home\\table.csv"));// 读取本地文件
                Configuration config = new Configuration();
                FileSystem fs = FileSystem.get(URI.create(target), config);
         
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Java Spark中,你可以通过以下步骤从HDFS连接HDFS并读取文件: 1. 首先,你需要导入必要的Spark和Hadoop依赖项。确保你的项目中包含了以下依赖项: ```xml <dependencies> <!-- Spark dependencies --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.4.7</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.4.7</version> </dependency> <!-- Hadoop dependencies --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.3.0</version> </dependency> </dependencies> ``` 2. 创建一个`SparkSession`对象,并设置相关的Hadoop配置。你可以使用`set`方法来设置以下配置: ```java import org.apache.spark.sql.SparkSession; SparkSession spark = SparkSession.builder() .appName("Read from HDFS") .master("local") // 设置为本地模式,你也可以根据实际情况设置为集群模式 .config("spark.hadoop.fs.defaultFS", "hdfs://localhost:9000") // 设置HDFS的默认文件系统 .getOrCreate(); ``` 3. 使用`spark.read()`方法读取HDFS文件。你需要传递文件路径作为参数,并且可以通过链式调用其他方法来进一步处理数据,例如`csv()`、`json()`等。 ```java import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Row; String filePath = "hdfs://localhost:9000/path/to/file"; Dataset<Row> data = spark.read().csv(filePath); ``` 4. 对数据进行操作和处理。你可以使用Spark的DataFrame API或Spark SQL来操作读取的数据。 5. 最后,记得关闭SparkSession以释放资源: ```java spark.close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值