Ubuntu搭建Hadoop、spark
Ubuntu 安裝
安裝時(shí)點(diǎn)擊其他選項(xiàng),
第一個(gè)分區(qū)為512mb的交換空間
第二個(gè)分區(qū)為剩余的空間,掛載點(diǎn)是/
按住alt鍵往上拖
安裝完重啟
安裝vmtools工具
解壓到home文件夾,運(yùn)行.pl文件
重啟生效
新建Hadoop用戶
sudo useradd -m hadoop -s /bin/bash
為Hadoop用戶設(shè)置密碼
sudo passwd hadoop
為Hadoop用戶增加權(quán)限
sudo adduser hadoop sudo
切換到Hadoop用戶
sudo -su hadoop
安裝vim命令
sudo apt install vim
安裝ssh server
sudo apt-get install openssh-server
配置ssh
查看IP地址
ifconfig
克隆兩臺(tái)機(jī)器,要?jiǎng)?chuàng)建完整克隆
修改主機(jī)名
sudo vim /etc/hostname
改為master、slave1、slave2
修改hosts文件(三臺(tái)機(jī)器都要修改成一樣的)
sudo vim /etc/hosts
127.0.0.1 localhost
192.168.52.131 master
192.168.52.132 slave1
192.168.52.133 slave2
生成公鑰
ssh-keygen -t rsa -P “” ?(一路回車)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/
scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/
在slave1、slave2里分別執(zhí)行
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub
?
?
JDK安裝配置
打開壓縮包所在的位置
cd /mnt/hgfs/share/
創(chuàng)建解壓后的文件夾
sudo mkdir /usr/lib/jvm
解壓
sudo tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm/
解壓完成之后
cd /usr/lib/jvm
Jdk重命名
mv jdk1.8.0_162/ jdk
編輯~/.bashrc文件
sudo vim ~./bashrc
末尾添加如下內(nèi)容
export JAVA_HOME=/usr/lib/jvm/jdk
export JRE_HOME=${JAVA_HOME}/jre
????export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
接著讓環(huán)境變量生效,執(zhí)行如下代碼
source ~/.bashrc
然后在slave1,slave2上面重復(fù)上面的操作
?
安裝Hadoop
打開壓縮包所在的位置
cd /mnt/hgfs/share/
解壓
sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/
進(jìn)入目標(biāo)文件夾 /usr/local
cd /usr/local
sudo mv hadoop-2.7.1/ hadoop
編輯~/.bashrc文件
sudo vim ~./bashrc
末尾添加如下內(nèi)容
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
進(jìn)入/usr/local/hadoop/etc/hadoop目錄
cd /usr/local/hadoop/etc/hadoop
sudo vim slaves
改為
slave1
slave2
先復(fù)制再修改core-site.xml
sudo cp core-site.xml core-site-cp.xml
sudo vim core-site.xml
修改為
<configuration>
??????<property>
??????????<name>hadoop.tmp.dir</name>
??????????<value>file:/usr/local/hadoop/tmp</value>
??????????<description>Abase for other temporary directories.</description>
??????</property>
??????<property>
??????????<name>fs.defaultFS</name>
??????????<value>hdfs://master:9000</value>
??????</property>
??</configuration>
修改hdfs-site.xml,修改之前先備份
sudo cp hdfs-site.xml hdfs-site-cp.xml
sudo vim hdfs-site.xml
?<configuration>
????<property>
????????<name>dfs.replication</name>
????????<value>3</value>
????</property>
????<property>
????????????<name>dfs.namenode.name.dir</name>
????????????<value>file:/usr/local/hadoop/tmp/dfs/name</value>
????</property>
????<property>
????????????<name>dfs.datanode.data.dir</name>
????????????<value>file:/usr/local/hadoop/tmp/dfs/data</value>
????</property>
</configuration>
修改mapred-site.xml(復(fù)制mapred-site.xml.template,再修改文件名)
sudo cp mapred-site.xml.template mapred-site.xml
sudo vim mapred-site.xml
??<configuration>
????<property>
????????<name>mapreduce.framework.name</name>
????????<value>yarn</value>
????</property>
??</configuration>
修改yarn-site.xml,修改之前先備份
sudo cp yarn-site.xml yarn-site-cp.xml
sudo vim yarn-site.xml
??<!-- Site specific YARN configuration properties -->
??????<property>
??????????<name>yarn.nodemanager.aux-services</name>
??????????<value>mapreduce_shuffle</value>
??????</property>
??????<property>
??????????<name>yarn.resourcemanager.hostname</name>
??????????<value>master</value>
??????</property>
??</configuration>
修改sudo vim hadoop-env.sh ,在末尾增加
export JAVA_HOME=/usr/lib/jvm/jdk
cd /usr/local/
刪除臨時(shí)文件
rm -rf ./hadoop/tmp
刪除日志文件
rm -rf ./hadoop/logs/*
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz slave1:/home/hadoop
scp ./hadoop.master.tar.gz slave2:/home/hadoop
在slave1,slave2上分別執(zhí)行
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
在master主機(jī)上執(zhí)行
cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh
驗(yàn)證
jps
?
Spark安裝配置
打開壓縮包所在的位置
cd /mnt/hgfs/share/
解壓
sudo tar -zxvf spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/
加權(quán)、重命名
cd /usr/local
sudo -su root
chown -R hadoop:hadoop spark-2.4.0-bin-without-hadoop/
mv spark-2.4.0-bin-without-hadoop spark
sudo -su hadoop
編輯~/.bashrc文件
sudo vim ~./bashrc
末尾添加如下內(nèi)容
?export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
?????export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
????????export SPARK_HOME=/usr/local/spark
????????export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
????export PYSPARK_PYTHON=python3
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
使環(huán)境變量生效
source ~/.bashrc
配置spark-env.sh文件
sudo cp spark-env.sh.template spark-env.sh
sudo vim spark-env.sh
編輯spark-env.sh,添加如下內(nèi)容:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.52.131
上面改為自己的IP
配置好后,將Master主機(jī)上的/usr/local/spark文件夾復(fù)制到各個(gè)節(jié)點(diǎn)上在Master主機(jī)上執(zhí)行如下命令:
cd /usr/local/
tar -zcf ~/spark.master.tar.gz ./spark
cd ~
scp ./spark.master.tar.gz hadoop@slave1:/home/hadoop
scp ./spark.master.tar.gz hadoop@slave2:/home/hadoop
在slave1,slave2節(jié)點(diǎn)上分別執(zhí)行下面同樣的操作:
sudo tar -zxf ~/spark.master.tar.gz -C /usr/local
然后檢查一下,你的spark文件夾所屬的權(quán)限是否是hadoop,如果不是在付一下權(quán)限
sudo chown -R hadoop /usr/local/spark
實(shí)驗(yàn)一
驗(yàn)證spark是否安裝成功,在開啟SPARK之前 要先開啟HADOOP,只需在master節(jié)點(diǎn)執(zhí)行
在hadoop用戶下面
cd /usr/local/hadoop
sbin/start-all.sh
查看每個(gè)節(jié)點(diǎn)進(jìn)程是否都已啟動(dòng)成功
jps
master:
slave1:
slave2:
?
單機(jī)模式驗(yàn)證
不需要啟動(dòng)spark在master上面直接運(yùn)行:
bin/run-example SparkPi
輸出信息太多,我們用管道命令過濾一下有用信息
bin/run-example SparkPi 2>&1 | grep "Pi is roughly"
會(huì)輸出 Pi is roughly 3.1460957304786525
要采用本地模式,在4個(gè)CPU核心上運(yùn)行pyspark
cd /usr/local/spark
./bin/pyspark --master local[4]