1
我有7個datanodes和1個namenode。我們的每個節點都有32 Gb的內存和20個內核。因此,我將容器內存設置爲30 Gb,將容器虛擬CPU內核設置爲18.爲什麼只有很少的節點在apache的紗線上工作?
但是,只有三個datanode可以工作,其餘datanode不能工作。
下面的代碼是我的設置。
/opt/spark/bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-memory 4g \
--driver-cores 18 \
--executor-memory 8g \
--executor-cores 18 \
--num-executors 7 \
Java代碼
SQLContext sqlc = new SQLContext(spark);
Dataset<Row> df = sqlc.read()
.format("com.databricks.spark.csv")
.option("inferSchema", "true")
.load(traFile);
df.repartition(PartitionSize); //PartitionSize = 7
df.persist(StorageLevel.MEMORY_ONLY());
這是我的數據信息:
,我嘗試下面的命令
sudo -u hdfs hdfs balancer
然而,
在HDFS中有這種叫做「數據局部性」的東西... –
哦,沒錯。謝謝。 – Navieclipse
但我解決了「數據局部性」的問題,但只有三個datanode工作 – Navieclipse