大數據隨筆(二):虛擬機上Hadoop安裝配置(僞分佈式模式)

環境

ubuntu18.04
java1.8.0_241
hadoop2.9.2

準備工作

僞分佈式:Namenode和Datanode在一個機子上。
因爲是虛擬機模擬,所以先綁定一下ip和域名

sudo vi /etc/hosts

在文件中添加ip和綁定的域名,127.0.1.1 YARN001,如下圖:
在這裏插入圖片描述
安裝和啓動ssh

sudo apt install openssh-server
sudo service ssh start
ps -aux | grep ssh      #檢查是否成功啓動ssh

配置ssh無密碼登錄

cd ~/.ssh/                     # 若沒有該目錄,請先執行一次ssh localhost
ssh-keygen -t rsa              # 會有提示,都按回車就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授權

官網下載hadoop和java安裝包,jdk8和hadoop2.9.2

tar -xzvf jdk-8u241-linux-x64.tar.gz
tar -xzvf hadoop-2.9.2.tar.gz
mv jdk1.8.0_241 jdk1.8.0

我這裏在放在/home/bigData目錄下

配置java

打開~/.bashrc,添加行:

export JAVA_HOME=/home/ifwant/bigData/jdk1.8.0
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

使其生效

source .bashrc

安裝hadoop

修改配置文件

cd /home/ifwant/bigData/hadoop-2.9.2/etc/hadoop    #進入hadoop目錄下
  • 配置hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/hadoop/jdk1.8.0
  • 配置yarn-env.sh
#export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/hadoop/jdk1.8.0 
  • 配置core-site.xml
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://YARN001:8020</value>
        </property>
</configuration>
  • 配置hdfs-site.xml
<configuration>
        <property>
                <name>dfs.name.dir</name>
                <value>/home/ifwant/bigData/hdfs/name</value>
                <description>namenode上存儲hdfs名字空間元數據 </description>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/home/ifwant/bigData/hdfs/data</value>
                <description>datanode上數據塊的物理存儲位置</description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
                <description>副本個數,配置默認是3,應小於datanode機器數量</description>
      </property>
</configuration>
  • 配置mapred-site.xml
    重命名刪去後綴.template,有該後綴就是模板文件不會被啓用
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

  • 配置yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>

</configuration>

啓動hadoop

  • 回到目錄/home/ifwant/bigData/hadoop-2.9.2下
  • 格式化hdfs文件系統
    這個只在第一次啓動新的集羣時要做,如果是關閉重啓集羣不要做。他會清空之前的文件。
bin/hadoop namenode -format
  • 啓動namenode
sbin/hadoop-daemon.sh start namenode
  • 啓動datanode
sbin/hadoop-daemon.sh start datanode
  • 啓動yarn
sbin/start-yarn.sh

驗證是否啓動成功

  • 執行jps命令,有如下進程,說明Hadoop正常啓動
34289 DataNode
34913 Jps
34195 NameNode
34796 NodeManager
34413 ResourceManager
  • 網頁輸入yarn001:50070可以打開管理頁面

其他小記

  • 宿主機訪問頁面需要開啓的端口
  1. 50070(HDFS端口)
  2. 8099(yarn頁面端口)
  3. 50075(datanode頁面端口)
  4. 8042(作業運行過程yarn頁面查看application端口)
  • hadoop啓動和停止
sbin/start-all.sh 啓動所有的Hadoop守護進程。包括NameNode、 Secondary NameNode、DataNode、ResourceManager、NodeManager

sbin/stop-all.sh 停止所有的Hadoop守護進程。包括NameNode、 Secondary NameNode、DataNode、ResourceManager、NodeManager

sbin/start-dfs.sh 啓動Hadoop HDFS守護進程NameNode、SecondaryNameNode、DataNode

sbin/stop-dfs.sh 停止Hadoop HDFS守護進程NameNode、SecondaryNameNode和DataNode

sbin/hadoop-daemons.sh start namenode 單獨啓動NameNode守護進程

sbin/hadoop-daemons.sh stop namenode 單獨停止NameNode守護進程

sbin/hadoop-daemons.sh start datanode 單獨啓動DataNode守護進程

sbin/hadoop-daemons.sh stop datanode 單獨停止DataNode守護進程

sbin/hadoop-daemons.sh start secondarynamenode 單獨啓動SecondaryNameNode守護進程

sbin/hadoop-daemons.sh stop secondarynamenode 單獨停止SecondaryNameNode守護進程

sbin/start-yarn.sh 啓動ResourceManager、NodeManager

sbin/stop-yarn.sh 停止ResourceManager、NodeManager

sbin/yarn-daemon.sh start resourcemanager 單獨啓動ResourceManager

sbin/yarn-daemons.sh start nodemanager  單獨啓動NodeManager

sbin/yarn-daemon.sh stop resourcemanager 單獨停止ResourceManager

sbin/yarn-daemons.sh stopnodemanager  單獨停止NodeManager

sbin/mr-jobhistory-daemon.sh start historyserver 手動啓動jobhistory

sbin/mr-jobhistory-daemon.sh stop historyserver 手動停止jobhistory
  • ssh如果連接失敗可以試試下面這種配置
cd ~/.ssh
rm known_hosts #刪除現有ssh配置
ssh-keygen -t rsa #不輸入密碼(直接按三次回車)生成私鑰和公鑰
ssh-copy-id yarn001 #將公鑰發送給從節點

如果ssh建立仍然失敗,可以

sudo chmod 777 /etc/ssh/ssh_config
sudo vi /etc/ssh/ssh_config
#在最後添加這兩行
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

參考資料

https://www.cnblogs.com/limaosheng/p/10029925.html
https://www.bilibili.com/video/av46579201?p=5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章