• centos7下搭建单机Spark开发环境


    首先介绍一下我的环境,我是在vmware12版本下安装的CentOS-7-x86_64-DVD-1804版本

    1、安装python3

    #python官网下载python

    sudo wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz

    #配置yum源
    sudo yum groupinstall 'Development Tools'
    #yum源安装python需要的库
    sudo yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
    #解压
    sudo tar xf Python-3.6.8.tar.xz
    #移动到/usr/local/python3/,没有可以mkdir建立
    mv Python-3.6.8 /usr/local/python3/
    #进入到Python-3.6.8/
    cd /usr/local/python3/
    cd Python-3.6.8/
    #配置路径
    sudo ./configure --prefix=/usr/local/python3 --enable-optimizations
    #编译,注意在Python-3.6.8/下,失败重试前要make clean
    sudo make
    #安装
    sudo make install
    #建立软连接
    sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python
    #如果原来的python存在导致建立软连接失败,需要删除原来的软连接
    sudo rm -rf /usr/bin/python
    #删除后建立软连接
    sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python
    #查看版本
    python -V

    #安装完成python3后,要注意yum源是python2版本写的,所以要将yum源改回来

    vi /usr/libexec/urlgrabber-ext-down
    #!/usr/bin/python2.7

    vim /usr.bin/yum
    #!/usr/bin/python2.7

    sudo yum -y install epel-release
    安装pip
    sudo yum install -y python-pip


    2、安装jdk

    jdk版本是jdk1.8.0_144

    #解压到指定文件夹

    tar -zxvf filename -C /usr/local/java/

    #编辑/etc/下的profile文件,

    vim ~/.bash_profile

    #配置环境变量

    export JAVA_HOME=/usr/local/java/jdk1.8.0_144
    exort PATH=$JAVA_HOME/bin:$PATH

    #使环境变量生效

    source /etc/profile

    #测试

    java -version

    3、安装scala

    #解压文件到指定路径

    sudo tar -zxvf scala-2.11.8.tgz -C /opt/app/

    #进入文件

    vi ~/.bash_profile 

    #在.bash_profile 文件下填写

    export SCALA_HOME=/opt/app/scala-2.11.8
    exort PATH=$SCALA_HOME/bin:$PATH

    #完成后

    source ~/.bash_profile

    4、安装hadoop

    #下载hadooop

    sudo wget sudo http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz

    #解压到/opt/app/

    sudo tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /opt/app/

    #进入到hadoop路径下

    cd /opt/app/hadoop-2.6.0-cdh5.7.0

    #修改配置文件

    sudo vi ~/.bash_profile

    #添加内容

    export HADOOP_HOME=/opt/app/hadoop-2.6.0-cdh5.7.0
    export PATH=$HADOOP_HOME/bin:$PATH

    #进入到hadoop路径下的/etc/hadoop下,

    /opt/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop

    #进入后修改配置文件,1,hadoop-env.sh

    sudo vi hadoop-env.sh
    
    # The java implementation to use.
    #export JAVA_HOME=${JAVA_HOME}
    export JAVA_HOME=/opt/app/jdk1.8.0_144

    #查看JAVA_HOME的路径

    echo $JAVA_HOME

    #改配置文件,2,core-site.xml

    sudo vi core-site.xml

    #修改如下,centosmj 是本地名称

    <configuration>
    <property>
    <name>fs.default.name</name>
    <value>hdfs://centosmj:8020</value>
    </property>
    </configuration>

    #修改配置文件, 3. hdfs-site.xml

    sudo vi hdfs-site.xml
    
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/app/tmp/dfs/name</value>
    </property>
    
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/app/tmp/dfs/data</value>
    </property>
    
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    </configuration>

    #修改配置文件,4. mapred-site.xml.template

    sudo vi mapred-site.xml.template

    #拷贝一份模板

    sudo cp mapred-site.xml.template mapred-site.xml
    #更改配置如下
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>

    #修改配置文件,5. yarn-site.xml

    sudo vi yarn-site.xml
    
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>

    #格式化hadoop,完成后会在/opt/app/tmp 下生成文件夹

    sudo ./hadoop namenode -format
    #登陆dfs,在sbin路径下
    ./start-dfs.sh

    #免密登陆问题,关键->检查.ssh (700) 和 authorized_keys(600) 权限
    #完成命令./start-dfs.sh后,用jps看到如下

    [hadoop@centosmj sbin]$ jps
    3700 SecondaryNameNode
    3355 NameNode
    3503 DataNode
    3903 Jps
    #创建文件夹
    hadoop fs -mkdir /test
    
    #查看是否创建
    hadoop fs -ls /
    
    #试一下放入/test下一个文件
    [hadoop@centosmj hadoop-2.6.0-cdh5.7.0]$ hadoop fs -put README.txt /test/
    
    #命令查看
    hadoop fs -ls /test/
    
    #读一下放入的文件
    hadoop fs -text /test/README.txt

    #在本地浏览器中试验,输入url-> centosmj:50070

    #启动yarn

    #进入到sbin路径下
    ./start-yarn.sh
    #jps会看到
    [hadoop@centosmj sbin]$ jps
    4962 ResourceManager
    3700 SecondaryNameNode
    5124 Jps
    3355 NameNode
    5070 NodeManager
    3503 DataNode

    #在本地浏览器中试验,输入url-> centosmj:8088

    5、安装maven

    #在官网下载后解压到/opt/app/路径下,

    #修改配置文件,vi ~/.bash_profile 

    export MAVEN_HOME=/opt/app/apache-maven-3.6.0
    export PATH=$MAVEN_HOME/bin:$PATH

    #修改配置文件settings.xml

    #maven的配置文件settings.xml,如果不改会代码库会建在默认路径,
    <!-- localRepository
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: ${user.home}/.m2/repository
      <localRepository>/path/to/local/repo</localRepository>
      -->
      <localRepository>/opt/maven_repository</localRepository>

    6、安装spark

    #spark 官网地址 spark.apache.org/downloads.html

    #下载后解压到/opt/app/下,进入spark目录,执行下面的命令

    ./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0

    #编译要很长时间,而且需要联网,网速还要好,最好能FQ。编译的过程中有许多坑!

    #坑一、要修改pom.xml文件,修改远程仓库地址,(修改成阿里镜像地址,增加cdh镜像地址)

    #进入spark目录下,有一个pom.xml文件,要修改它:vim ./pom.xml

    <repository>
      <id>maven-ali</id>
      <url>http://maven.aliyun.com/nexus/content/groups/public//</url>
      <releases>
      <enabled>true</enabled>
      </releases>
      <snapshots>
      <enabled>true</enabled>
      <updatePolicy>always</updatePolicy>
      <checksumPolicy>fail</checksumPolicy>
      </snapshots>
    </repository>

    <repository>
      <id>cloudera</id>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>

    #大家一定会有疑问这段代码应该贴在pom文件的什么位置呢,像那种贴在文件末尾段一定是不行的,

    #因为pom文件是maven的核心,里面的规则还是很严谨的。那么让我的亲身经历告诉你,应该在贴在如下图所示的位置

    #我把pom.xml文件拷贝出来,用Notepad++打开,网上的做法是把第一个repository替换成下面画红圈的部分,但我添加到后面也没问题。

    #坑二、虚拟机的内存要大于4G,不然编译也会有问题的。

    #除了上面的两个比较大的坑之外,还有许多下载失败导致编译出问题的情况,要仔细看error提示,将下载不下来的自己手动下载下来,或者重复编译一下

    #本人遇到的问题还算少的,编译一共花费两个晚上一个白天。

  • 相关阅读:
    C#资源释放方法实例分析
    c#中在一个窗体中触发另一个窗体的事件
    C#定时器的用法
    C# 类的析构函数和释放函数
    C# 定时执行,文件占用
    C#多线程与异步
    Newtonsoft中JArray 转成list<object>
    C#中Dictionary的用法
    C# 解析Json文件(使用NewtonJson库)
    mysql无法远程连接10038错误的坑(阿里云ecs)
  • 原文地址:https://www.cnblogs.com/mingjie-c/p/10223095.html
Copyright © 2020-2023  润新知