Hadoop集群搭建(CentOS7 + Hadoop2.7.6)

一、准备事项:
1、Centos7-x64 2、VMware 3、Hadoop-2.7.6 4、jdk-linux-1.8

二、虚拟机中安装Centos7
这部分不再讲解,注意的是电脑需要再BIOS中开启支持虚拟化,安装时勾选图形界面,设置用户名为Hadoop,密码也设置为Hadoop。root账户密码设置为123456(这里可以根据需要自行设置,确保能记住密码就行)

三、修改网络配置
1、修改虚拟机网络配置

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

2、打开VMWare -编辑-虚拟网络编辑器

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

3、记录本地IP

点击NAT设置显示如下图

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

点击DHCP设置显示如下图

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

记录自己IP地址的范围和网关IP

4、集群对应IP与主机名

第三个步骤已经知道本地IP范围(128-255),所以集群对应的IP只需在此范围内即可

我们采用4台机子,注意现在只需要配好一台,后面再进行克隆操作可以减少很多重复操作。

主机名 ip 对应角色

master 192.168.32.130 NameNode

slave1 192.168.32.131 DataNode

slave2 192.168.32.132 DataNode

slave3 192.168.32.133 DataNode

四、修改CentOS7的网络配置文件
1、打开CentOS中终端
执行如下命令 cd /etc/sysconfig/network-scripts
输入 ls ,显示如下

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

2、修改ifcfg-ens33文件(有的显示是ifcfg-eth0)
执行 sudo vim ifcfg-ens33
修改内容:

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

或许你还不会使用vim,点击“i”进入输入模式,编辑完成后按Esc退出编辑模式
然后按ZZ(连续按两次大Z,按住shift+z)保存并退出。
说一下其他简单命令:
非编辑模式下 :
输入 u 执行撤销操作
输入:q! 强制退出不保存
输入:qw 强制保存并退出

4、修改主机名与对应ip
执行 sudo vim /etc/hosts 修改为如下:(对应你自己设置的ip与主机名)

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

五、安装Java与hadoop
1、将下载的jdk与hadoop放入到usr目录的“local”文件夹内
2、cd 下载 执行 sudo tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local
此操作会解压hadoop到/usr/local 目录下
3、同理执行 sudo tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local
会解压jdk到对应目录下
4、配置jdk与hadoop的环境变量
执行 sudo vim /etc/profile
在文件底部添加:

#JDK
export JAVA_HOME=/usr/local/jdk1.8.0_161  //你jdk的目录
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#Hadoop
export HADOOP_HOME=/usr/local/hadoop-2.7.6  //hadoop的目录
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

六、关闭防火墙:
1、切换到root账户 输入 su root

2、关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙
关闭防火墙:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

3、禁止开机启动
执行 sudo vim /etc/selinux/config
修改参数 SELINUX=disabled

七、克隆虚拟机、
1、在关机状态下,另外克隆出3个虚拟机

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

2、修改每个虚拟机对应的网络配置文件
执行sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
3、修改每个虚拟机用户名
方式一:
切换到root用户 每个终端分别执行(注意:每台机子执行对应的命令)

master中执行 echo master > /etc/hostname

slave1中执行  echo slave1 > /etc/hostname

slave2中执行  echo slave2 > /etc/hostname

slave2中执行  echo slave2 > /etc/hostname

方式二:
或者修改/etc/hostname为对应的主机名也可以
执行 sudo vim /etc/hostname
添加主机名在该文件中

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

4、然后ping一下是否能互通(可能需要重启一下)
显示如下则可以了

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

八、配置SSH免密码登录
在用户根目录下配置SSH免密码登陆
1、生成密钥,并拷贝在各主机上,master主机上执行以下命令:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3

2、测试主机之间登陆需要密码

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

九、配置集群:
进入hadoop目录 /usr/local/hadoop-2.7.6
创建如下目录:

mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data

在/usr/local/hadoop-2.7.6/etc/hadoop目录下修改如下文件:
1、core-site.xml

<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
   </property>
   <property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/local/hadoop-2.7.6/tmp</value>
   </property>
</configuration>

2、hdfs-site.xml

<configuration>
    <property>
     <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop-2.7.6/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop-2.7.6/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
</configuration>

3、mapred-site.xml (目录找不到 需要将mapred-site.xml.template进行拷贝重命名)
执行sudo cp mapred-site.xml.template mapred-site.xml

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

4、yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</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.address</name>
        <value>master:8032</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>

5、slaves

slave1
slave2
slave3

6、hadoop-env.sh中设JAVA_HOME

修改/etc/hadoop/hadoop-env.sh中设JAVA_HOME。
应当使用绝对路径。

export JAVA_HOME=$JAVA_HOME                                           //错误,不改会报错

export JAVA_HOME=/usr/local/jdk1.8.0_161        //正确,应该这么改

十、远程分发到各主机上
我们只需
进入/usr/local 目录
将整个hadoop-2.7.6 复制到 其他三台机器上
$PWD 是当前的目录,意思是将 hadoop-2.7.6整个文件夹复制到slave1、slave2、slave3 相同路径下

sudo scp -r  hadoop-2.7.6/ slave1:$PWD
sudo scp -r  hadoop-2.7.6/ slave2:$PWD
sudo scp -r  hadoop-2.7.6/ slave3:$PWD

十一、启动集群
1、格式化文件系统

hadoop namenode -format

2、启动dfs 服务和yarn 服务

start-dfs.sh
start-yarn.sh

3、验证是否启动成功
如下图:

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

如果你也这样显示,那么恭喜你集群搭建成功。

十二、进入管理页
1、浏览器输入master:8088

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

2、浏览器输入master:50070

《Hadoop集群搭建(CentOS7 + Hadoop2.7.6)》 image.png

十三、在win下访问
需要修改hosts文件将主机名和对应IP地址添加在里面

3、测试
创建linux 文件目录: mkdir ~/hadoopinputfile

创建hadoop hdfs input目录: bin/hadoop fs -mkdir /input

查看hadoop hdfs : bin/hadoop fs -ls /

上传文件到hdfs input目录: bin/hadoop fs -put ~/hadoopinputfile/* /input

查看hadoop hdfs input目录 : bin/hadoop fs -ls /input

运行hadoop自带的wordcount: bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /input /output

查看hdfs输出文件夹: bin/hadoop fs -ls /output

查看hdfs输出文件内容: bin/hadoop fs -cat /output/part-r-00000

好啦,恭喜你集群搭建成功了,如有问题欢迎留言!。

    原文作者:后五楼
    原文地址: https://www.jianshu.com/p/ed6628ed6c36
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