Hadoop單機僞分佈式安裝詳解


這裏是一段防爬蟲文本,請讀者忽略。
本文原創首發於CSDN,作者IDYS
博客首頁:https://blog.csdn.net/weixin_41633902/
本文鏈接:https://blog.csdn.net/weixin_41633902/article/details/105874991


寫在開頭的話

  • 請記住:實踐是掌握知識的最快方法
  • 如果你只是懷着看看的態度去快速瀏覽文章,而不去認認真真的把文章裏面講的任何一個知識點去實踐一遍,那麼你永遠也掌握不了它
  • 生命不息,折騰不止!

前提環境準備

配置JAVA環境

將jdk安裝包傳輸至你的Linux宿主機中

  1. 將jdk安裝包傳輸到Linux當中
  • 方法一:sftp方式(當然也可以用scp,或者是xshel的xftp,還有很多其它的sftp工具都可以)
    • 在CRT裏面按住ALT+P即可進入sftp模式
    • put 你的Windows下jdk安裝包的位置,如:
      • put D:\Users\dayuanshuai\Desktop\jdk-8u212-linux-x64.tar.gz,現在即上傳文件到你的Linux當中
  • 方法二:lrzsz工具安裝
    • 在Linux中安裝lrzsz安裝包
    • 執行rz(receive)從Linux中接收客戶端文件
      • sz(send)就是從linux中發送文件到客戶端
[root@dayuanshuai java]#  yum -y install lrzsz
[root@dayuanshuai java]# rz
  • 方法三:安裝VMware工具,最後直接將jdk安裝包拖進去就ok了
    • 掛載VMware-tool的ISO文件,然後將文件複製到/usr/local 下
    • 解壓VMware壓縮包
    • 直接vmware的腳本文件,不停回車即可安裝完vmware-tool
    • 最後直接可以把jdk安裝包拖進虛擬機當中
  • 方法四:建立VMware的磁盤映射,將jdk文件傳到VMware當中
    • 這種方式即爲少見,我就不介紹了

操作jdk安裝包,然後配置java環境

  • 將jdk安裝包移動到/usr/local/java下,並且解壓
mkdir /usr/local/java 
mv jdk-8u212-linux-x64.tar.gz /usr/local/java/
tar -zxvf jdk-8u212-linux-x64.tar.gz
  • 編輯/etc/profile文件
JAVA_HOME=/usr/local/java/jdk1.8.0_212
JRE_HOME=/usr/local/java/jdk1.8.0_212/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

# 以上路徑均爲你jdk包存放的路徑
  • 重新執行profile文件

source /etc/source

  • 查看java是否安裝成功
[root@dayuanshuai ~]# java -version
java version "1.8.0_212"

[root@dayuanshuai ~]# java
用法: java [-options] class [args...]
           (執行類)
   或  java [-options] -jar jarfile [args...]
           (執行 jar 文件)
....... #省略

[root@dayuanshuai ~]# javac
用法: javac <options> <source files>
其中, 可能的選項包括:
..... #省略
  • 到此java安裝成功

配置ssh免密登錄

  1. 生成一對密鑰對,執行ssh-keygen -t rsa -b 2048命令,這時你的家目錄的.ssh目錄下就有一對rsa密鑰
  • 關於ssh-keygen命令的參數解釋
    • -t 指定加密類型
    • -b指定密碼長度
  1. 執行ssh-copy-id 用戶名@主機名命令,然後輸入對應的用戶名密碼,這時你就能實現免密登錄某臺主機對應的用戶
#最開始登錄自己主機對應的用戶是需要輸入密碼的
[root@dayuanshuai ~]# ssh [email protected]
[email protected]'s password: 
Last login: Mon Apr 27 00:19:40 2020 from 192.168.200.1
your UID=0 your home=/root

# 生成密鑰對
[root@dayuanshuai ~]# ssh-keygen -t rsa -b 2048

# 複製自己的公鑰到主機對應用戶的~/.ssh/authorized_keys裏面
[root@dayuanshuai ~]# ssh-copy-id [email protected]
#輸入主機對應用戶的密碼
[email protected]'s password: 
Now try logging into the machine, with "ssh '[email protected]'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

# 這時再次登錄,可以不用輸入主機名對應用戶的密碼了,直接免密登錄
[root@dayuanshuai ~]# ssh [email protected]
Last login: Mon Apr 27 00:33:39 2020 from dayuanshuai
your UID=0 your home=/root

安裝Hadoop,及其hadoop配置

  1. /usr/local/下創建目錄,然後再將Hadoop安裝包複製到該目錄下,之後再解壓
#在/usr/local下創建bigdata_software目錄
mkdir /usr/local/bigdata_software

# 移動hadoop安裝包到/usr/local/bigdata_software/ 下
mv hadoop-2.4.1.tar.gz /usr/local/bigdata_software/

#解壓Hadoop安裝包
tar -zxvf hadoop-2.4.1.tar.gz 
  1. /etc/profile下配置Hadoop環境
# 編輯/etc/profile文件
vim /etc/profile

