Spark的环境搭建以及简单的eclipse的两种运行方式--standalone和yarn

来源:互联网 发布:灵鸾妮妮淘宝店 编辑:程序博客网 时间:2024/04/28 17:06

前言:会一些linux的基础,以及java基础。以及是先搭建好java环境,搭建环境是单机版。假定ip:192.168.248.133
步入正轨,我们直接来说说怎么搭建一个基于hadoop的spark环境。目的能够让spark将job提交到hadoop上处理。利用hadoop的分布式框架。

第一步:搭建hadoop的单机环境

1.在/etc/hostname 下修改对应的名字。 比如Master
2.修改etc/hosts 修改成192.168.248.133Master
3.首先在ubuntu上配置ssh免密码。
a.安装ssh : apt-get install ssh openssh-server
b.cd ~/.ssh(如果显示文件不存在。先输入ssh localhost命令)
c.ssh-keygen -t rsa (一直按回车)
d. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys (将生成的公钥添加到ssh中)
e.尝试使用ssh localhost 进入 exit退出
4.下载hadoop2.6.0,并完成相应的配置
a.下载hadoop:wget http://apache.fayea.com/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz
b.解压到安装目录下 tar -zxvf hadoop-2.6.0.tar.gz
c.我是解压到 /home下的目录.然后进入到hadoop的目录下。
cd /opt/hadoop-2.6.0
就能看到hadoop的目录结构了。

5.修改配置文件 进入到hadoop目录下的etc/hadoop目录修改里面的配置文件

    a.编辑 core-site.xml 

<configuration>
      <property>
  <name>hadoop.tmp.dir</name>
              <value>/usr/share/hadoop/tmp</value>
         </property>
          <property>
                <name>fs.defaultFS</name>
               <value>hdfs://192.168.248.133:9000</value>
         </property>
</configuration>
 

b.编辑   hdfs-site.xml

<configuration>                <property>                                    <name>dfs.namenode.secondary.http-address</name>                                   <value>192.168.248.133:50090</value>                        </property>                 <property>                                    <name>dfs.replication</name>                            <value>1</value>                        </property>                        <property>                                    <name>dfs.namenode.name.dir</name>                                    <value>/usr/share/hadoop/tmp/dfs/name</value>                        </property>                        <property>                                <name>dfs.datanode.data.dir</name>                                <value>/usr/share/hadoop/tmp/dfs/data</value>                        </property>               <property>        <name>dfs.permissions</name>        <value>false</value>              </property>             </configuration>


    c.编辑yarn-site.xm
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property>                <name>yarn.nodemanager.aux-services</name>                <value>mapreduce_shuffle</value>        </property></configuration>


    d.编辑 slave  (有几个节点就添加几个节点,如果是配置单机版,就将里面的节点名改为主节点Master的节点名)


启动hadoop
准备:切换 Hadoop 的模式,不管是从集群切换到伪分布式,还是从伪分布式切换到集群,如果遇到无法正常启动的情况,可以删除所涉及节点的临时文件夹,这样虽然之前的数据会被删掉,但能保证集群正确启动。或者可以为集群模式和伪分布式模式设置不同的临时文件夹(未验证)。所以如果集群以前能启动,但后来启动不了,特别是 DataNode 无法启动,不妨试着删除所有节点(包括 Slave 节点)上的 tmp 文件夹,重新执行一次 bin/hdfs namenode -format,再次启动试试。
6.启动hadoop
a.cd /opt/hadoop-2.6.0
b.bin/hdfs namenode -format # 首次运行需要执行初始化,后面不再需要
format
sbin/start-all.sh
c.通过命令jps可以查看各个节点所启动的进程(我这个是事先搭建好了spark,没有搭建spark的就没有6个进程,没有master和worker进程)
qq%e6%88%aa%e5%9b%be20160923154744
6.节点都启动好了之后,打开她的监控页面 Master:8088
qq%e6%88%aa%e5%9b%be20160923160430
可以看到一个活跃的节点。到此hadoop环境已经搭建完成。需要优化可以在配置文件里添加一些优化信息。比如说日志的配置等等

第二步:搭建spark的单机环境
1.下载spark1.6.0.虽然现在spark2.0已经出来了,但是使用的不是太多。我们还是使用1.6.0的版本
a.wget http://d3kbcqa49mib13.cloudfront.net/spark-1.6.1-bin-hadoop2.6.tgz

