• 非root环境下搭建spark集群


    非root环境下搭建spark集群

    用3台机器(节点)作为实例来演示如何搭建Spark集群,主机名分别为node1,node2和node3

    配置ssh免密登录

    需要采用ssh让master服务器能够免密登录其他两台服务器。

    生成公私密钥。

    ssh-keygen -t rsa

    修改authorized_keys的权限为600,.ssh文件夹权限为700。

    cat id_rsa.pub>>authorized_keys
    chmod 600 authorized_keys
    chmod 700 /home/hadoop/.ssh #hadoop为用户名
    

    可以使用ssh localhost验证本机是否能够免密登录。

    将主服务器的公钥拷贝到其他两个服务器

    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@XXX.XXX.XXX.XXX #@后面为服务器对应的IP地址
    

    在其他两个服务器上将公钥加入authorized_keys

    cat id_rsa.pub>>authorized_keys
    chmod 600 authorized_keys
    chmod 700 /home/hadoop/.ssh #hadoop为用户名
    

    配置hosts文件

    此步骤需要管理员权限

    vim /etc/hosts
    

    在hosts文件中编译如下内容:

    XXX.XXX.XXX.XXX node1 #XXX.XXX.XXX.XXX为服务器对应的ip地址
    XXX.XXX.XXX.XXX node2
    XXX.XXX.XXX.XXX node3
    

    安装JDK

    手动安装,执行如下shell命令

    mkdir /home/hadoop/java/jvm
    cd Downloads  #JDK安装包jdk-8u162-linux-x64.tar.gz所在位置
    tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /home/hadoop/java/jvm  
    

    修改环境变量

    export JAVA_HOME=/home/hadoop/java/jvm/jdk1.8.0_162
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    

    执行如下命令让.bashrc文件的配置立即生效:

    source ~/.bashrc
    

    使用如下命令查看是否安装成功:

    java -version
    

    安装hadoop

    下载安装包后解压即可,我们选择将Hadoop安装在用户主目录的hadoop文件夹中

    sudo tar -zxf ~/Downloads/hadoop-3.1.3.tar.gz -C ~/hadoop
    cd ~/hadoop
    mv ./hadoop-3.1.3/ ./hadoop           
    chown -R hadoop ./hadoop      
    

    可以输入以下命令检查Hadoop是否可用,可用会显示Hadoop版本信息:

    cd ~/hadoop/hadoop
    ./bin/hadoop version
    

    安装spark

    下载安装包后解压即可,我们选择将Spark安装在用户主目录的Spark文件夹中

    sudo tar -zxf ~/Downloads/spark-2.4.0-bin-without-hadoop.tgz -C ~/spark
    cd ~/spark
    mv ./spark-2.4.0-bin-without-hadoop/ ./spark
    

    修改hadoop配置文件

    有六个文件需要修改,都在/home/hadoop/hadoop/etc/hadoop文件夹下

    hadoop-env.sh

    在文件末尾加入如下内容:

    export JAVA_HOME=/home/hadoop/java/jvm/jdk1.8.0_162
    

    core-site.xml

    该文件中增加如下内容,下面的node1:8020node1对应的就是hosts文件下的node1的ip

    <configuration>
            <property>
                     <name>fs.defaultFS</name>
                     <value>hdfs://node1:8020</value>
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>file:/home/hadoop/hadoop/tmp</value>
            </property>
            <property>
                    <name>io.file.buffer.size</name>
                    <value>131072</value>
            </property>
    </configuration>
    

    hdfs-site.xml

    <configuration>
            <property>
                     <name>dfs.namenode.secondary.http-address</name>
                    <value>node1:50090</value>
            </property>
            <property>
                  <name>dfs.namenode.name.dir</name>
                  <value>file:/home/hadoop/hadoop/dfs/name</value>
            </property>
            <property>
                   <name>dfs.datanode.data.dir</name>
                   <value>file:/home/hadoop/hadoop/dfs/data</value>
            </property>
            <property>
                    <name>dfs.replication</name>
                    <value>2</value>
            </property>
            <property>
                     <name>dfs.blocksize</name>
                     <value>134217728</value>
            </property>
            <property>
                      <name>dfs.webhdfs.enabled</name>
                       <value>true</value>
            </property>
    </configuration>
    

    yarn-site.xml

    <configuration>
            <property>
                     <name>yarn.resourcemanager.hostname</name>
                     <value>node1</value>
            </property>
            <property>
                     <name>yarn.nodemanager.aux-services</name>
                     <value>mapreduce_shuffle</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.scheduler.address</name>
                     <value>node1:8030</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.address</name>
                     <value>node1:8032</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.resource-tracker.address</name>
                     <value>node1:8031</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.admin.address</name>
                     <value>node1:8033</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.webapp.address</name>
                     <value>node1:8088</value>
            </property>
    </configuration>
    

    mapred-site.xml

    <configuration>
            <property>
                     <name>mapreduce.framework.name</name>
                     <value>yarn</value>
            </property>
            <property>
                     <name>mapreduce.jobhistory.address</name>
                     <value>node1:10020</value>
            </property>
            <property>
                     <name>mapreduce.jobhistory.webapp.address</name>
                     <value>node1:19888</value>
            </property>
    </configuration>
    

    works

    在works文件下写入两个子节点的名字,都是在hosts文件中配好了ip。

    1 node2
    2 node3
    

    主服务配置完成,将hadoop文件夹拷贝到其他两个服务器。

    修改spark配置文件

    works

    node1
    node2
    

    spark-env.sh

    export SPARK_DIST_CLASSPATH=$(/home/haddoop/hadoop/hadoop/bin/hadoop classpath)
    export HADOOP_CONF_DIR=/home/haddoop/hadoop/hadoop/etc/hadoop
    export SPARK_MASTER_IP=XXX.XXX.XXX.XXX
    
  • 相关阅读:
    2010年第二批中关村高端领军人才公示公告
    关于代理的TIPS——HTTP权威指南读书心得(九)
    Lua 集成开发环境 Decoda 开源
    boost bind使用指南
    分享:反向代理服务器的工作原理
    javascript权威指南:javascript 变量
    Json简介
    css layout/fluid03: 2 column left navigation
    css layout/fluid01: 1 column no navigation
    Typeahead (autocomplete) suggest 开发
  • 原文地址:https://www.cnblogs.com/wheszza/p/15185317.html
Copyright © 2020-2023  润新知