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