1,需要的軟件
虛擬機(VMWare、VirtualBox。。。)、centos、hadoop、jdk、xshell(xftp)
2,安裝虛擬機
1)安裝虛擬機軟件:我用的是VirtualBox(VirtualBox-5.1.18-114002-Win.exe),全下一步,傻瓜式安裝。
2)創建裸機:打開VirtualBox-新建-(填寫名稱、選擇系統)-全下一步,裸機安裝完成。
3)裝系統:
設置鏡像:選擇裸機-設置-存儲-添加虛擬光驅-選擇安裝鏡像文件(CentOS-7-x86_64-DVD-1511.iso)
啟動虛擬機(鼠標鎖定在虛擬機里時,點擊鍵盤上右邊的CTRL鍵釋放鼠標)-選擇語言 點繼續-軟件選擇(選擇-基礎設施服務器)點擊完成-設置ROOT密碼 ?點擊安裝
等待安裝完畢,輸入root密碼登陸成功,虛擬機安裝完畢。
3,配置網絡(虛擬機與主機連接)
虛擬機啟動以后,打開主機網絡連接能看到一個(VirtualBox Host-Only Network)-右鍵-屬性-IPv4-設置IP-確定
回到虛擬機 設置本臺虛擬機IP
執行:vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 ( “-”以后點擊TAB鍵自動補全)
編輯添加:
IPADDR=192.168.56.100
NETMASK=255.255.255.0
其他全部刪除 保存退出
設置網關
執行:vim /etc/sysconfig/network 回車
編輯添加:
NETWORKING=yes
GATEWAY=192.168.56.1
改名:ostnamectl set hostname master
重啟網絡:systemctl restart network
(ping 192.168.56.1 、在WINDOWS主機看是否能夠ping通虛擬機) 看是否連通
如果不通,檢查各項設置是否正確
4,安裝JDK與HADOOP
打開xshell-新建-填寫名稱與主機IP-確定
登陸master用戶
打開Xftp把hadoop(hadoop-2.7.3.tar.gz)、jdk(jdk-8u91-linux-x64.rpm)導入虛擬機
PS:如果xftp打開失敗,重新下載安裝一下
在虛擬機中找到jdk和hadoop的存放路徑,執行:rpm -ivhjdk-8u91-linux-x64.rpm 安裝JDK.
安裝完畢以后執行:java 命令,出現JAVA幫助信息說明安裝成功。
解壓hadoop,執行:tar -xvf?hadoop-2.7.3.tar.gz
修改hadoop-env.sh配置文件 執行:vim hadoop-env.sh
修改 export JAVA_HOME=/usr/java/default
修改hadoop-env.sh配置文件 執行:vim /etc/profile
添加 export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
執行:profile source ??執行:hadoop出現幫助信息安裝完畢
5,配置虛擬機集群
虛擬機復制三臺虛擬機改名slave1,slave2,slave3
三臺機器編輯/etc/sysconfig/network-scripts/ifcfg-enp0s3設置IP101、102、103
改名slave1,slave2,slave3
關閉防火墻 systemctl stop firewalld
systemctl disable firewalld
編輯core-site.xml
配置屬性:fs.defaultFS
hdfs://master:9000
配置/etc/hosts使機器名與IP可以同用192.168.56.101 slave1
hdfs namenode -formart
master啟動namenode:hadoop-daemon.sh start namenode
slaves啟動datanode:hadoop-daemon.sh start datanode
關閉:start換成stop
環境搭建完畢
master上執行:hdfs dfsadmin -report | more 查看集群運行情況
netstat -ntlp查看端口
9000與datanode通訊
50070對外web端口
通過http://192.168.56.100:50070 ?WEB界面觀察集群運行情況
集中管理
執行:/usr/local/hadoop/etc/hadoop
編輯文件slaves 添加集群機器名稱
master執行:start-dfs.sh啟動集群
免密鑰
小知識:ssh slave1遠程登陸slave1 exit退出回到master
根目錄下 .ssh
執行:ssh -keygen -t rsa 在.ssh下生成 id_rsa(私鑰)、id_rsa.pub(公鑰)
公鑰拷貝到slaves ? ?執行:ssh-copy-id slave1
自拷貝:ssh-copy-id master
停止集群 stop-dfs.sh
訪問hdfs
執行:hadoop fs或者hdfs dfs -ls /
文件放入HDFS:hadoop fs -put [文件名] [文件地址]
常用命令:hadoop fs -rm ? ? ? 刪除文件
-mkdir ?創建目錄
-ls ? ? ? ? 查看目錄
-text ? ? 觀察文件
配置hdfs
core-site.xml 告訴slave主機的位置
hdfs-site.xml hdfs文件系統屬性
基本配置 dfs.replicatinc 備份數量
namenode.hearbeat.recheckinterral
知識點
hdsf
namenode
? ? ? ? ? ? 數據元數據
? ? ? ? ? ? 內存存儲,不會有磁盤交換
? ? ? ? ? ? 持久化(fsimage、edits log)
? ? ? ? ? ? ? ? ? ? ? ? ? ?-不會持久化block的位置信息
? ? ? ? ? ? ? ? ? ? ? ? ? block:偏移量,因為block不可以調整大小,hdfs,不支持修改文件
? ? ? ? ? ? ? ? ? ? ? ? ? -偏移量不會改變
datanode
? ? ? ? ? ?block塊
? ? ? ? ? ?磁盤
? ? ? ? ? ?面向文件,大小一樣,不能調整
? ? ? ? ? ?副本數,調整,(備份,高可用,容錯/可以調整很多個,為了計算向數據移動)
SN
NN&DN
? ? ? ? ? ?心跳機制
? ? ? ? ? ?DN向NN匯報block信息
安全模式
client