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

 

#編譯要很長時間,而且需要聯網,網速還要好,最好能翻牆。編譯的過程中有許多坑!

#坑一、要修改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提示,將下載不下來的自己手動下載下來,或者重復編譯一下

#本人遇到的問題還算少的,編譯一共花費兩個晚上一個白天。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM