Linux上面安裝hadoop3.2.0教程

Contents

Linux上面安裝hadoop3.2.0教程

一、安裝java并配置環(huán)境變量

linux 終端顯示光標可用 echo -e "\033[?25h" ,隱藏光標可用 echo -e "\033[?25l"

1.安裝 Java

官網(wǎng)下載最新的 [jdk]:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

勾選accept. linux環(huán)境選擇64位,下載debain版本.deb后綴或者.tar.gz后綴。我用的是.deb

  • 下載好后進入文件目錄我的在Downloads/
hadoop@機械革命:/home/jackmin/Downloads$ ls
jdk-12.0.2_linux-x64_bin.deb
  • 安裝jdk輸入命令 **dpkg -i jdk-12.0.2_linux-x64_bin.deb **

  • 安裝后不知道目錄怎么查看?

    先看dpkg 的列表里面有沒有安裝 dpkg -l jdk*

hadoop@機械革命:/home/jackmin/Documents$ dpkg -l jdk*
期望狀態(tài)=未知(u)/安裝(i)/刪除(r)/清除(p)/保持(h)
| 狀態(tài)=未安裝(n)/已安裝(i)/僅存配置(c)/僅解壓縮(U)/配置失敗(F)/不完全安裝(H)/觸發(fā)器等待(W)/觸發(fā)器未決(T)
|/ 錯誤?=(無)/須重裝(R) (狀態(tài),錯誤:大寫=故障)
||/ 名稱           版本         體系結(jié)構(gòu)     描述
+++-==============-============-============-===============================================
ii  jdk-12.0.2     12.0.2-1     amd64     Java Platform Standard Edition Development Kit

? 查看所在位置 dpkg -L jdk-12.0.2

hadoop@機械革命:/home/jackmin/Documents$ dpkg -L jdk-12.0.2
/.
/usr
/usr/lib
/usr/lib/jvm
/usr/lib/jvm/jdk-12.0.2
/usr/lib/jvm/jdk-12.0.2/release
....

? 可以知道在/usr/lib/jvm里面.完全可以一開始就創(chuàng)建一個可以讀寫(chmod)的目錄,然后安裝時指定到這個目錄 中

  • 可以進入目錄查看/usr/lib/jvm/jdk-12.0.2/
hadoop@機械革命:/usr/lib/jvm/jdk-12.0.2$ ls
bin  conf  include  jmods  legal  lib  man  release

2. 配置linux下 **java環(huán)境變量 **

打開 /etc/profile添加JAVA_HOMEM 和 JAVA_PATH 和 CLASSPATH

hadoop@機械革命:/usr/lib/jvm/jdk-12.0.2/bin$ vim /etc/profile

(如果提示沒有讀寫權(quán)限,用chmod,見前面內(nèi)容)

shift + g 迅速定位到最后一行行首,新添加一行輸入:

# 等號'='兩邊不能有空格
export JAVA_HOME=/usr/lib/jvm/jdk-12.0.2    # 根據(jù)具體路徑添加
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH   # 添加/bin  /jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_home/jre/lib        # 注意前面.: 添加/lib  /jre/lib

保存退出 :wq

為了使環(huán)境變量生效,需要進行 source /etc/profile

$ source /etc/profile
$ java -version
java version "12.0.2" 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)

Bingo!!!

二、安裝配置hadoop

1. 安裝 hadoop

結(jié)束后可在當前路徑看到生成了一個文件夾

hadoop@機械革命:~$ ls
hadoop-3.2.0  hadoop-3.2.0.tar.gz

2. hadoop 環(huán)境變量和配置

$ vim /etc/profile      # 添加hadoop_home,以及/bin;/sbin路徑
export HADOOP_HOME=/home/hadoop/hadoop-3.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/jre/bin:$PATH
$ source /etc/profile   # 使環(huán)境變量生效
  1. 查看是否安裝完成
hadoop@機械革命:~$ hadoop version
Hadoop 3.2.0
Source code repository https://github.com/apache/hadoop.git -r e97acb3bd8f3befd27418996fa5d4b50bf2e17bf
Compiled by sunilg on 2019-01-08T06:08Z
Compiled with protoc 2.5.0

ok

  1. 設(shè)置修改hadoop配置(偽分布模式)

    在原來/home/hadoop/hadoop-3.2.0/文件下 新建一個tmp文件夾,在tmp下新建兩個文件夾命名為name,data注意文件夾的權(quán)限

  • 首先修改 /etc/hadoop/core-site.xml
<configuration>
<property>
         <name>hadoop.tmp.dir</name>
         <value>file:/home/hadoop/hadoop-3.2.0/tmp</value>
         <description>Abase for other temporary directories.</description>
</property>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
</property>
</configuration>         
  • 修改 .../hadoop-3.2.0/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop-3.2.0/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-3.2.0/tmp/dfs/data</value>
</property>
</configuration>
  • 然后修改hadoop-env.sh將里面的java_home改為之前的java_home地址
JAVA_HOME=/usr/lib/jvm/jdk-12.0.2   
  • 最后修改mapred-site.xml
<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>
  • 這時候先不啟動,還沒有配置ssh

三、SSH免密登錄

1.SSH 原理簡述

  • 簡單來說,SSH是一種網(wǎng)絡(luò)協(xié)議,用于網(wǎng)絡(luò)主機之間的加密協(xié)議.

  • 使用ssh登錄的簡單流程:

    1. 用戶使用ssh user@host命令對遠程主機發(fā)起登陸;
    2. 遠程主機將自己的公鑰返回給請求主機;
    3. 請求主機使用公鑰對用戶輸入的密碼(遠程主機的密碼)進行加密;
    4. 請求主機將加密后的密碼發(fā)送給遠程主機;
    5. 遠程主機使用私鑰對密碼進行解密;
    6. 最后,遠程主機判斷解密后的密碼是否與用戶密碼一致,一致就同意登陸,否則反之。

PS:

  1. SSH不像https協(xié)議那樣,SSH協(xié)議的公鑰是沒有證書中心(CA)公證(可信第三方)的,容易遭受中間人攻擊.
  2. 對于給出的遠程主機公鑰指紋fingerprint是否可信,由用戶自己決定,

如果確信,則公鑰被接受保存在 ~ /.ssh/known_hosts 中,下次登錄該主機的時候就直接讀取known_hosts,忽略警告,當遠程主機公鑰修改了時,連接時會提醒需要刪除本地的known_hosts(見后面4.8)

  • 使用ssh免密登錄的原理是:

    根據(jù)前面的原理可以知道想登錄遠程需要生成 公私密鑰對:用 ssh-keygen -t rsa 生成密鑰對,再用ssh-copy-id -i ~/.ssh/id_rsa.pub user@host 將公鑰發(fā)給遠程主機的~/.ssh/authorized_keys里面.而登錄本機則直接用

    $ ssh-keygen -t rsa              # 會有提示,都按回車就可以
    $ cat ./id_rsa.pub >> ./authorized_keys  # 加入授權(quán)
    
  • 免密登錄簡單流程:

    1. 用戶使用ssh user@host命令對遠程主機發(fā)起登陸;
    2. 遠程主機對用戶返回一個隨機串;
    3. 用戶所在主機使用私鑰對這個隨機串進行加密,并將加密的隨機串返回至遠程主機;
    4. 遠程主機使用分發(fā)過來的公鑰對加密隨機串進行解密;
    5. 如果解密成功,就證明用戶的登陸信息是正確的,則允許登陸;否則反之。

2. SSH 免密登錄

如果你想登錄其他主機,就需要將本機生成的公鑰id_rsa.pub(私鑰為id_rsa)復(fù)制給其他主機的authorized_keys.

默認hadoop進行本機免密登錄也是需要提前將id_rsa_pub復(fù)制給本機authorized_keys

  1. 嘗試登錄localhost
hadoop@機械革命:/etc/ssh$ ssh localhost
Command 'ssh' not found, but can be installed with:
sudo apt install openssh-client

表明本機沒有安裝ssh,如果提示 ssh: connect to host localhost port 22: Connection refused,可能是沒有開啟服務(wù)等問題. 切換root用戶,如下操作:

  1. 卸載SSH
 sudo apt-get autoremove openssh-server
 sudo apt-get autoremove openssh-client
 sudo apt-get purge openssh-server # 徹底卸載ssh服務(wù)
  1. 重新安裝SSH
sudo apt-get install openssh-server 
sudo apt-get install openssh-client
  1. ssh的啟動

    查看 服務(wù)是否正確啟動 ps -ef |grep ssh

root@機械革命:/etc/ssh# ps -ef |grep ssh
jackmin   9048  8957  0 19:20 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/im-launch /usr/bin/zsh /home/jackmin/.xsession
root     16213 15077  0 23:14 tty3     00:00:00 grep --color=auto ssh

沒有出現(xiàn)上面的ssh-agent 和 sshd等內(nèi)容時,需要完全卸載重新執(zhí)行.

輸入下面命令,開啟服務(wù),之后再重新查看服務(wù)

sudo service ssh start
 * Starting OpenBSD Secure Shell server sshd                       [ok]

root@機械革命:/etc/ssh# ps -ef |grep ssh
jackmin   9048  8957  0 19:20 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/im-launch /usr/bin/zsh /home/jackmin/.xsession
root     16293     1  0 23:31 ?        00:00:00 /usr/sbin/sshd
root     16305 15077  0 23:35 tty3     00:00:00 grep --color=auto ssh

  1. 切換到ssh目錄 cd /etc/ssh/
