Spark Hadoop 环境搭建

作者: odirus | 来源:发表于2016-03-29 10:31 被阅读964次

    首先准备一台Linux环境的服务器,建议使用 VMware 或者 virtual box 来虚拟一台服务器,这对于新手来说比较适合,既能随时调整也能随时导出并迁移。

    准备软件:

    1. Java环境, 下载链接,建议选择 1.7 版本
    2. Hadoop环境,下载链接,建议选择 2.6 版本
    3. Spark环境,下载链接,根据Hadoop版本来选择
    4. Scala环境,下载链接,推荐使用 2.11.5 版本
    5. Ubuntu server 镜像,推荐选择14.04(长期支持版本)
    6. 国内网速感人,所以全部所需资料已经放在百度分享里面了,自取链接: 百度云盘,密码: mtnv

    操作步骤

    1. 把Ubuntu镜像安装到虚拟机,完成服务器安装,命名为 server-1。建议增加 /etc/hosts 记录,方便以后在服务的配置文件中使用(如果使用IP配置的话,不方便对虚拟机进行迁移,比如从公司迁移到家里,网段可能会变化,IP也会变化)
    #编辑 /etc/hosts,目前我在局域网中固定使用这个IP
    10.0.0.16    server-1
    
    1. 在 server-1 上面安装 openssh-server(不安装的话没法SSH远程连接)
    安装后记得重启ssh服务
    sudo service ssh restart
    
    1. 把软件包放在 /opt 目录下, 查看/opt下的文件夹
    /opt/hadoop-2.6.0
    /opt/jdk1.7.0_79
    /opt/scala-2.11.5
    /opt/spark-1.6.1-bin-hadoop2.6
    
    1. 设置环境变量
    #根据实际安装位置修改代码,添加至 "/etc/profile" 末尾
    export JAVA_HOME=/opt/jdk1.7.0_79
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
    export SCALA_HOME=/opt/scala-2.11.5
    export HADOOP_HOME=/home/spark/opt/hadoop-2.6.0
    export SPARK_HOME=/opt/spark-1.6.1-bin-hadoop2.6
    export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin
    
    1. 使环境变量生效
    source /etc/profile
    
    1. 验证安装是否正确,查看输出信息
    java -version
    javac -version
    scala -version
    
    1. 进入配置文件目录 修改Hadoop的配置文件(包括7-16)
    cd /opt/hadoop-2.6.0
    # 建立目录提供给程序使用
    mkdir tmp && mkdir -p dfs/name && mkdir -p dfs/data
    
    1. 修改配置文件hadoop-env.sh(路径:/opt/hadoop-2.6.0/etc/hadoop,下同,建议修改任何配置文件前都先备份)
    # 注释原来的 JAVA_HOME 变量,重新写入
    export JAVA_HOME=/opt/jdk1.7.0_79
    
    1. 修改配置文件yarn-env.sh
    #在文件开头导入环境变量
    export JAVA_HOME=/opt/jdk1.7.0_79
    
    1. 修改配置文件 slaves,把 localhost 改为 server-1 即可
    2. 修改核心配置文件 core-site.xml
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://server-1:9000</value>
        </property>
        <property>
            <name>io.file.buffer.size</name>
            <value>131072</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/opt/hadoop-2.6.0/tmp</value>
            <description>Abasefor other temporary directories.</description>
        </property>
        <property>
            <name>hadoop.proxyuser.spark.hosts</name>
            <value>*</value>
        </property>
        <property>
            <name>hadoop.proxyuser.spark.groups</name>
            <value>*</value>
        </property>
    </configuration>
    
    1. 修改 hdfs-site.xml 配置文件
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>server-1:9001</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/opt/hadoop-2.6.0/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/opt/hadoop-2.6.0/dfs/data</value>
        </property>
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
    </configuration>
    
    1. 修改 mapred-site.xml 配置文件
    # 首先拷贝配置文件
    cp mapred-site.xml.template mapred-site.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>server-1:10020</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>server-1:19888</value>
        </property>
    </configuration>
    
    1. 修改 yarn-site.xml 配置文件
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>server-1:8032</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>server-1:8030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>server-1:8035</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>server-1:8033</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>server-1:8088</value>
        </property>
    </configuration>
    
    1. 验证 hadoop 配置
    cd /opt/hadoop-2.6.0 && ./bin/hadoop namenode -format
    
    1. 启动和停止 hadoop 相关服务
    ./sbin/start-all.sh
    ./sbin/stop-all.sh
    
    这里需要提示使用密码,则可以配置本机通过 SSH 免密码登录,ssh server-1 成功即可
    
    1. 进入目录修改 spark 相关配置文件
    cd /opt/spark-1.6.1-bin-hadoop2.6
    cp conf/spark-env.sh.template conf/spark-env.sh
    

    编辑配置文件

    export JAVA_HOME=/opt/jdk1.7.0_79
    export SCALA_HOME=/opt/scala-2.11.5
    export SPARK_MASTER_IP=server-1
    export SPARK_WORKER_MEMORY=1028m
    export HADOOP_CONF_DIR=/opt/hadoop-2.6.0/etc/hadoop
    

    启动相关服务

    ./sbin/start-all.sh
    
    1. server-1:50070 可以查看Hadoop集群状态信息,如果出现任何错误可以到对应的日志文件夹查看信息
    例如查看namenode相关日志
    cd /opt/hadoop-2.6.0/logs
    tail -f hadoop-odirus-namenode-server-1.out
    

    文件声明

    被分享的软件均通过百度云从原始网站离线下载,自己没做任何修改(百度云有没有修改无法保证,不放心的可以校验哈希值)。

    参考文章:

    相关文章

      网友评论

      • odirus:刚刚使用了一个XML在线格式化工具对配置文件进行格式化,看起来更加舒服一些。
      • Ding_Zhaohai:虽然,我看不懂大数据的知识,但是知道很厉害.
        odirus:@Ding_Zhaohai 我也是刚接触这方面的内容,把自己所学分享出来,希望与更多的人一起进步。

      本文标题:Spark Hadoop 环境搭建

      本文链接:https://www.haomeiwen.com/subject/hhhslttx.html