我設置了兩個虛擬機在分佈式設置中測試Spark。看來我的作業只能在一個節點上本地運行,這是我用來提交作業的一個節點。Spark不分配工作
一個節點作爲datanode/worker節點運行,第二個節點另外還有namenode/secondary-namenode 我配置了底層hadoop以使用Yarn。 jps
命令確認各種服務在我預計在hadoop/spark中啓動* -script後正確啓動並基本可用。
我使用htop來「跟蹤」如果使用其他節點,但CPU使用率在2%-3%之間跳轉 - >可能不使用。我想知道我在這裏錯過了什麼。
我開始我的工作,用這個命令: ./spark-submit --class COM .... DistributedTest --master紗客戶myJar.jar
這是我執行類(數據.txt文件是關於1GB純文本)
public class DistributedTest
{
public static void main(String[] args)
throws IOException
{
SparkConf conf = new SparkConf().setAppName("Simple Application");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> logData = sc.textFile("hdfs://woodpecker:10001/husr/data.txt");// .persist(StorageLevel.DISK_ONLY());
long numAs = logData.filter(new Function<String, Boolean>()
{
public Boolean call(String s)
{
return s.contains("a");
}
}).count();
long numBs = logData.filter(new Function<String, Boolean>()
{
public Boolean call(String s)
{
return s.contains("b");
}
}).count();
sc.close();
String s = "Lines with a: " + numAs + ", lines with b: " + numBs;
System.out.println(s);
}
}
任何人任何想法,爲什麼我的設置不分發
你確定你的機器都在同一個火花簇上? – eliasah
我該如何確認?我假設兩個節點都知道對方,因爲啓動start-all腳本也會啓動節點及其所有服務?他們怎麼可能不在同一個集羣? – toobee
你看到兩個工人在同一個貴? – eliasah