此教程可能不具有統一性,非放之四海而皆准,謹慎參考,避免罵娘!
打算學習大數據,第一步就是和Linux又打交道了,我們准備了!四台虛擬機分別為hdf-01到hdf-04。
配置思想如下圖(我自己配置的ip與圖片中的ip並不相同):

1.虛擬機與宿主機的IP設置
打開vmware的編輯下的虛擬網絡編輯器

記下子網IP與下圖的NAT設置下的網關地址。

然后打開本機上的網絡設置,VMnet8的ipv4屬性,設置IP地址。將網關設置與上圖的NAT網關相同,IP地址同意網段內隨便寫,不要重復。

2.對虛擬機的ip設置
打開虛擬機后,進入/etc/sysconfig/network-scripts/,使用 vi 編輯器打開 ifcfg-ens33文件,不同的機器下文件后的數字不盡相同,自己判斷。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #改為static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=01ad6d15-77de-46d0-9d5f-7143e7c557d4
DEVICE=ens33
ONBOOT=yes # 改為yes,可以自動啟動
IPADDR=192.168.10.149 # IP地址改為,與網關同意網段的任意地址(不能重復,不能超過255)
GATEWAY=192.168.10.2 # 網關改成ANT設置中的網關,自己添加的時候一定要注意單詞的拼寫
NETMASK=255.255.255.0 # 子網掩碼,不必多說了
DNS1=8.8.8.8 # DNS寫不寫都行吧,寫上也不費事
DNS2=114.114.114.114
NM_CONTROLLED=no
HWADDR=00:0C:29:D0:5F:CA
這些配置好后,基本上就可以ping通外網了,最后,當前的虛擬機的網絡模式要選擇好呀!如圖

成果

3.scp的使用
多個虛擬機安裝軟件的時候,比如java運行環境的安裝,一個一個的進行安裝太過於麻煩,可以安裝一個后,使當前的安裝好后的文件夾直接貼附於另一台虛擬機下。說干就干,先看安裝
yum install openssh-clients # 很簡單,一句yes就可以了
我將java的運行環境裝在了/apps/jdk8.......,想將這個目錄貼於其他主機之上運行下面的代碼
scp -r apps/ 192.168.10.146:/ #存放到了根目錄下,可以配置host文件映射,使用主機名代替IP地址
4.配置免密登陸
此處的免密登陸是從一台虛擬機到另外的幾台虛擬機,是為了hadop啟動其他的節點更為方便。首先
ssh-keygen #生成key,之后兩次回車即可
此處我在/etc/hosts文件中配置了地址映射,
192.168.10.149 hdf-01
192.168.10.148 hdf-02
192.168.10.147 hdf-03
192.168.10.146 hdf-04
如果沒有配置要使用IP地址,然后執行下面命令!
ssh-copy-id hdf-01 #雖然在hdf-01上生成了key,但是也需要在hdf-01上也來一下
..........
ssh-copy-id hdf-04 # 要輸入虛擬機登陸的密碼
5.安裝hadoop集群
在hadoop的安裝地址 /apps/hadoop-2.9.2下的etc/hadoop目錄中修改hadoop-env.sh
export JAVA_HOME=/apps/jdk1.8.0_241
修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdf-01:9000</value>
</property>
</configuration>
修改hdfs-site.xm
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/dfs/data</value>
</property>
</configuration>
配置環境變量
export JAVA_HOME=/apps/jdk1.8.0_241
export HADOOP_HOME=/apps/hadoop-2.9.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使用scp將hdf-01虛擬機下的hadoop安裝到其他機器上
scp -r /apps/hadoop-2.9.2 hdf-02:/apps
......
6.啟動HDFS
初始化namenode的元數據目錄
在hdf-01上執行命令來初始化元數據存儲目錄並啟動
hadoop namenode -format # 初始化
hadoop-daemon.sh start namenode # 啟動namenode進程
然后在windows中用瀏覽器訪問namenode提供的web端口 50070
http://hdf-01:50070 # 需要關閉centos7的防火牆
然后,啟動眾datanode們(在任意地方)
hadoop-daemon.sh start datanode
7.批量啟動腳本來啟動HDFS
配置hdf-01到所有集群中所有機器(包括自己)的免密登陸(見上方)
配置完免密,可以執行一次 ssh0.0.0.0
修改hadoop安裝目錄中 /etc/hadoop/slaves(把需要啟動datanode進程的節點列入)
hdf-01
hdf-02
hdf-03
hdf-04
在hdp-01上用腳本:start-dfs.sh 來自動啟動整個集群。如果要停止,則用腳本:stop-dfs.sh
8.hdfs常用操作命令
1.上傳到hdfs中
hadoop fs -put /本地文件 /aaa
hadoop fs -copyFromLocal /本地文件 /hdfs路徑 # copyFromLocal等價於 put
hadoop fs -moveFromLocal /本地文件 /hdfs路徑 # 跟copyFromLocal的區別是:從本地移動到hdfs中
2.下載文件到客戶端本地磁盤
hadoop fs -get /hdfs中的路徑 /本地磁盤目錄
hadoop fs -copyToLocal /hdfs中的路徑 /本地磁盤路徑 ## 跟get等價
hadoop fs -moveToLocal /hdfs路徑 /本地路徑 ## 從hdfs中移動到本地
3.在hdfs中創建文件夾
hadoop fs -mkdir -p /aaa/xxx
4.移動hdfs中的文件(更名)
hadoop fs -mv /hdfs的路徑 /hdfs的另一個路徑
5.刪除hdfs中文件或者文件夾
hadoop fs -rm -r /aaa
6.修改文件的權限
hadoop fs -chown user:group /aaa
hadoop fs -chmod 700 /aaa
7.追加內容到已存在的文件
hadoop fs -appendToFile /本地文件 /hdfs中的文件
8.顯示文本文件的內容
hadoop fs -cat /hdfs中的文件
hadoop fs -tail /hdfs中的文件