# cd /etc/ssh/
root@機械革命:/etc/ssh#

  1. 復(fù)制導(dǎo)入公鑰,ssh連接需要公鑰認證

    root@機械革命:/home# ssh-keygen -t rsa -P ""
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa #需要輸入
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:iOego....
    $ cat  /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    
    
  2. 切換到hadoop用戶(我安裝在新建的用戶hadoop上面,如果不切換,可直接在接著上面步驟)執(zhí)行:

    進入/etc/ssh/ 修改權(quán)限并編輯sshd_config 文件,添加兩行:PubkeyAuthentication yes 以及 PermitRootLogin yes

hadoop@機械革命:/home/jackmin$ cd  /etc/ssh/ 
# 更改/etc/ssh/sshd_config權(quán)限
hadoop@機械革命:/etc/ssh$ sudo chmod ugo+rwx sshd_config
[sudo] hadoop 的密碼:
# 編輯sshd_config添加:PubkeyAuthentication yes以及PermitRootLogin yes
hadoop@機械革命:/etc/ssh$ vim sshd_config
# 重新啟動ssh服務(wù)
hadoop@機械革命:/etc/ssh$ sudo /etc/init.d/ssh restart
 * Restarting OpenBSD Secure Shell server sshd

  1. 嘗試ssh localhost

    woo!!!出現(xiàn)了這個

    hadoop@機械革命:/etc/ssh$ ssh localhost
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the ECDSA key sent by the remote host is
    SHA256:L/i20njmxWwRGPeuHi/6OeoR6yxgyG00Az8ga9/MzNI.
    Please contact your system administrator.
    Add correct host key in /home/hadoop/.ssh/known_hosts to get rid of this message.
    Offending ECDSA key in /home/hadoop/.ssh/known_hosts:1
      remove with:
      ssh-keygen -f "/home/hadoop/.ssh/known_hosts" -R "localhost"
    ECDSA host key for localhost has changed and you have requested strict checking.
    Host key verification failed.
    
    

    應(yīng)該是我之前折騰導(dǎo)入秘鑰導(dǎo)致known_hosts被更改了,根據(jù)提示先刪除, 執(zhí)行ssh-keygen -f “/hadoop/hadoop/.ssh/known_hosts" -R “l(fā)ocalhost"

    hadoop@機械革命:/etc/ssh$ sudo ssh-keygen -f "/home/hadoop/.ssh/known_hosts" -R "localhost"
    # Host localhost found: line 1
    /home/hadoop/.ssh/known_hosts updated.
    Original contents retained as /home/hadoop/.ssh/known_hosts.old
    
    

    9.再次運行ssh localhost 提示需要輸入密碼hadoop@localhost's password: 按ctrl+c 然后exit退出剛才的ssh服務(wù),進入/.ssh cd ~/.ssh 然后 ssh-keygen -t rsa 然后按幾下回車.

    $ ssh-keygen -t rsa              # 會有提示,都按回車就可以
    $ cat ./id_rsa.pub >> ./authorized_keys  # 加入授權(quán)
    
    

運行ssh localhost 輸入yes

    10. 這里還要修改相應(yīng)的ssh文件權(quán)限,有的沒有讀寫權(quán)利Stopping secondary namenodes [機械革命]

機械革命: Failed to add the host to the list of known hosts (/home/hadoop/.ssh/known_hosts)

修改/home/hadoop/.ssh權(quán)限和 /home/hadoop/.ssh/known_hosts

hadoop@機械革命:~/hadoop-3.2.0/sbin$ sudo chmod 644 ~/.ssh/known_hosts
hadoop@機械革命:~/hadoop-3.2.0/sbin$ sudo chmod 755 ~/.ssh

執(zhí)行ssh localhost成功

四、啟動hadoop

1. namenode格式化

$ hdfs namenode -format

因為我們配置 hadoop.tmp.dir 參數(shù),并不是默認使用的 /tmp/hadoo-hadoop 執(zhí)行一次格式化即可以后不用了,如果沒有配置,則每次系統(tǒng)重啟后都需要 -format

2. 啟動NameNode,DataNode daemon進程

$ start-dfs.sh

一般不建議直接 start-all.sh 應(yīng)該先啟動hdfs再依次啟動其他的構(gòu)件.

3. 查看是否成功啟動hadoop

$ jps
7061 Jps
3174 NameNode
3593 SecondaryNameNode

再從瀏覽器輸入:http://localhost:9870 回車即可看到一片綠~

轉(zhuǎn) 載 注 明 出 處 謝 謝!!! ^ _ ^

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內(nèi)容