Linux系统,Hadoop,R语言,RHadoop的安装
目錄
安裝準(zhǔn)備
linux系統(tǒng)安裝
Hadoop安裝
R語言安裝?
?RHadoop安裝?
分布式參考
我是R語言linux以及hadoop小白,因?yàn)檎n程任務(wù)接觸的這些內(nèi)容,是我自己找資料進(jìn)行的匯總,有些寫的不對(duì)的地方也請(qǐng)大家指出來。
安裝準(zhǔn)備
如果選擇的系統(tǒng)是32位Ubuntu系統(tǒng),那么直接跳過此步驟內(nèi)容。
如果選擇的系統(tǒng)是64位Ubuntu系統(tǒng),那么在安裝虛擬機(jī)前,我們還要進(jìn)入BIOS開啟CPU的虛擬化。
開啟CPU 虛擬化可以自行查找資料,因?yàn)檫@一步不同的電腦打開BIOS的方式都不同,所以就省略了。
linux系統(tǒng)安裝
我是在virtualbox虛擬機(jī)上安裝的ubuntu16.04。下載地址用的是林子雨老師的百度網(wǎng)盤地址,提取碼99bg,里面還有JDK的文件也可以一起下載。打開虛擬機(jī)后點(diǎn)擊新建,然后進(jìn)行下圖的選擇。
點(diǎn)擊下一步進(jìn)行內(nèi)存大小的設(shè)置,使用虛擬機(jī)安裝內(nèi)存最好大一些,不然會(huì)很卡,我的電腦內(nèi)存是16G,所以我分了8G;然后點(diǎn)擊下一步選擇現(xiàn)在創(chuàng)建虛擬硬盤,點(diǎn)擊創(chuàng)建,選擇VDI,點(diǎn)擊下一步選擇動(dòng)態(tài)分配,點(diǎn)擊下一步進(jìn)行硬盤的分配,這里也多分配一點(diǎn),為了在之后需要安裝很多的組件。這里就設(shè)置好了虛擬機(jī)。
點(diǎn)擊存儲(chǔ)選項(xiàng),會(huì)打開虛擬機(jī)的存儲(chǔ)設(shè)置。點(diǎn)擊沒有盤片,在右邊點(diǎn)擊盤片選擇選擇或創(chuàng)建一個(gè)虛擬光盤文件。打開選項(xiàng)后,點(diǎn)擊注冊(cè)找到下載的光盤文件,如果選擇光盤文件后頁(yè)面中沒有顯示,點(diǎn)擊刷新就可以看到了,然后點(diǎn)擊OK退出。
再設(shè)置一下虛擬機(jī)的網(wǎng)絡(luò),點(diǎn)擊選項(xiàng)后選擇橋接網(wǎng)卡。
為了能后讓win和虛擬機(jī)可以相互的復(fù)制黏貼,這里需要設(shè)置一下粘貼板;點(diǎn)擊虛擬機(jī)的設(shè)置選項(xiàng),找到常規(guī),點(diǎn)擊高級(jí),可以看到共享粘貼板,選擇雙向。
現(xiàn)在可以進(jìn)行ubuntu的安裝了。
點(diǎn)擊啟動(dòng)進(jìn)入ubuntu的安裝。
點(diǎn)擊安裝,這里我選擇了安裝中文版,但好像安裝英文版會(huì)減少一些錯(cuò)誤的出現(xiàn)。點(diǎn)擊安裝后在出現(xiàn)的界面中直接選擇繼續(xù),在安裝類型中選擇其他選項(xiàng),打開的新頁(yè)面中點(diǎn)擊新建分區(qū)表,如果頁(yè)面沒有這個(gè)選項(xiàng),就按住ALT鍵使用鼠標(biāo)拖拽找到,點(diǎn)擊新建分區(qū)表后,會(huì)有提示點(diǎn)擊繼續(xù)即可。選擇下圖中的空閑,然后再點(diǎn)擊“+”按鈕,用來創(chuàng)建交換空間。
對(duì)交換空間進(jìn)行如下設(shè)置。
選擇圖中“空閑”,然后再點(diǎn)擊“+”按鈕,用來創(chuàng)建根目錄。這里大小不用改動(dòng)。
對(duì)根目錄進(jìn)行如下設(shè)置。
?設(shè)置結(jié)束就可以進(jìn)行安裝了,點(diǎn)擊右下角的現(xiàn)在安裝。
選擇地區(qū),以及鍵盤布局,我這里都選擇了默認(rèn)。
進(jìn)行如下的用戶名設(shè)置。點(diǎn)擊繼續(xù)就可等著了。千萬不能點(diǎn)擊跳過。 安裝結(jié)束后進(jìn)行重啟,界面會(huì)提示刪除光盤,刪除后鍵盤按ENTER。
?
重啟動(dòng)后,虛擬機(jī)ubuntu系統(tǒng)默認(rèn)是以窗口模式打開,而且分辨率很低。這是Virtualbox初始安裝完ubuntu的原因,我們需要修復(fù)這個(gè),讓虛擬機(jī)支持大的分辨率,點(diǎn)擊左上角的設(shè)備選項(xiàng),選擇安裝增強(qiáng)功能。這里需要等待一段時(shí)間,然后提示鍵入return關(guān)閉窗口。打開ubuntu的終端執(zhí)行下面代碼。這時(shí)粘貼板還不能用,需要執(zhí)行下面代碼后重啟。重啟后就可以進(jìn)入系統(tǒng)設(shè)置進(jìn)行顯示的設(shè)置。
sudo apt-get install virtualbox-guest-dkmsHadoop安裝
1.創(chuàng)建hadoop用戶
如果你安裝 Ubuntu 的時(shí)候不是用的 “hadoop” 用戶,那么需要增加一個(gè)名為 hadoop 的用戶,如果使用上面的設(shè)置用戶名的方式可以跳過。
首先打開終端窗口,或者按?ctrl+alt+t?打開,輸入如下命令創(chuàng)建新用戶 。這條命令創(chuàng)建了可以登陸的 hadoop 用戶,并使用 /bin/bash 作為 shell。
sudo useradd -m hadoop -s /bin/bash接著使用如下命令設(shè)置密碼,可簡(jiǎn)單設(shè)置為hadoop,按提示輸入兩次密碼。
sudo passwd hadoop可為 hadoop 用戶增加管理員權(quán)限,方便部署,避免一些對(duì)新手來說比較棘手的權(quán)限問題。
sudo adduser hadoop sudo最后注銷當(dāng)前用戶(點(diǎn)擊屏幕右上角的齒輪,選擇注銷),返回登陸界面。在登陸界面中選擇剛創(chuàng)建的 hadoop 用戶進(jìn)行登陸。
2.更新apt
登入后,我們先更新一下 apt,因?yàn)槲覀冃枰褂?apt 安裝軟件,如果沒更新可能有一些軟件安裝不了,或者版本比較舊。打開終端窗口,執(zhí)行如下命令。
sudo apt-get update若出現(xiàn)“Hash校驗(yàn)和不符,無法下載” 的提示,可通過更改軟件源來解決。這里可以查找如何更改下載源的資料自行解決。有時(shí)候下載源會(huì)帶來很多的問題,比如還有“提示無法修正錯(cuò)誤”的問題,也可以通過修改下載源解決,如果解決不了,可以使用aptitude?來解決,因?yàn)樗惭b軟件包依賴低版本的時(shí)候,無法升級(jí)或者降級(jí)當(dāng)前的依賴版本,由于解決不了軟件包的依賴關(guān)系,所以也就導(dǎo)致無法安裝成功。
后續(xù)需要更改一些配置文件,我使用的是 vim(vi增強(qiáng)版,基本用法相同),建議安裝一下;當(dāng)然也可以使用gedit更改配置文件。使用下面代碼添加vim。安裝時(shí)會(huì)提示確認(rèn)都鍵入y。
sudo apt-get install vim3.安裝SSH、配置SSH無密碼登陸
集群、單節(jié)點(diǎn)模式都需要用到 SSH 登陸(類似于遠(yuǎn)程登陸,你可以登錄某臺(tái) Linux 主機(jī),并且在上面運(yùn)行命令),Ubuntu 默認(rèn)已安裝了 SSH client,此外還需要安裝 SSH server。
sudo apt-get install openssh-server安裝后,可以使用如下命令登陸本機(jī)。此時(shí)會(huì)有如下提示(SSH首次登陸提示),輸入 yes 。然后按提示輸入密碼 hadoop,這樣就登陸到本機(jī)了。
ssh localhost這樣的登入還是很麻煩,需要配置成SSH無密碼登陸比較方便。首先退出剛才的 ssh,就回到了我們?cè)鹊慕K端窗口,然后利用 ssh-keygen 生成密鑰,并將密鑰加入到授權(quán)中。這樣登入就不再需要密碼。
exit # 退出剛才的 ssh localhost cd ~/.ssh/ # 若沒有該目錄,請(qǐng)先執(zhí)行一次ssh localhost ssh-keygen -t rsa # 會(huì)有提示,都按回車就可以 cat ./id_rsa.pub >> ./authorized_keys # 加入授權(quán)?4.安裝Java環(huán)境
我是使用手動(dòng)安裝的,需要按照下面步驟來手動(dòng)安裝JDK1.8。
請(qǐng)把壓縮格式的文件jdk-8u162-linux-x64.tar.gz下載到本地電腦,假設(shè)保存在“/home/hadoop/下載/”目錄下。這里有兩種方式下載文件,一種是使用ubuntu自帶的瀏覽器打開百度網(wǎng)盤下載,還有就是使用SecureCRT,將win中的文件上傳到虛擬機(jī)ubuntu中。下面介紹SecureCRT使用。
安裝好SecureCRT后,打開它,鼠標(biāo)放在Sessions點(diǎn)擊鼠標(biāo)右鍵,選擇New?Session。?
在打開的界面中,協(xié)議默認(rèn)選SSH2,點(diǎn)擊下一步。新的界面中,在hostname中需要寫安裝的虛擬機(jī)的地址。這里需要在ubuntu終端使用下面代碼。
ifconfig地址如下。
username使用ubuntu的登入用戶名。session name自己設(shè)置一下,這樣就完成了。
?點(diǎn)擊圖中標(biāo)識(shí),如果沒有配置SSH是連接不成功的。連接成功后,右鍵選擇connect SFTP session。這樣就可以傳文件了,將需要的文件拖拽到打開的SFTP中就成功了。
上傳完成后,默認(rèn)在家目錄下,就是“/home/hadoop”目錄下,這里hadoop是我的登入用戶名。
?使用下面的命令解壓安裝。
cd /usr/lib sudo mkdir jvm #創(chuàng)建/usr/lib/jvm目錄用來存放JDK文件 cd ~ #進(jìn)入hadoop用戶的主目錄 ls #進(jìn)入目錄后使用ls可以查看目錄下的文件 sudo tar -zxvf ~/jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解壓到/usr/lib/jvm目錄下?JDK文件解壓縮以后,可以執(zhí)行如下命令到/usr/lib/jvm目錄查看一下。
cd /usr/lib/jvm ls可以看到,在/usr/lib/jvm目錄下有個(gè)jdk1.8.0_162目錄。下面繼續(xù)執(zhí)行如下命令,設(shè)置環(huán)境變量。
cd ~ vim ~/.bashrc?打開了hadoop這個(gè)用戶的環(huán)境變量配置文件,請(qǐng)?jiān)谶@個(gè)文件的開頭位置,添加如下幾行內(nèi)容。
使用vim打開文件后,鍵盤按i,就可以進(jìn)行編輯了,編輯結(jié)束后,按ESC退出編輯,然后鍵入:wq退出。配置結(jié)束后一定要使用source ~/.bashrc代碼命令讓.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使用java -version命令可以查看是否配置成功,如果顯示了java版本信息說明安裝成功。
5.安裝 Hadoop 2
可以通過Hadoop的官網(wǎng)下載,也可以使用前面的百度網(wǎng)盤下載,也可以使用前面提到的SecureCRT的方式上傳文件到Ubuntu。
通過下面的代碼將Hadoop 安裝至 /usr/local/ 中。
sudo tar -zxf ~/hadoop-2.7.1.tar.gz -C /usr/local # 解壓到/usr/local中 cd /usr/local/ sudo mv ./hadoop-2.7.1/ ./hadoop # 將文件夾名改為hadoop sudo chown -R hadoop ./hadoop # 修改文件權(quán)限Hadoop 解壓后即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會(huì)顯示 Hadoop 版本信息。
cd /usr/local/hadoop ./bin/hadoop versionHadoop的環(huán)境配置使用如下命令。
vim ~/.bashrc export HADOOP_HOME=/usr/local/hadoop #在打開的文件里添加 export PATH=$PATH:$HADOOP_HOME/bin #在打開的文件里添加 source ~/.bashrc #配置好后,一定記得使用這個(gè)代碼?配置好后在終端鍵入hadoop,如果顯示信息表示成功。
6.Hadoop偽分布式配置
這里介紹偽分布的配置,如果想要分布式的配置,在文章結(jié)尾會(huì)給出參考網(wǎng)頁(yè)。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個(gè)配置文件?core-site.xml?和?hdfs-site.xml?。Hadoop的配置文件是 xml 格式,每個(gè)配置以聲明 property 的 name 和 value 的方式來實(shí)現(xiàn)。
修改配置文件?core-site.xml?(通過 gedit 編輯會(huì)比較方便:?gedit ./etc/hadoop/core-site.xml),將當(dāng)中的
<configuration>
</configuration>
修改為下面內(nèi)容,修改后記得保存。
<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://localhost:9000</value></property> </configuration>使用同樣的方式修改?hdfs-site.xml。
<configuration><property><name>dfs.replication</name><value>1</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>?配置完成后,執(zhí)行 NameNode 的格式化。
cd /usr/local/hadoop ./bin/hdfs namenode -format成功的話,會(huì)看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯(cuò)。
接著開啟 NameNode 和 DataNode 守護(hù)進(jìn)程。若出現(xiàn)如下SSH提示,輸入yes即可。
cd /usr/local/hadoop ./sbin/start-dfs.sh #start-dfs.sh是個(gè)完整的可執(zhí)行文件,中間沒有空格 ./sbin/stop-dfs.sh #關(guān)閉hdfs,不再使用hdfs后,記得關(guān)閉啟動(dòng)完成后,可以通過命令 jps?來判斷是否成功啟動(dòng),若成功啟動(dòng)則會(huì)列出如下進(jìn)程: “NameNode”、”DataNode” 和 “SecondaryNameNode”。
偽分布實(shí)例:
偽分布式讀取的是 HDFS 上的數(shù)據(jù)。要使用 HDFS,首先需要在 HDFS 中創(chuàng)建用戶目錄。
./bin/hdfs dfs -mkdir -p /user/hadoop接著將 ./etc/hadoop 中的 xml 文件作為輸入文件復(fù)制到分布式文件系統(tǒng)中,即將 /usr/local/hadoop/etc/hadoop 復(fù)制到分布式文件系統(tǒng)中的 /user/hadoop/input 中。我們使用的是 hadoop 用戶,并且已創(chuàng)建相應(yīng)的用戶目錄 /user/hadoop ,因此在命令中就可以使用相對(duì)路徑如 input,其對(duì)應(yīng)的絕對(duì)路徑就是 /user/hadoop/input。
./bin/hdfs dfs -mkdir input ./bin/hdfs dfs -put ./etc/hadoop/*.xml input ./bin/hdfs dfs -ls input#復(fù)制完成后,可以通過如下命令查看文件列表R語言安裝?
我安裝的R版本是3.4.4,因?yàn)?.5之后版本有一些兼容問題。
可以使用下面的代碼安裝。這樣安裝的版本比較舊。
sudo apt-get install r-base sudo apt-get install r-base-dev?我在使用sudo apt-get update?更新后還是只能下載舊版本,找了很久資料找到了可以安裝3.4和3.6還有4.0版本的方法。
我以我的ubuntu16.04為例。直接在命令行界面,輸入如下命令,即可快速升級(jí)到4.0最新版本。
sudo su echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu xenial-cran40/" >> /etc/apt/sources.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 apt-get update apt-get upgrade sudo apt-get install r-base如果想要下載ubuntu其他版本可以更改如下。只要修改ubuntu不同版本的別名,就像16.04別名是xenial,可以在網(wǎng)上找到這些別名。
echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu trusty-cran40/" >> /etc/apt/sources.list #Ubuntu 14.04 echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu bionic-cran40/" >> /etc/apt/sources.list #Ubuntu 18.04如果想要下載r其他版本可以更改如下。
echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu xenial-cran35/" >> /etc/apt/sources.list #R版本R 3.6 echo "deb http://www.stats.bris.ac.uk/R/bin/linux/ubuntu xenial/" >> /etc/apt/sources.list #R版本R 3.4如果下載了3.4.4版本后在后續(xù)下載r包時(shí),會(huì)顯示版本不可用,這是因?yàn)閞版本太低,r包版本高導(dǎo)致,后面會(huì)介紹如何手動(dòng)安裝合適的版本r包。
我使用的是3.4.4版本R,如果下載的是3.5版本以后的R,會(huì)出現(xiàn)無法從由R版本XX寫的工作空間版本3中讀取數(shù)據(jù);這是由于版本問題不兼容。
手動(dòng)安裝R包步驟如下。
第一步需要用wget下載R包到本地,或者使用瀏覽器下載到win下,再上傳到虛擬機(jī)。
第二步需要找到自己在服務(wù)器上安裝的R包的library庫(kù)的絕對(duì)路徑。
先進(jìn)入R交互式命令行,然后使用命令install.packages("package_name",repos = NULL),這樣可以找到library路徑。在交互中選擇n。
第三步在ubuntu終端命令行下編譯安裝R包。
R CMD INSTALL -l /path/to/your/library ?/path/to/your/downloaded/package
?RHadoop安裝?
先在終端安裝依賴庫(kù)。?
sudo apt-get install git libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev設(shè)置java配置。
sudo R CMD javareconf如果提示JAVA_HOME路徑不合適使用下面代碼。將 R 指向帶有 JDK 8 的路徑。
sudo R CMD javareconf JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162/為了安裝rhdfs和rmr2包需要進(jìn)行下面的環(huán)境配置,同樣使用vim ~/.bashrc打開。
export HADOOP_CMD=$HADOOP_HOME/bin/hadoop export HADOOP_STREAMING=$HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-2.7.1.jar export LD_LIBRARY_PATH=/usr/lib/jvm/jdk1.8.0_162/jre/lib/amd64/server這里需要注意的是權(quán)限問題,如果修改的是hadoop user 的 .bashrc 文件或者以 hadoop 身份export, 這些環(huán)境變量就只對(duì) hadoop user 有用,但是下面一個(gè)步驟需要 root 權(quán)限,所以可能需要重新在 R 里重新設(shè)置一下。
> Sys.setenv("HADOOP_CMD"="/usr/local/hadoop/bin/hadoop") > Sys.setenv("HADOOP_STREAMING"="/usr/local/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.7.1.jar") > Sys.setenv("LD_LIBRARY_PATH"="/usr/lib/jvm/jdk1.8.0_162/jre/lib/amd64/server")檢查 R 是否設(shè)置了這些環(huán)境變量,用下面命令。
> Sys.getenv("HADOOP_CMD")這里需要以 root 權(quán)限啟動(dòng)R,進(jìn)行安裝R依賴庫(kù)。
sudo R #在R中 > install.packages(c("rJava", "Rcpp", "RJSONIO", "bitops","caTools","digest", "functional", "stringr", "plyr", "reshape2"))這樣這些包就被安裝到默認(rèn)的 R 路徑下:/usr/local/lib/R/site-library?
最好將包放在路徑/usr/lib/R/
安裝 rmr2,rhdfs,由于這三個(gè)庫(kù)不能在CRAN中找到,所以需要自己下載。
https://github.com/RevolutionAnalytics/RHadoop/wiki
下載好后用下面命令安裝。
> install.packages('/home/hadoop/rmr2_3.3.1.tar.gz',repo=NULL,type="source") > install.packages('/home/hadoop/rhdfs_1.0.8.tar.gz',repo=NULL,type="source")如果提示“?fatal error: Rcpp.h: 沒有那個(gè)文件或目錄”的錯(cuò)誤,使用下面方法解決。Rcpp包問題還是很多的。在R中先刪除之前的Rcpp包。進(jìn)行下面操作后重新安裝rmr2包,需要安裝到Rcpp包同目錄下。
sudo apt-get install apt-file #先下載apt-file sudo apt-file update #執(zhí)行更新 sudo apt-file search include/Rcpp.h #查找Rcpp.h sudo apt-get install r-cran-rcpp如果提示無法修正錯(cuò)誤,因?yàn)槟竽承┸浖3脂F(xiàn)狀,就是它們破壞了軟件包間的依賴關(guān)系。
因?yàn)樗惭b軟件包依賴低版本的時(shí)候,無法升級(jí)或者降級(jí)當(dāng)前的依賴版本,由于解決不了軟件包的依賴關(guān)系,所以也就導(dǎo)致無法安裝成功。
可以采用的有效解決方法是使用?aptitude?來幫助降級(jí)解決軟件包的依賴版本,步驟如下。
使用 aptitude 安裝軟件包,安裝過程中,第一個(gè)交互提示你是否保持包版本不變,即不更新,這里輸入?n,后面的交互提示輸入?y?即可。然后重新安裝rmr2包。
sudo apt-get install -y aptitude #安裝aptitude sudo aptitude install r-cran-rcpp在R中使用library()命令加載rhdfs和rmr2包,?如果 rmr2和rhdfs都沒有問題,那么RHadoop就算安裝成功了。
分布式參考
Hadoop集群安裝配置
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Linux系统,Hadoop,R语言,RHadoop的安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常见的状态响应码
- 下一篇: linux中rpm、yum、apt-ge