gpt4 book ai didi

java - 使用 spring xd 在 Hadoop 中加载数据

转载 作者:可可西里 更新时间:2023-11-01 15:15:10 25 4
gpt4 key购买 nike

我正在尝试在 HTTP 源和 HDFS 接收器之间创建一个流。我的 springXD 和 HDFS 安装在不同的机器上**,但我能够成功触发 hadoop fs ls/ 命令。

创建和部署流后,当我使用以下方式发布数据时:

http post --target http://{ipaddressofhdfsmachine:8020} -- data"hello"

它抛出错误:

failed to send data to http end point http://{ipaddressofhdfsmachine:8020}

当我使用带有端口 9000 的 localhost 时,它成功完成但没有显示在 hdfs 中。

是否必须在同一台机器上安装 hdfs 和 spring 才能创建流?

最佳答案

要知道哪里出了问题有点困难,但我会尝试做出有根据的猜测。我不知道您是在运行 XD 单节点还是分布式模式,是否更改了默认配置以及如何创建流。引用文档可以从Spring XD找到

我的设置是在我的主操作系统(本地主机)上运行 XD,在我的虚拟机(节点 1)上运行 HDFS。

因为默认的 hdfs 名称节点地址被假定为 hdfs://localhost:8020,所以需要更改它。为此,请使用 servers.yml 文件并更改 fsUri(注意此 yaml 文件格式中的空格)。

config/servers.yml:

# Hadoop properties
spring:
hadoop:
fsUri: hdfs://node1:8020

我启动XD单节点:

./xd-singlenode

然后运行流命令,写一些东西并检查写了什么:

xd:>hadoop config fs --namenode hdfs://node1:8020

xd:>hadoop fs ls --recursive true --dir /xd
lsr: `/xd': No such file or directory

xd:>stream create --name test --definition "http|hdfs" --deploy
Created and deployed new stream 'test'

xd:>http post --data "hello" http://localhost:9000
> POST (text/plain;Charset=UTF-8) http://localhost:9000 hello
> 200 OK

xd:>hadoop fs ls --recursive true --dir /xd
drwxr-xr-x - jvalkealahti supergroup 0 2014-07-14 21:33 /xd/test
-rw-r--r-- 3 jvalkealahti supergroup 0 2014-07-14 21:33 /xd/test/test-0.txt.tmp

xd:>stream destroy --name test
Destroyed stream 'test'

xd:>hadoop fs ls --recursive true --dir /xd
drwxr-xr-x - jvalkealahti supergroup 0 2014-07-14 21:33 /xd/test
-rw-r--r-- 3 jvalkealahti supergroup 6 2014-07-14 21:33 /xd/test/test-0.txt

xd:>hadoop fs cat --path /xd/test/test-0.txt
hello

关于java - 使用 spring xd 在 Hadoop 中加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24737887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com