日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

ubuntu server安装hadoop和spark,并设置集群

發(fā)布時間:2024/7/5 Ubuntu 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu server安装hadoop和spark,并设置集群 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

安裝server請看本人的上一篇博客
Ubuntu Server 20.04.2 安裝

先前準(zhǔn)備工作

創(chuàng)建 hadoop用戶

創(chuàng)建用戶之后,輸入一下指令重啟

shutdown -r now

登錄 hadoop 用戶

安裝 ssh 和 vim

首先更新一下 apt 工具

sudo apt-get update

然后安裝vim

sudo apt-get install vim

安裝ssh server

sudo apt-get install openssh-server

安裝 ssh 之后,使用 ssh localhost 命令,查看是否ok

過一會在設(shè)置免密登陸

apt-get install network-manager

查看 ip

并利用 cmd ping 一下,看看是否正確

查看和修改網(wǎng)絡(luò)配置信息。
編輯 /etc/netplan 下的 .yaml 文件(注意自己的文件名)

vim /etc/netplan/***.yaml

假設(shè)IP地址修改為192.168.126.124,子網(wǎng)掩碼24位即255.255.255.0,網(wǎng)關(guān)設(shè)置為192.168.126.2,DNS1:8.8.8.8。
這個部分,需要查看自己虛擬機的設(shè)置,來確定自己的ip,不要亂設(shè)置,否則會連不上網(wǎng)(非法ip)

然后輸入一下命令,

sudo netplan apply ip addr

測試一下是否可行
windows ping 一下虛擬機

linux server 自己 ping 一下 www.baidu.com


一切正常

修改主機名與IP的映射

搭建一個三臺機器的集群,分配的ip如下:

主機名稱對應(yīng) ip地址
hadoop01192.168.126.124
hadoop02192.168.126.125
hadoop03192.168.126.126

修改相應(yīng)的配置文件

sudo vim /etc/hosts

在該配置文件后加入
192.168.126.124 hadoop01
192.168.126.125 hadoop02
192.168.126.126 hadoop03

并注釋掉
#127.0.1.1 hadoop01


# 安裝hadoop

為了方便我們的下一步安裝(主要是復(fù)制主機的信息),我們選擇使用 XShell 來輔助完成,詳情請參考我的上一篇博客 XShell的破解安裝與連接

啟動ssh 客戶端

查看是否啟動 ssh 客戶端,客戶端是用于連接其他從機,服務(wù)端是用于向其他客戶端提供鏈接自己的方式

ps -e | grep ssh # 查看當(dāng)前 ssh 的進,-e 表示every,利用管道線精確查找


倘若沒有 ssh -agent 則需要使用 eval ssh-agent 啟動客戶端

安裝 java

# 先更新更新apt sudo apt update sudo apt upgrade

輸入下面的命令使用 apt 工具安裝 java

# 安裝 java sudo apt install default-jdk default-jre

安裝完成之后,查看 java 版本,檢驗是否安裝成功

java --version

ssh 免密登陸

想要深入了解,查看我的另一篇博客
輸入 ssh localhost 發(fā)現(xiàn) ssh 遠程登陸還需要密碼,下面我們進行生成秘鑰,免密登陸

生成 rsa 秘鑰(公鑰和私鑰)

ssh-keygen -t rsa

設(shè)置root權(quán)限

我們創(chuàng)建的普通用戶權(quán)限不足,不能修改網(wǎng)絡(luò)配置信息,要先為普通用戶賦予root權(quán)限,這需要切換到root用戶下。首先為root用戶設(shè)置一個密碼并切換到root用戶:

安裝 hadoop

????下面對hadoop進行初步的配置。
????首先計劃集群做一個功能的分配:

現(xiàn)在,我們下載Apache Hadoop的最新穩(wěn)定版本。
本文所寫內(nèi)容引用Hadoop版本為2021年9月更新的3.2.2版本(雖然不知道為啥這個版本是最近更新的)。如有更新版本,請點擊Binary download一欄下面的binary鏈接,進入下載頁面獲取到下載鏈接,作為下述代碼的依據(jù)。

本文所提供的下載鏈接來自北京外國語大學(xué)的鏡像站,速度++。鏡像站所有Hadoop的下載地址:Index of /apache/hadoop/common (bfsu.edu.cn);另附上清華大學(xué)的鏡像站地址:Index of /apache/hadoop/common (tsinghua.edu.cn)

使用非常好使的 wget 命令獲取網(wǎng)絡(luò)資源,wget不加參數(shù),會下載到你當(dāng)前的目錄下

wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz tar -xvzf hadoop-3.2.2.tar.gz


接下來將解壓后的目錄移動到: /usr/local

sudo mv hadoop-3.2.2 /usr/local/hadoop sudo mkdir /usr/local/hadoop/logs sudo chown hadoop /usr/local/hadoop/logs

配置環(huán)境文件

編輯 ~/.bashrc 文件

export HADOOP_HOME=/usr/local/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

然后

source ~/.bashrc

接下來,您需要在hadoop-env.sh中定義Java環(huán)境變量,以配置YARN、HDFS、MapReduce和Hadoop相關(guān)項目設(shè)置。

上一個加上 sudo

下面開始修改hadoop的配置文件:
進入配置文件目錄

cd /usr/local/hadoop/etc/hadoop/

修改一下5個文件

  • core-site.xml ok
    使用命令:vim core-site.xml
<configuration><property><name>fs.defaultFS</name><!-- 告訴 NN 在那個機器,NN 使用哪個端口號接收客戶端和 DN 的RPC請求--><value>hdfs://hadoop01:9000</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/data/tmp</value><description>A base for other temporary directories.</description></property><property><name>hadoop.http.staticuser.user</name><value>user</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property> </configuration>
  • hdfs-site.xml ok
    使用命令:vim hdfs-site.xml
<configuration><property><name>dfs.namenode.secondary.http-address</name><value>hadoop03:50090</value><description>The secondary namenode http server address and port.</description></property> </configuration>
  • mapred-site.xml
    使用命令:vim mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description>The runtime framework for executing MapReduce jobs. Can be one of local, classic or yarn.</description></property><!-- MR運行時,向10020端口請求存放歷史日志--><property> <name>mapreduce.jobhistory.address</name><value>0.0.0.0:10020</value><description>MapReduce JobHistory Server IPC host:port</description></property> <!-- 在瀏覽器上使用19888可以看歷史日志--><property><name>mapreduce.jobhistory.webapp.address</name><value>0.0.0.0:19888</value><description>MapReduce JobHistory Server Web UI host:port</description> </property> </configuration>
  • yarn-site.xml ok
    使用命令:vim yarn-site.xml
<configuration><!-- Site specific YARN configuration properties --><property><description>A comma separated list of services where service name should only contain a-zA-Z0-9_ and can not start with numbers</description><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><description>The hostname of the RM.</description><name>yarn.resourcemanager.hostname</name><value>hadoop02</value></property><property><description>The http address of the RM web application.</description><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:8088</value></property> <!-- 日志聚集功能,這里原本默認(rèn)false--><property><name>yarn.log-aggregation-enable</name><value>true</value></property> <!-- 日志保留時間設(shè)置7天 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property> </configuration>
  • workers
    使用命令:vim workers
    將內(nèi)容全部清除掉,并更換為你的三臺從機的主機名。

  • xsync(虛擬機之間傳送文件,傳送至相同文件下)
    寫一個腳本用于虛擬機之間通過scp傳送文件

#!/bin/bash #校驗參數(shù)是否合法 if(($#==0)) thenecho 請輸入要分發(fā)的文件!exit; fi #獲取分發(fā)文件的絕對路徑 dirpath=$(cd `dirname $1`; pwd -P) filename=`basename $1`echo 要分發(fā)的文件的路徑是:$dirpath/$filename#循環(huán)執(zhí)行rsync分發(fā)文件到集群的每條機器 for((i=1;i<=3;i++)) doecho ---------------------hadoop0$i-------------------- # 注意更換為自己的主機名稱rsync -rvlt $dirpath/$filename hadoop0$i:$dirpath done

注:各位可以按需將循環(huán)中的內(nèi)容更改為你自己命名的的主機名。如:
你的主機名叫xxx,則去掉循環(huán),依次替換為rsync -rvlt $dirpath/$filename xxx:$dirpath
該命令的含義是 將你主機上的文件復(fù)制到 目標(biāo)主機(/etc/hosts 文件給出了相應(yīng)的ip,不成功時候,注意查看該文件配置情況)

  • xcall
    新建一個文件
vim call #!/bin/bash #在集群的所有機器上批量執(zhí)行同一個命令 if(($#==0)) thenecho 請輸入要操作的命令!exit; fiecho 要執(zhí)行的命令是$*#循環(huán)執(zhí)行此命令 for((i=1;i<=3;i++)) doecho --------------------hadoop$i--------------------ssh hadoop$i $* done

修改權(quán)限,并將它們移到 ~/bin/ 目錄下

chmod 777 xsync chmod 777 xcall mkdir ~/bin # 注意這個bin 是新建的 mv xsync ~/bin mv xcall ~/bin/

至此,單臺虛擬機上所需要的hadoop內(nèi)容基本上配置完畢,下面開始配置Spark。


安裝Spark

獲取下載鏈接、并配置環(huán)境

從Downloads | Apache Spark網(wǎng)頁中獲取您所需的Spark版本(務(wù)必按照所安裝的Hadoop版本進行選擇,撰寫之時最新版為3.1.1)。

清華大學(xué)鏡像站網(wǎng)址

wget https://mirrors.bfsu.edu.cn/apache/spark/spark-3.1.1/spark-3.1.1-bin-hadoop3.2.tgz tar xvzf spark-3.1.1-bin-hadoop3.2.tgz sudo mv spark-3.1.1-bin-hadoop3.2/ /usr/local/spark

安裝Scala 配置Apache Spark 環(huán)境

下載解壓之后,我們進行配置環(huán)境

vim ~/.bashrc source ~/.bashrc

配置的內(nèi)容如下所示

export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

安裝scala:
使用命令:sudo apt install scala -y,確認(rèn)命令執(zhí)行完畢的最后一行中的安裝位置:

更改配置文件
切換到Spark的目錄下(cd /usr/local/spark/conf):

將conf文件夾下的spark-env.sh.template重命名為spark-env.sh(mv spark-env.sh.template spark-env.sh),并添加以下內(nèi)容(vim spark-env.sh):

export SCALA_HOME=/usr/share/scala-2.11 export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export SPARK_MASTER_HOST=hadoop01 export SPARK_LOCAL_DIRS=/usr/local/spark export SPARK_DRIVER_MEMORY=2g #內(nèi)存 export SPARK_WORKER_CORES=2 #cpus核心數(shù)

不建議將虛擬機內(nèi)存全部分配給他

將conf文件夾下的workers.template重命名為workers(mv workers.template workers),并修改為以下內(nèi)容(vim workers)

hadoop01 hadoop02 hadoop03

至此,單臺虛擬機上所需要的內(nèi)容基本上配置完畢,我們只需要將虛擬機克隆兩臺然后配置各自的固定IP、主機名,重新生成ssh密匙即可。

克隆虛擬機

虛擬機的克隆

將虛擬機關(guān)機,點擊工具欄的虛擬機-管理-克隆。

點擊下一步

點擊下一步

選擇創(chuàng)建完整克隆

改個名,點完成
我們需要克隆出來兩個,重復(fù)此步驟。

啟動第二個(克隆出來的第一個)虛擬機。

虛擬機需要一個一個啟動,因為克隆出來的虛擬機的ip是一樣的,會導(dǎo)致沖突。需要一個一個修改啟動。由于虛>擬機的ip沒有發(fā)生改變,所以還可以使用xshell直接進行連接。

使用命令sudo vim /etc/hostname,將文件的內(nèi)容修改為hadoop02;
編輯網(wǎng)絡(luò)配置信息文件,使用下述命令查看網(wǎng)絡(luò)配置文件名稱,并使用vim編輯器打開它:

cd /etc/netplan ls

注意保持里面的基本信息,并修改其中的ip地址到你設(shè)計的ip地址;

改完之后sudo netplan apply 進行 應(yīng)用,ping 一個網(wǎng)址進行測試查看是否ok

然后重啟虛擬機,按照文章之前的xshell建立新連接的步驟新建連接到hadoop02主機。同理設(shè)置最后一臺虛擬機。

ssh 秘鑰設(shè)置

想要深入了解,查看我的另一篇博客

在三臺虛擬機上分別執(zhí)行:

ssh-keygen -t rsa

這里是生成了rsa密鑰

然后將這三個密鑰在三臺虛擬機上相互傳輸
首先,在hadoop01上向hadoop01、hadoop02、hadoop03發(fā)送

ssh-copy-id hadoop01 ssh-copy-id hadoop02 ssh-copy-id hadoop03

第一個輸入yes,第二個輸入密碼

輸入ssh查看是否設(shè)置成功
重復(fù)執(zhí)行。

下面測試xcall和xsync命令

使用xcall來關(guān)閉三臺虛擬機上的防火墻,在hadoop01的終端上輸入(起始任意一臺虛擬機都可以)

xcall sudo ufw disable

倘若出現(xiàn)“/bin/bash^M: bad interpreter“的,博客
解決方案
使用linux命令dos2unix filename,直接把文件轉(zhuǎn)換為unix格式;

然后我們查看 xcall sudo ufw disable 結(jié)果

測試發(fā)現(xiàn)沒毛病

hadoop初次使用

運行hadoop

還之前的那個 hadoop 安裝一樣,初始化 namenode
hadoop namenode -format

在 /usr/local/hadoop/sbin 中運行
start-all.sh
jsp 查看進程

通過 web 訪問試一試是否成功
192.168.182.159:9870

查看JPS情況
hadoop01

hadoop02

hadoop03

或者是使用 xcall

參考博客wdz小站
參考博客

總結(jié)

以上是生活随笔為你收集整理的ubuntu server安装hadoop和spark,并设置集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。