Hdfs環境搭建
- 下載最新版本的Hadoop編譯好的tar包:http://hadoop.apache.org/releases.html
- 確認HDFS namenode和datanode的角色,並將namenode以及datanode的ip機器名對應關係寫進每臺機器的/etc/hosts文件。
-
確認namenode可以不需要密碼就一個通過ssh聯通datanode結點。
執行如下命令 (1) ssh-keygen -t rsa "" //生成sshkey (2) 將 ~/.ssh/id_rsa.pub 公鑰文件的內容拷貝到每臺datanode機器的 ~/.ssh/authorized_keys文件中。 (3) 測試從namenode 到 datanode的連接,現在應該是通的了。
-
配置hadoop的配置文件。
(1) 在環境變量中配置HADOOP_HOME、JAVA_HOME、HADOOP_CONF_DIR,其中 HADOOP_CONF_DIR指向 $HADOOP_HOME/etc/hadoop (2) 修改 HADOOP_CONF_DIR 目錄下的幾個*.site.xml文件,參考官網:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html (3) 將配置好後的hadoop包分發到每個namenode和datanode結點,並相應的配置環境變量。 (4) 剩下的在namenode結點按照官網來啓動 sbin/目錄下的那些shell,參考上面的官網鏈接。 (5) 此時去每臺機器用JPS命令看下,結點進程應該都起來了。 (6) 訪問 namenode的50070端口,應該能看到相應的結點信息。
Spark環境搭建
Spark以Standalone的方式啓動,文件系統可以依賴上面搭建的HDFS文件系統。Spark Standalone搭建啓動方式如下:
(1) 從官網:http://spark.apache.org/ 下載最新版本的spark 編譯好的 tar包。
(2) 解壓後參考官網配置:http://spark.apache.org/docs/latest/spark-standalone.html
(3) 注意master結點和worker結點的spark安裝包要在同一個linux文件系統路徑下。
(4) 在master結點的 conf/slaves 文件中,將work結點的ip地址填寫好,每行一個。
(5) 分別執行sbin/start-master.sh 和 sbin/start-slaves文件。
(6) 此時可以看到master結點啓動了一個master進程,worker結點啓動了slave進程。
注意點
通過如下命令提交spark任務時,注意jar包如果是本地文件(即:還沒有put到hdfs文件系統中,file:/xxxx.jar 本地文件訪問協議),則需要這個jar包在每個結點都存在,並且是完全相同的路徑。如果是已經put到了hdfs文件系統中,則指定hdfs文件系統的路徑就可以了例如:hdfs://xxxx.jar
./bin/spark-submit \
--class <main-class>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]