目錄
一、前期環境配置
Hadoop單機環境搭建
Java環境搭建
二、Spark安裝及相關配置
三、Hadoop及Spark安裝報錯
一、前期環境配置
Hadoop單機環境搭建
創建新用戶hadoop
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop #設置密碼
sudo adduser hadoop sudo #增加用戶權限
更新apt,下載vim
sudo apt-get update
sudo apt-get install vim
安裝SSH,配置無密碼登錄
sudo apt-get install openssh-server
ssh localhost
exit # 退出剛纔的 ssh localhost
cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost
ssh-keygen -t rsa # 會有提示,都按回車就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授權
Java環境搭建
jdk下載地址:鏈接: https://pan.baidu.com/s/1xrg-tk73T7U4RYRhBQ5UMg 提取碼: bv8c
cd /usr/lib
sudo mkdir jvm #創建/usr/lib/jvm目錄用來存放JDK文件
cd ~ #進入hadoop用戶的主目錄
cd Downloads #注意區分大小寫字母,剛纔已經通過FTP軟件把JDK安裝包jdk-8u162-linux-x64.tar.gz上傳到該目錄下
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解壓到/usr/lib/jvm目錄下
cd /usr/lib/jvm
ls
cd ~
vim ~/.bashrc
添加如下內容
export JAVA_HOME=/usr/lib/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
使配置生效
source ~/.bashrc #使配置生效
java -version #檢測是否安裝成功
安裝Hadoop
sudo tar -zxf ~/下載/hadoop-2.6.0.tar.gz -C /usr/local # 解壓到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop # 將文件夾名改爲hadoop
sudo chown -R hadoop ./hadoop # 修改文件權限
cd /usr/local/hadoop
./bin/hadoop version #成功則輸出版本信息
啓動Hadoop
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是個完整的可執行文件,中間沒有空格,啓動hadoop
./sbin/stop-dfs.sh #關閉hadoop
二、Spark安裝及相關配置
安裝Spark:官方下載地址
相關配置修改
sudo tar -zxf ~/下載/spark-1.6.2-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-1.6.2-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark # 此處的 hadoop 爲你的用戶名
cd /usr/local/spark #修改配置
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
vim ./conf/spark-env.sh
在env文件中插入
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
cd /usr/local/spark #測試是否安裝成功
bin/run-example SparkPi 2>&1 | grep "Pi is" #出現下列截圖即安裝成功
三、Hadoop及Spark安裝報錯
問題1:ssh: Could not resolve hostname xxx
解決辦法:在~/.bashrc中加入,修改完成後輸入jps查看是否修改成功。
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
問題2:DataNode無法啓動
解決辦法:這種辦法會損壞原有HDFS中數據
# 針對 DataNode 沒法啓動的解決方法
cd /usr/local/hadoop
./sbin/stop-dfs.sh # 關閉
rm -r ./tmp # 刪除 tmp 文件,注意這會刪除 HDFS 中原有的所有數據
./bin/hdfs namenode -format # 重新格式化 NameNode
./sbin/start-dfs.sh # 重啓
問題3:Failed to find Spark jars directory.......You need to build the Spark with the package.......
解決辦法:這裏的Spark版本安裝與Hadoop的安裝版本不匹配,建議直接重新安裝與Hadoop匹配的Spark版本。
四、Spark基礎知識點
三大分佈式計算系統:Spark.Hadoop.Storm
Spark生態系統:Spark Core;Spark Sql;Spark Streaming;Mllib;GraphX
RDD:彈性分佈式數據集(共享內存模型),在內存中進行,管道化操作;
RDD執行過程:讀入數據集(可以分爲多個分區);一系列轉換操作(惰性機制,只是記錄轉換的軌跡);進行動作操作,完成第二步的所有計算並輸出到外部節點;
RDD優勢:具有良好的容錯機制;內存持久化;無需進行序列化和反序列化操作;
RDD依賴關係:窄依賴(一個父分區對一個孩子分區;多個RDD父分區對應一個孩子分區),寬依賴(一個父RDD一個分區對應一個子RDD多個分區);
Stage類型:ShuffleMapStage;ResultStage(沒有輸出,直接產生結果,至少含有1個);