hadoop+spark集群搭建

hadoop+spark集群搭建

 

本次实验环境:两台hadoop+两台spark组成集群

 

环境准备:

        1. 两个主机实现ssh无密钥认证,包括本机与本机的免密钥认证:

                ssh-keygren :生成一对密钥

                ssh-copy-id : 把公钥发给对方服务器

         2. 集群间需实现时间同步:

                 ntpdate

         3. 配置主机名:              

                 192.168.133.128 master
                 192.168.133.129 node

         4. 下载hadoop-spark压缩包,解压,尽量两台服务器的hadoop-spark安装路径是一致的

   

         5. 配置安装JAVA环境并配置JAVA和hadoop环境变量:

export JAVA_HOME=/usr/java/jdk1.8.0_51/

export HADOOP_HOME=/opt/hadoop-spark/hadoop/hadoop-2.9.1

PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

安装hdoop集群:

 

    在master主机上配置:

        cd $HADOOP_HOME/etc/hadoop/

        vi core-site.xml

<configuration>

<!--配置HDFS的NameNode-->

            <property>

              <name>fs.defaultFS</name>

              <value>hdfs://master:9000</value>

            </property>

 

            <!--配置DataNode保存数据的位置-->

            <property>

              <name>hadoop.tmp.dir</name>

              <value>/opt/hadoop-spark/hadoop/hadoop-2.9.1/tmp</value>

            </property>

</configuration>

       

         vi hdfs-site.xml

<configuration>

<!--配置HDFS的冗余度-->

    <property>

        <name>dfs.replication</name>

    <value>1</value>

    </property>

<!--配置是否检查权限-->

    <property>

    <name>dfs.permissions</name>

    <value>false</value>

    </property>

<!--配置namenode存储路径-->

    <property>

    <name>dfs.namenode.name.dir</name>

    <value>file:///data/cluster_hadoop/hdfs/nn</value>

    </property>

<!--配置datanode存储路径-->

    <property>

    <name>dfs.datanode.data.dir</name>

    <value>file:///data/cluster_hadoop/hdfs/dn</value>

    </property>

<!--配置second namenode的映像存储路径-->

    <property>

    <name>fs.checkpoint.dir</name>

    <value>file:///data/cluster_hadoop/hdfs/snn</value>

    </property>

<!--配置second namenode合并元数据时的临时编辑存储路径-->

    <property>

    <name>fs.checkpoint.edits.dir</name>

    <value>file:///data/cluster_hadoop/hdfs/snn</value>

    </property>

 

</configuration>

如果namenode,second namenode, datanode没有设置存储路径,则默认存储到$(hadoop.tmp.dir)路径下

   

          vi yarn-site.xml:

<configuration>

<!--配置resourcemanager监听地址及端口-->

    <property>

        <name>yarn.resourcemanager.address</name>

        <value>master:8032</value>

    </property>

<!--配置resourcemanager的调度器监听地址及端口,默认0.0.0.0:8030-->

    <property>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value>master:8030</value>

    </property>

    <property>

<!--NodeManager通过该地址向RM汇报心跳,领取任务等,默认0.0.0.0:8031-->

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>master:8031</value>

    </property>

<!--管理员的访问ResourceManager的地址端口,默认0.0.0.0:8033-->

    <property>

        <name>yarn.resourcemanager.admin.address</name>

        <value>master:8033</value>

    </property>

<!--配置resourcemanagerweb接口地址及端口,默认0.0.0.0:8088-->

    <property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>master:8088</value>

    </property>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <property>

        <name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>

        <value>org.apache.hadoop.mapred.ShuffleHandler</value>

    </property>

    <property>

        <name>yarn.resourcemanager.scheduler.class</name>

        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>

    </property>

</configuration>

           注意:yarn-site.xml里面的配置指明的是master的地址,没有解析域名的可以用IP

 

vi mapred-site.xml

<configuration>

<!--配置MR运行的框架-->

        <property>

                <name>mapreduce.framework.name</name>

                <value>yarn</value>

        </property>

</configuration>

此文件默认没有,但是在该目录下有个模板文件为mapred-site.xml.template,可以复制一份为mapred-site.xml

     

      vi slaves

master

node

        此配置文件用来指明数据节点的,本次使用master服务器既是master节点也是node节点

 

        新建hadoop存储路径:

        mkdir -p /data/cluster_hadoop/hdfs/nn

        mkdir -p /data/cluster_hadoop/hdfs/snn

        mkdir -p /data/cluster_hadoop/hdfs/dn

 

    配置slave节点:

        slave节点的配置与master节点的配置相同,只是启动的服务不同,把以上编辑的文件拷贝到slave节点相同的位置就可以了

        配置存储路径:

        mkdir -p /data/cluster_hadoop/hdfs/nn

        mkdir -p /data/cluster_hadoop/hdfs/snn

        mkdir -p /data/cluster_hadoop/hdfs/dn

 

格式化hdfs:

        hdfs namenode -format

         其输出结果会有大量的信息,如显示类似'INFO commmon.Storage:Storage dirctory /PATH/TO/NN has been successfully formatted'的结果表示格式化操作已经完成

启动Hadoop进程:

        (1)分别启动,分别手动启动master的服务以及slave服务;

          主要用到两个脚本:hadoop-daemon.sh和yarn-daemons.sh。

        (2)master自动启动自身的服务以及slave的服务(需要配置master与slave能进行免密钥认证)

         这里用第二种方法:

          ./sbin/start-dfs.sh

          ./sbin/start-yarn.sh

master会启动进程:

[root@accur sbin]# jps

23137 ResourceManager

17224 DataNode

23753 NodeManager

20942 NameNode

17518 SecondaryNameNode

slave会启动进程:

[root@accur sbin]# jps

7089 DataNode

9999 NodeManager

hadoop相关web接口:

http://master:50070/

http://master:8088/  #8088端口冲突了会自动+1,或者编辑start-master.sh修改端口

 

spark集群安装:

         在两台机器上spark环境变量:

                 vi conf/spark-env.sh                 

                          export SPARK_DIST_CLASSPATH=$(/opt/hadoop-spark/hadoop/hadoop-2.9.1/bin/hadoop classpath)
                          export JAVA_HOME=/usr/java/jdk1.8.0_51/
                          export SPARK_MASTER_HOST=master
                          export SPARK_MASTER_IP=master
                          export SPARK_MASTER_PORT=7077
                          export MASTER=spark://master:7077

          

       配置worker节点:

              vi conf/slaves:

                       master  #此时master也作为slaves节点

                       node

 

       运行master节点:

            ./sbin/start-master.sh

         

       运行worker节点

            ./sbin/start-slave.sh spark://master:7077

 

      测试worker节点能否与master通信:

             /bin/spark-shell --master  spark://master:7077

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/hel7512/p/12350583.html