• 准备工作
  • 装JDK
  • 修改本地计算机名
  • 修改hostname
  • 重启
  • 配置hadoop配置文件
  • 克隆虚拟机到node1
  • ssh免密登录
  • 格式化只在master
  • 启动只在master


准备工作

两台centos虚拟机:

主机

别名

192.168.0.49

master

192.168.0.53

node1

两台主机用户名都为sunpeng(听说要统一)
首先配置master主机,配置好之后clone一份系统到node1,稍微改一下就可以,这样可以最大化保持环境一致

注:如没有特别说明,则master节点和node节点配置一样


1.装JDK

我的jdk目录为:/usr/Java/jdk1.8.0_101
 配置环境变量:输入vim /etc/profile 回车

内容如下:

#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_101
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
esc键  ->  :  -> wq -> enter键)(保存并返回)

检测是否成功,输入java -version,出现jdk版本号说明成功。

2. 修改本地计算机名

>vim /etc/sysconfig/network

修改内容如下:

NETWORKING=yes
HOSTNAME=master

注:node1的为:

NETWORKING=yes
HOSTNAME=node1

3.修改网络计算机名

>vim /etc/hosts
192.168.0.49 master
192.168.0.53 node1

4.修改hostname

master节点为:

>hostnamectl set-hostname "master"

注:node1节点为: hostnamectl set-hostname “node1”

5.重启

>reboot

6.配置hadoop配置文件

  • hadoop/hadoop-env.sh
>vim /hadoop/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/java/jdk1.8.0_101
  • core-site.xml
>vim /hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml
<configuration>
<property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>
  <property>
    <name>io.sort.mb</name>
    <value>1024</value>
  </property>
</configuration>
  • hdfs-site.xml
>vim /hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
<configuration>
 <property>
    <name>dfs.data.dir</name>
    <value>/opt/hadoop/hdfs/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>
  • mapred-site.xml
>cp /hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template /hadoop/hadoop-2.6.3/etc/hadoop/mapred-site.xml
>vim /hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
<configuration>
<property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
    <final>true</final> 
</property> 
<property> 
    <name>mapreduce.jobtracker.http.address</name> 
    <value>master:50030</value> 
</property> 
<property> 
    <name>mapreduce.jobhistory.address</name> 
    <value>master:10020</value> 
</property> 
<property> 
    <name>mapreduce.jobhistory.webapp.address</name> 
    <value>master:19888</value> 
</property> 
<property>
    <name>mapred.job.tracker</name>
    <value>nistest.master:9001</value>
  </property>
</configuration>
  • yarn-site.xml
>vim /hadoop/hadoop-2.7.3/etc/hadoop/yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
    <property> 
         <name>yarn.resourcemanager.hostname</name> 
         <value>master</value> 
    </property> 
    <property> 
        <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.address</name> 
        <value>master:8032</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>master:8030</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>master:8031</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.admin.address</name> 
        <value>master:8033</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.webapp.address</name> 
        <value>master:8088</value> 
    </property> 
</configuration>
  • slaves
>vim /hadoop/hadoop-2.7.3/etc/hadoop/slaves
node1

7.克隆虚拟机到node1

环境配置先到这里了,然后克隆一份到node机器,开机之后发现跟master是一样的,修改下上面有特别说明的地方,比如hostname等等。

克隆按钮在这里,我已经克隆好了

在centos7配置hdfs centos7配置hadoop集群_hadoop

8.ssh免密登录

配置下两台机器ssh免密登录:
检查下 ~/.ssh 文件夹没有则新建

  • 在master上:
//一路狂按回车,最终生成(id_rsa,id_rsa.pub两个文件)
>ssh-keygen -t rsa 

//把id_rsa.pub 复制到192.168.0.53这台node上
>scp ~/.ssh/id_rsa.pub sunpeng@192.168.0.53:~/.ssh
  • 切换到node1(192.168.0.53 ):
//生成authorized_keys
>cat id_rsa.pub >> authorized_keys

//然后把authorized_keys scp到master
>scp ~/.ssh/authorized_keys sunpeng@192.168.0.49:~/.ssh 

//两台机器都要改
//.ssh/ 文件夹权限改为700
//authorized_keys文件权限改为600
>chmod 700 ~/.ssh
>chmod 600 ~/.ssh/authorized_keys
  • 两台主机改配置文件:
>vim /etc/ssh/sshd_config
# 禁用root账户登录,如果是用root用户登录请开启PermitRootLogin yes

# 是否允许用户自行使用成对的密钥系统进行登入行为(version 2)
PubkeyAuthentication yes

# 制的公钥数据目录 .ssh/authorized_keys 内的 RSAAuthentication yes
AuthorizedKeysFile   .ssh/authorized_keys

# 证书登录,密码登录设为no
PasswordAuthentication no
  • 启动ssh服务
>/bin/systemctl start sshd.service
  • 重启
reboot

测试是否成功:

在centos7配置hdfs centos7配置hadoop集群_集群_02


不用输密码了,直接登录进去了 ,成功,如果还提示要输入密码,那就是失败了,检查下哪里出错了。

9. 格式化(只在master)

>cd /hadoop/hadoop-2.7.3/bin/
>./hadoop namenode -format

中间会有一次 Y/N 选择,输入大写的 Y(大小写应该一样)

10.启动(只在master)

>cd /hadoop/hadoop-2.6.3/sbin
>./start-all.sh

启动之后,看下对应的程序是否启动了

  • master:

在centos7配置hdfs centos7配置hadoop集群_在centos7配置hdfs_03

master节点里,如果没有这些进程在,说明有些进程没有启动成功,检查下哪里错了

  • node1:

在centos7配置hdfs centos7配置hadoop集群_centos_04

node1数据节点里,如果没有这些进程在,说明有些进程没有启动成功,检查下哪里错了

我们这里都已经启动成功了,但是此时还不能松懈,要去log中看下是否有错误:

在centos7配置hdfs centos7配置hadoop集群_集群_05


因为这是我之前调好的,所以没有错误了。

之前在node节点中的logs出现的错误(我的已经解决找不到了,这是类似的错误):

2015-08-22 21:44:19,478 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.200:9000. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
2015-08-22 21:44:20,479 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.200:9000. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

原因是node节点中的network忘记修改了,所以node节点连接不到master。