Step1  查看每个机器的主机名和IP地址

在命令行输入ifconfig可以查看网络设备列表

设备中inet addr :后面的IP就是本机设置的IP地址

查看hadoop集群 查看hadoop集群节点ip_查看hadoop集群

使用sudo vim /etc/hostname命令来查看当前机器的主机名(如果修改主机名,需要重启以后才能生效)

查看hadoop集群 查看hadoop集群节点ip_ubuntu_02

使用ping+IP地址的命令来检查每一个节点的网络是否通畅

查看hadoop集群 查看hadoop集群节点ip_JAVA_03

修改每一个节点上的hosts,将每一个节点和IP地址加入到其中

命令行输入sudo vim /etc/hosts

查看hadoop集群 查看hadoop集群节点ip_hadoop_04

Step2  配置ssh无密码访问每台机器

在命令行输入ssh localhost ,检查ssh协议是否开启或者配置成功

查看hadoop集群 查看hadoop集群节点ip_xml_05

如果不能成功登陆,则需要安装openssh-server

然后输入ssh-keygen -t rsa -P "" ,生成密钥(期间直接按回车即可)

查看hadoop集群 查看hadoop集群节点ip_JAVA_06

在保证每一台机器都能成功登陆本地节点以后,还需要让master节点免密码登录slave节点。在master执行命令,将master的id_rsa.pub传送给其他slave节点。scp ~/.ssh/id_rsa.pub project@ccrfox143:/home/project

然后在其他节点上,可以看到已经将id_rsa.pub传入到指定目录中

查看hadoop集群 查看hadoop集群节点ip_查看hadoop集群_07

接着在slave节点上将master的公钥加入各自的节点上,在slave执行命令

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub

 

然后在master节点上输入ssh+主机名就可以免密登陆到相应的主机上,确保每一个节点的用户名保持一致,如果每一个节点的用户名不同免密登陆需要在master修改~/.ssh/config文件,如果没有该文件,创建文件,然后文本编辑添加

Host master
  user hadoop
Host slave1        //主机名
  user project    //用户名

Step3  安装JDK和Hadoop

在命令行输入sudo apt-get install default-jdk,从源获取JDK,然后输入vim ~/.bashrc,在环境变量末尾添加JAVA_HOME,然后输入source ~/.bashrc,使得修改生效。如果在Oracle上下载的JDK文件,在目录下解压,然后添加环境变量生效即可。

#JAVA_HOME
export JAVA_HOME=/home/project/jdk1.8.0_181   ##这里要注意目录要换成自己解压的jdk目录 
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

然后输入java -version检查是否配置成功

查看hadoop集群 查看hadoop集群节点ip_hadoop_08

Hadoop 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下载,一般选择下载最新的稳定版本,即下载 “stable” 下的 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的文件,下载完毕后解压即可使用。仅在master下安装即可,配置完毕之后可以将文件发送到每一个slave上。

首先进入/hadoop/etc/hadoop,这个文件夹中包含了我们配置集群需要修改的文件。

1)修改slaves,在其中写入slave的主机名

ccrfox143
ccrfox146
ccrfox150

2)修改core-site.xml

<configuration>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/home/project/hadoop-2.9.1/tmp</value>
          <description>Abase for other temporary directories.</description>
      </property>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://ccrfox140:9000</value>
      </property>
  </configuration>

3)修改hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
  </configuration>

4)修改mapred-site.xml。因为hadoop自带的只有mapred-site.xml.template,所以我们需要复制一份,重命名为mapred-site.xml,使用cp mapred-site.xml.template mapred-site.xml,然后再修改

<configuration>
   <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

5)修改yarn-site.xml

<configuration>
  <!-- Site specific YARN configuration properties -->
      <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
      </property>
      <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>ccrfox140</value>
      </property>
 </configuration>

6)修改hadoop-env.sh中的JAVA_HOME

然后将hadoop文件夹压缩打包,分发到每一个节点上面

tar -zcf hadoop.tar.gz hadoop-2.9.1/
scp hadoop.tar.gz ccrfox143:/home/project

然后在每一个节点上执行

tar -zxf hadoop.tar.gz -C /home/project/
sudo chown -R project hadoop-2.9.1/

然后再在master和slave节点上对~/.bashrc修改,添加hadoo环境变量

#Hadoop
export HADOOP_HOME=/home/project/hadoop-2.9.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

记得,在修改完后输入source ~/.bashrc

Step4 启动Hadoop集群,测试

在master节点上执行

cd /home/project/hadoop-2.9.1
bin/hdfs namenode -format
sbin/start-all.sh

测试,在master和slave节点上分别输入jps

查看hadoop集群 查看hadoop集群节点ip_ubuntu_09

查看hadoop集群 查看hadoop集群节点ip_hadoop_10

hadoop集群搭建成功~