完全分布式hdfs安装
一、虚拟机的安装
1.说明
使用vmware安装四台centos,分别命名为node01、node02、node03、node04
node01为上的hadoop为NameNode,node02为SecondaryNode,node03、node04为DataNode,注意此处的SecondaryNode并非NameNode的备份或从节点,它负责的是从内存持久化信息到磁盘。具体见https://www.cnblogs.com/chenyaling/p/5521464.html
2.修改主机名称(四台都需要操作)
(1).查看当前主机名称
[root@node01 ~]# hostname
(2).设置主机名称
[root@node01 ~]# hostnamectl set-hostname node01
(3).设置hosts文件
[root@node01 ~]# vi /etc/hosts
在hosts文件中加入主机名称和对应的IP地址,这样在输入IP地址的地方都可以使用主机名称代替
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.133.128 node01
172.16.133.129 node02
172.16.133.130 node03
172.16.133.131 node04
3.设置免密登录
(1).生成公钥和私钥(四台都需要操作)
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
(2).将其他几台机器的认证文件追加到node01的认证文件中,这样node01就能免密码登陆其他几台机器(NameNode节点执行即可)
$ ssh-copy-id -i ~/.ssh/id_rsa.pub node01
$ ssh-copy-id -i ~/.ssh/id_rsa.pub node02
$ ssh-copy-id -i ~/.ssh/id_rsa.pub node03
$ ssh-copy-id -i ~/.ssh/id_rsa.pub node04
(3).验证
在node01上使用ssh连接验证是否配置成功,第一次连接会有提示,输入yes即可,之后就不再需要密码
$ ssh node02
二、配置HDFS
1.安装Java和配置Java环境变量(每台都需要)
2.node01上传hadoop,并配置hadoop
进入hadoop的etc/hadoop文件夹
- 修改hadoop-env.sh 在末尾配置Java地址和角色:
export JAVA_HOME=/software/jdk1.8.0_201/
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_UESR=root
export HDFS_SECONDARYNAMENODE_USER=root
- 修改core-site.xml 主节点配置文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9820</value>
</property> //修改临时文件的存放位置,默认的/tmp临时文件夹下数据有被系统删除的风险
<property>
<name>hadoop.tmp.dir</name>
<value>/software/hadoop/full</value>
</property>
</configuration>
- 修改hdfs-site/xml从节点配置文件
<configuration>
//副本数量
<property>
<name>dfs.replication</name>
<value>2</value> </property>
//secondary namenode的地址
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:9868</value>
</property>
</configuration>
- 修改workers 从节点信息
//默认localhost,删除localhost node02 node03 node04
3.将hadoop文件分发给其他机器,这样避免每台机器都去配置hadoop文件
$ scp -r /software/hadoop-3.1.2 node02:/software/
$ scp -r /software/hadoop-3.1.2 node03:/software/
$ scp -r /software/hadoop-3.1.2 node04:/software/
4.配置hadoop环境变量
$ vi /etc/profile
在文件中加入
export HADOOP_HOME=hadoop的路径
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出后使用如下命令使其生效
$ source /etc/profile
5.在命令行中输入hdfs,如果显示hdfs相关的命令则环境变量配置成功
6.启动hdfs,在node01上执行
格式化文件系统(第一次启动需要,之后就不再需要)
$ hdfs namenode -format
启动hdfs
$ dfs-start.sh
停止hdfs
$ dfs-stop.sh