上篇文章记录了 hadoop 搭建伪分布式的过程,用的也是是1.X版本的方式,这里记录一下全分布式的搭建
1、前期准备
- 要提前准备几台虚拟机,最少四台,我准备了四台,hostsname分别是:demo001、demo002、demo003、demo004
- 要保证每台虚拟机上都安装了jdk
- 修改虚拟机的hostname,具体改为什么都行
> 输入 vi /etc/sysconfig/network,打开文件,修改HOSTSNAME - 修改,hosts,格式是:IP (空格) 主机名
- 要确保所有虚拟机的时间同步,date -s ‘年-月-日 时:分:秒’ ,这个命令可以同步时间。
- 安全机制 确保 /etc/sysconfig/selinux 这个文件中标注值为 disabled
- firewall(防火墙)防火墙要关闭
- windows 域名映射,修改 C:\Windows\System32\drivers\etc 文件夹中的 hosts,在文件下部添加类似的格式,这样就可以通过主机名访问虚拟机了。
2、秘钥分发,免密登陆
- 每台虚拟机先登录一下自己,在 /root 目录下生成 .ssh目录,这个.ssh是隐藏的,可以使用 ll -a 查看
- 首先,现在主的虚拟机上实现免密登陆
实现免密匙登陆
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
- 然后将 将 id_dsa.pub 分发到其他虚拟机上,但是文件名要改改,防止以后被覆盖
scp id_dsa.pub demo00x:`pwd`/demo001.pub # 分发到其他虚拟机上
其他虚拟机上实现免密登陆
cat ~/.ssh/demo001.pub >> ~/.ssh/authorized_keys
3、修改配置文件
- 对于 hadoop 的环境变量二次配置上篇博客就写过了,这里不再写了,这里直接修改 core-site.xml、hdfs-site.xml、slaves 三个文件
- 配置 core-site.xml,这个文件是配置secondary namenodes这个角色
- 修改 hdfs-site.xml
- 修改 slaves ,指定那几台服务器担当子节点,也就是担当 dataNode 这一个角色
修改好主机的配置文件后,其他的虚拟机的文件也要跟这个一样,可以直接从主机上分发下去
将hadoop所在的文件目录直接发送过去,使用这个命令
scp -r hes/ demo002:`pwd` # hes/ 是目录 demo002 是接收的主机名,`pwd`代表当前目录
格式化集群 ,并启动,停止
hdfs namenode -format # 格式化
start-dfs.sh # 启动集群
stop-dfs.sh # 停止集群
如果出现以下结果表示搭建成功
启动时,出现
通过浏览器访问出现
也可以通过Jps 查看各节点进程启动情况
最后,可以在主机上创建目录
hdfs dfs -mkdir -p /user/root # 创建目录。
hdfs dfs -put path/filename /user/root # path/filename指的是所要上传的文件。
hdfs dfs -D dfs.blocksize=1048576 -put fileName /path # 上传文件,规定每一个块的大小,这里规定是1M,默认是128M