HADOOP_HOME=/usr/local/bigdata_software/hadoop-2.4.1
# 前面PATH下前面的是java的配置,後面纔是Hadoop的環境配置
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 環境變量導入
export JAVA_HOME JRE_HOME CLASS_PATH HADOOP_HOME PATH
  1. 編輯Hadoop的配置文件,文件包括:core-site.xml;hdfs-site.xml;mapred-site.xml;yarn-site.xml
  • hdfs-site.xml的配置
# 配置分佈式文件系統裏面副本的備份個數,因爲此爲單機分佈式,所以配置value值爲1即可
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
  • core-site.xml 的配置
<configuration>
# fs.defaultFS配置uri,用戶唯一資源標識符
<property>
<name>fs.defaultFS</name>
<value>hdfs://dayuanshuai:9000/</value>
</property>
# hadoop.tmp.dir即可配置Hadoop裏hdfs生成的文件的存儲目錄
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/bigdata_software/hadoop-2.4.1/tmp</value>
</property>
</configuration>
  • mapred-site.xml配置
# 首先完成改名,hadoop只會識別mapred-site.xml而是不mapred-site.xml.template
cp mapred-site.xml.template mapred-site.xml

# 編輯文件
vim mapred-site.xml

<configuration>
# 配置mapreduce的資源調度框架是基於誰的
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
  • yarn-site.xml配置
<property>
# 資源調度的主機名,此處填寫你的主機名,或者localhost都可以,dayuanshuai是我的主機名
<name>yarn.resourcemanager.hostname</name>
<value>dayuanshuai</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
  • 添加Hadoop用戶,並將Hadoop目錄及其目錄下所有的子目錄文件的所屬主和所屬組全部分配給Hadoop
# 添加Hadoop組
useradd hadoop

# 分配所屬主和所屬組
chown -R hadoop:hadoop hadoop-2.4.1
  • 跳轉到hadoop用戶下,格式化namenode
su - Hadoop
hadoop namenode -format
  • 運行Hadoop
[hadoop@dayuanshuai ~]$ start-dfs.sh
[hadoop@dayuanshuai ~]$ start-yarn.sh
  • 查看運行狀態
[hadoop@dayuanshuai hadoo_tmp]$ jps
6630 DataNode
6535 NameNode
6810 SecondaryNameNode
7370 Jps
7054 NodeManager #yarn開啓
  • 查看開啓端口數量
[hadoop@dayuanshuai hadoo_tmp]$ netstat -lntp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:50010               0.0.0.0:*                   LISTEN      6630/java           
tcp        0      0 0.0.0.0:50075               0.0.0.0:*                   LISTEN      6630/java           
tcp        0      0 0.0.0.0:50020               0.0.0.0:*                   LISTEN      6630/java           
tcp        0      0 192.168.200.135:9000        0.0.0.0:*                   LISTEN      6535/java           
tcp        0      0 0.0.0.0:50090               0.0.0.0:*                   LISTEN      6810/java           
tcp        0      0 0.0.0.0:50070               0.0.0.0:*                   LISTEN      6535/java 
.... 省略

你可以通過瀏覽器進入Hadoop的50070端口查看Hadoop的使用情況

  • 訪問連接http://192.168.200.135:50070/;ip地址爲你的Hadoop的IP地址

關於安裝過程中的報錯及其解決辦法

提示信息:

WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

  • 其實就是無法加載Hadoop的本地庫文件,因爲本地庫爲32位,而我的機器,系統,包括安裝包都是64位

解決辦法:

  1. 升級依賴庫文件
yum -y update glibc
  1. 編輯/etc/profile文件,添加如下配置
HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
export HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS
  1. 編輯hadoop-env.sh文件,在末尾處添加如下文本
HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
export HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS
  1. 編輯yarn-env.sh文件,在末尾添加如下文本
HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
export HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS
  1. 上傳hadoop-native-64-2.4.0.tar文件,將其解壓到$HADOOP_HOME/lib/native/$HADOOP_HOME/lib/
tar -xvf hadoop-native-64-2.4.0.tar -C hadoop-2.4.1/lib/native/
tar -xvf hadoop-native-64-2.4.0.tar -C hadoop-2.4.1/lib/
  • 關於hadoop-native-64-2.4.0.tar文件的下載,鏈接如下:

hadoop-native-64-2.4.0.tar

hadoop-native-64-2.4.1.tar

hadoop-native-64-2.5.0.tar

hadoop-native-64-2.5.2.tar

hadoop-native-64-2.6.0.tar

hadoop-native-64-2.7.0.tar

hadoop-native-64.tar

  • 重新讀取/etc/profile文件,讓配置的環境變量生效
source /etc/profile

至此Hadoop單機僞分佈式已經全部安裝完成



寫在最後的話:

  • 無論每個知識點的難易程度如何,我都會盡力將它描繪得足夠細緻
  • 歡迎關注我的CSDN博客,IDYS’BLOG
  • 持續更新內容
    linux基礎 | 數據通信(路由交換,WLAN) | Python基礎 | 雲計算
  • 如果你有什麼疑問,或者是難題。歡迎評論或者私信我。你若留言,我必回覆!
  • 雖然我現在還很渺小,但我會做好每一篇內容。謝謝關注!

在這裏插入圖片描述


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