小编Adr*_*Lee的帖子

非DFS使用的含义是什么?

这是我最近在Web UI上看到的

 Configured Capacity     :   232.5 GB
 DFS Used    :   112.44 GB
 Non DFS Used    :   119.46 GB
 DFS Remaining   :   613.88 MB
 DFS Used%   :   48.36 %
 DFS Remaining%  :   0.26 %
Run Code Online (Sandbox Code Playgroud)

而且我很困惑,非dfs Used占用了一半以上的容量,

我认为这意味着hadoop存储的一半被浪费了

在花费无意义的时间搜索之后,我只是格式化了namenode,并从头开始.

然后我从本地复制了一个巨大的文本文件(大约19千兆字节)到HDFS(成功).

现在用户界面说

Configured Capacity  :   232.5 GB
DFS Used     :   38.52 GB
Non DFS Used     :   45.35 GB
DFS Remaining    :   148.62 GB
DFS Used%    :   16.57 %
DFS Remaining%   :   63.92 %
Run Code Online (Sandbox Code Playgroud)

在复制之前,DFS Used和Non DFS Used都是0.

因为DFS Used大约是原始文本文件大小的两倍,我配置了2个副本,

我猜DFS Used由2份原始和元组成.

但是我仍然不知道非DFS使用的来源是什么,为什么这比DFS使用的占用了更多的容量.

发生了什么事?我弄错了吗?

hadoop hdfs

22
推荐指数
2
解决办法
2万
查看次数

如何在react-native中禁用默认启动画面?

有没有办法禁用默认的启动画面,让我们的应用程序首先加载主页面?

react-native

15
推荐指数
1
解决办法
1万
查看次数

将原始地图转换为Map <Object,Object>,会有任何问题吗?

我需要将raw转换MapMap<string,string>,我想我必须首先将原始地图转换为Map<Object,Object>然后再将其转换为Map<String,String>.

代码片段如下所示.

    Map obj1 = new HashMap();
    obj1.put("key1", 1);
    obj1.put("key2", false);
    obj1.put("key3", 3.94f);


    Map<Object, Object> obj2 = obj1;

    Map<String, String> obj = new HashMap<String,String>();

    for (Map.Entry<Object, Object> entry: obj2.entrySet()) {
        obj.put(entry.getKey().toString(), entry.getValue().toString());
    }
Run Code Online (Sandbox Code Playgroud)

我想它可以在任何条件下工作,但我想听听其他人关于此代码可能存在的危险.(ClassCastException例如,任何可能性?)

如果您有更好的想法,也请告诉我.

- 修改后的代码

    Map obj1 = new HashMap();
    obj1.put(2, 1);
    obj1.put(true, false);
    obj1.put(4.4f, 3.94f);

    Map<String, String> obj = new HashMap<String,String>();
    for (Object k : obj1.keySet()){
        obj.put(k.toString(), obj1.get(k).toString());
    }
Run Code Online (Sandbox Code Playgroud)

由于原始Map条目将包含对象的键/值,我认为我不需要临时Map<Object,Object>.只是迭代每个项目效果很好,到目前为止我没有看到任何问题.

java

6
推荐指数
1
解决办法
409
查看次数

停止处理特定螺栓中的元组

我有一个拓扑结构,例如由1个喷口和4个螺栓组成

spout A -> bolt B -> bolt C -> bolt E
                  -> bolt D
Run Code Online (Sandbox Code Playgroud)

只有当螺栓B中的某些条件语句为真时,它才会将元组传递给螺栓C和螺栓D.

并且只有当螺栓C中的某些条件语句为真时,它才会将元组传递给螺栓E.

因此单个元组可能只到达螺栓B或(螺栓C和D).

我正在使用BaseBasicBolt,据我所知,它会在调用collector.emit后自动执行.

例如,螺栓B中的执行方法如下所示

public class boltB extends BaseBasicBolt {
    public void execute(Tuple tuple, BasicOutputCollector collector) {
        ...some logic goes here
        if (response.getCount() > 0) {
            collector.emit(new Values(tuple.getString(0)));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果没有调用collector.emit,我认为spout中的元组失败了,因为我从风暴ui看到几乎所有来自spout的元组都失败了.

在这种情况下,我应该在哪里调用'ack'来表示spout不要将其视为失败的元组?

apache-storm

5
推荐指数
1
解决办法
2733
查看次数

Storm-kafka 0.8 plus,我可以从最新的偏移中读取吗?

我有一个Kafka喷口的拓扑结构,如下所示

SpoutConfig spoutConfig = new SpoutConfig(zkBrokerHosts, "some-topic","", "some-id");
spoutConfig.scheme = new SchemeAsMultiScheme(new StringScheme());
...

builder.setSpout("kafkaSpout",new KafkaSpout(spoutConfig),1);
Run Code Online (Sandbox Code Playgroud)

当然它工作正常.

考虑到我的拓扑失败并再次运行它的情况,我希望KafkaSpout从该主题的最新偏移读取而不是消费者已阅读的最后偏移.

有什么选择吗?我试过了

spoutConfig.startOffsetTime=System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)

但似乎它不能按我的意愿工作.并且都没有kafkaConfig.forceStartOffsetTime(-2);

如果您有任何想法,请告诉我.

apache-storm

3
推荐指数
1
解决办法
2588
查看次数

标签 统计

apache-storm ×2

hadoop ×1

hdfs ×1

java ×1

react-native ×1