我们选择预编译好的spark1.6.1的版本。也可自行编译。
qq%e6%88%aa%e5%9b%be20160923160953
2.同上hadoop。我们将其解压到安装目录下
tar -zxvf spark-1.6.1-bin-hadoop2.6.tgz
改个名字吧,这个文件夹名字有点长。 mv spark-1.6.1-bin-hadoop2.6 spark1.6
3.修改配置文件
a.将spark1.6里面的conf文件夹里面的模板文件全部替换成使用的文件。比如说 mv spark-env.sh.tmp spark-env.sh
在spark-env.sh中添加

export JAVA_HOME=export HADOOP_HOME=export SPARK_MASTER_IP=Master#export SPARK_MASTER_HOSTS=192.168.244.133export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport SCALA_HOME=/opt/scala-2.11.8export SPARK_YARN_USER_ENV="CLASSPATH=/opt/hadoop-2.6.0/etc/hadoop"export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.6.0/bin/hadoop classpath)export SPARK_WORKER_MEMORY=2g


b.修改slave文件。将localhost换成Master
4.安装scala
a.下载scala wget http://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
b.将scala解压到安装目录 tar -zxvf scala-2.11.8.tgz
c.将scala的路径配置到环境变量里。
在/etc/profile中添加
export SCALA_HOME=/opt/scala-2.11.8
export PATH=$SCALA_HOME/bin:$PATH
5.到此spark的单机版搭建完成。启动spark。
a.在spark安装目录下输入sbin/start-all.sh
b.jps输入我们就能看见worker和master节点了。
6.打开她的监控页面 Master:8080就能看见spark的监控页面

qq%e6%88%aa%e5%9b%be20160923163510
到这一步就代表spark已经搭建完成了。现在已经可以在spark上跑代码啦。

第三步:将eclipse作为开发环境
a.将hadoop-eclipse-plugin-2.6.0.jar放到eclipse里面的plugin文件夹目录下。
b. 启动eclipse。在eclipse中的window的preferences的Hadoop Map/Reduce下添加hadoop的路径。
dsdf
c.创建一个hadoop的location
www

ss

第四步:创建工程
1.创建一个简单的java工程。
a.在工程里面创建三个目录,分别是conf,lib,yarn
b.将spark目录下的conf下的所有配置文件放入到conf里面,将spark里面的lib下的spark-assembly-1.6.1-hadoop2.6.0.jar放入到lib,将hadoop下的etc下的hadoop里面core-site.xml hdfs-site.xml yarn-site.xml放到yarn文件夹里面。
qq%e6%88%aa%e5%9b%be20160923165415
2.基于spark的standslone模式
a.创建一个stanalone类
直接上代码:

public class stanalone{private static final Pattern SPACE = Pattern.compile(" ");public static void main(String[] args) {//创建sparkConfSparkConf conf = new SparkConf().setAppName("standaloneTest").setMaster("spark://master:7077");JavaSparkContext sc = new JavaSparkContext(conf);JavaRDD rdd= Arrays.asList(1,2.2,5);JavaRDD dis =sc.parallelize(rdd);System.out.println("array num = "+dis.count());//控制台打印出array的个数 4sc.stop();


qq%e6%88%aa%e5%9b%be20160923170204

qq%e6%88%aa%e5%9b%be20160923170320

到此我们看见我们已经成功的在spark上运行了一个简单的计数。
2.基于spark的yarn模式
a.创建一个stanalone类
直接上代码:

public class stanalone{private static final Pattern SPACE = Pattern.compile(" ");public static void main(String[] args) {//创建sparkConfSparkConf conf = new SparkConf().setAppName("yarn").setMaster("yarn-client");//根据官网上面的提示conf.set("spark.yarn.dist.files","/conf/yarn-site.xml");conf.set("spark.yarn.jar","/lib/spark-assembly-1.6.1-hadoop2.6.0.jar");JavaSparkContext sc = new JavaSparkContext(conf);//将工程打包成jar test.jarsc.addJar("test.jar");JavaRDD rdd= Arrays.asList(1,2.2,5);JavaRDD dis =sc.parallelize(rdd);System.out.println("array num = "+dis.count());//控制台打印出array的个数 4sc.stop();

qq%e6%88%aa%e5%9b%be20160923171138

qq%e6%88%aa%e5%9b%be20160923170204

到此我们看见我们已经成功的在hadoop上运行了一个简单的计数。
整个过程到此结束。




0 0
原创粉丝点击