HDFS完全分布式配置
操作系统 Centos 6.5 64位
jdk jdk-8u121-linux-x64.tar.gz
hadoop hadoop-2.7.5.tar.gz
前提条件 linux系统已配置静态ip 防火墙已关闭
ip 将四个系统的ip分别更改为,以及相对应的主机名 vi /etc/sysconfig/network
并在 vi /etc/hosts文件下加上以下主机名对应的ip;
192.168.228.11 node01
192.168.228.12 node02
192.168.228.13 node03
192.168.228.14 node04
1.四台虚拟机时间已同步,配置时间的同步,运行yum命令下载时间ntp
yum install ntp -y
同步时间
运行时间服务器ntp1.aliyun.com实现时间同步
ntpdate ntp1.aliyun.com
2.实现免秘钥,node01 ->node01,node01 ->node02,node01->node03,node01 ->node04,实现node01到其他各节点不需要密码登录验证
所有节点需要执行如下命令生成密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
-t参数就是指定要生成的密钥类型,这里指定的是rsa
-P就是你提供的旧密码, ‘’ 表示没有
-f是密钥的生成后的保存文件位置
在node01节点下分别执行下面语句,实现node01到其他节点免秘钥登录
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node02
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node03
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node04
2.安裝jdk与hadoop,安装到/opt/hpe目录下
在opt目录下创建hpe文件 作为存放解压的文件目录
[root@node01 var]# cd opt/
[root@node01 opt]# mkdir hpe
[root@node01 opt]# pwd
/var/opt
解压jdk,将文件解压到指定的目录下 /opt/hpe
[root@node01 ~]# tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/hpe
将jdk的包名重新命名
[root@node01 hpe]# ls
jdk1.8.0_121
[root@node01 hpe]# mv jdk1.8.0_121/ jdk1.8.0
[root@node01 hpe]# ls
jdk1.8.0
解压hadoop,将文件解压到指定的目录下 /opt/hpe
tar -zxvf hadoop-2.7.5.tar.gz -C /opt/hpe
配置jdk与hadoop环境,打开vi /etc/profile文件在最后加上以下语句,最后还要运行source /etc/profile
export JAVA_HOME=/opt/hpe/jdk1.8.0
export HADOOP_HOME=/opt/hpe/hadoop-2.7.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
4.修改配置文件
在/opt/hpe/hadoop-2.7.5/etc/hadoop 打开 vi hadoop-env.sh文件,配置jdk的路径
在控制台输入 set nu命令可显示横数,将25横JAVA_HOME路径改成绝对路径/opt/hpe/jdk1.8.0
24 # The java implementation to use.
25 export JAVA_HOME=/opt/hpe/jdk1.8.0
打开vi mapred-env.sh 文件,将16横的路径改成绝对路径
16 export JAVA_HOME=/opt/hpe/jdk1.8.0
打开vi yarn-env.sh 文件,修改23横的绝对路径
22 # some Java parameters
23 export JAVA_HOME=/opt/hpe/jdk1.8.0
5.修改core-site.xml配置文件
需要在/hadoop-2.6.5/etc/hadoop目录下的core-site.xml文件中粘贴如下内容并修改成自己需要的配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hpe/hadoop/full</value>
</property>
第一个配置用来描述集群中NameNode结点的URI
第二个配置用来设置元数据存储的目录,注意目录是空的目录,不存在的
6.修改datenode 打开文件vi hdfs-site.xml,加入以下语句
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:50090</value>
</property>
第一个配置为设置属性需要几个副本
第二个设置SecnderNameNode的网络访问地址
7.修改slaves配置文件 打来vi slaves文本
修改里面的内容为 node02 node03 node04 要竖着写 不要加空格
8.将配置好的文件发到其他的节点上
其他三个节点没有创建hpe文件,执行2里面的步骤,创建hpe目录
9.将配置好的文件分发到其他的节点,jdk与hadoop文件目录
打开opt/hpe目录,将里面的两个解压目录hadoop与jdk的解压目录分发到其他的三个节点
分发的话需要将文件分发到与node01(现在的目录)一致的目录上
分别执行下面的三个目录,进行分发文件
scp -r hadoop-2.7.5/ node02:`pwd`
scp -r hadoop-2.7.5/ node03:`pwd`
scp -r hadoop-2.7.5/ node04:`pwd`
scp -r jdk1.8.0/ node02:`pwd`
scp -r jdk1.8.0/ node03:`pwd`
scp -r jdk1.8.0/ node04:`pwd`
pwd是当前的目录一致,(注意pwd的标点为esc键下的那个键)
最后将配配置文件profile文件分发过去,就是直接覆盖了
scp /etc/profile node02:/etc
scp /etc/profile node03:/etc
scp /etc/profile node04:/etc
在分发的节点需要运行source /etc/profile命令
10.格式化NameNode
格式化用来创建目录结构以及文件。此操作在在node1节点执行
hdfs namenode -format
11.启动HDFS
start-dfs.sh