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]