Hadoop集群搭建

目录

前言:

 一、虚拟机安装与配置

1、下载镜像文件

2、安装Vmware

3、创建虚拟机

4、设置固定IP

5、修改VMware虚拟机配置

二、Xshell安装与使用

1、下载安装Xshell

2、连接虚拟机

3、安装软件

三、安装Java

1、下载JDK

2、安装JDK

四、搭建Hadoop集群

1、下载安装Hadoop

2、修改Hadoop配置文件

core-site.xml配置

hadoop-env.sh配置

hdfs-site.xml配置

mapred-env.sh配置

mapred-site.xml配置

slaves配置

yarn-env.sh配置

yarn-site.xml配置

设置环境变量

3、虚拟机克隆

4、配置SSH免密码登陆

5、配置ntp时间同步服务&格式化

五、集群的启动和关闭

启动集群:

关闭集群:


前言:

本文主要介绍linux操作环境下Hadoop的安装与配置,相关软件包信息如下:

  • 操作系统:Centos6.8;
  • JDK:1.7+版本;
  • Vmware:10;
  • Hadoop:2.6.4版本;
  • SHH连接工具:Xshell7;

 一、虚拟机安装与配置

1、下载镜像文件

Centos官网:https://www.centos.org/download/

Centos6.8下载网址:https://vault.centos.org/6.8/isos/x86_64/

下载步骤:进入Centos官网,点击alternative downloads 进入跳转页面,在Archived Versions中选择版本6.8,点击右侧Tree,在列表中选择ios/进入,点击x86_64/进入,选择:CentOS-6.8-x86_64-bin-DVD1.iso文件下载;

2、安装Vmware

参考文章:http://www.zhanshaoyi.com/8118.html

3、创建虚拟机

步骤:

  • 打开VMware;点击“创建新的虚拟机”;选择“典型(推荐)(T)”;选择“稍后安装操作系统”;客户机操作系统选择“Linux(L)”,版本(V)选择“CentOS 6 64位”;虚拟机名称(V)填写“master”,位置(L)选择一个新文件夹存储;最大磁盘大小(GB)(S)选择20G,选择将虚拟磁盘拆分成多个文件(M);点击自定义硬件,点击新 CD/DVD(IDE)自动检测,选择使用ISO映像文件(M),选择前面已下载好的文件:CentOS-6.8-x86_64-bin-DVD1.iso文件;点击关闭,点击完成;
  • 点击“开启此虚拟机”,选择第一个选项“Install or upgrade an existing system”(注意:使用 Crtl+Alt 快捷键可在虚拟机和个人电脑间切换),输入Enter开始安装;在“Choose Skip to skip the media test and start the installation ”选择“Skip”(按上下左右键切换后Enter);安装语言选择“English”,系统语言选择“U.S.English”;选择“Basic Storage Devices”;勾选“Accept my choise to all devices with undetected partitions or filesystems”,选择“Yes,discard any data”;
  • Hostname设置为master.centos.com(该步骤设置主机名,需记住主机名称,以便后续修改配置文件);
  • 时区选择“Asia/Shanghai”,勾选“System clock uses UTC”;Password输入123456(会提示为弱密码,选择Use Anyway);选择“Use all Space”,底下“Encrypt system”、“Review and modify partitioning layout”这两个选项均不勾选;选择“Write changes to disk”;选择“Minimal”,勾选“CentOS”,选择“Customize later”;点击“Reboot”重启虚拟机;
  • 用户名输入:root;密码输入:123456(linux下输入密码时不展示密码),登陆虚拟机;

4、设置固定IP

  • 输入:ifconfig 查看IP,inet addr显示IP为127.0.0.1;
  • 输入:service network restart 以重启网络;
  • 输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改配置文件:DEVICE为设备名,HWADDR为网卡地址,ONBOOT为设置系统启动时是否激活网卡,BOOTPROTO为网卡绑定时所使用的协议;修改内容:ONBOOT由no改为yes(使用虚拟机时需连接网卡),BOOTPROTO由dhcp改为static(使用静态协议),在底下添加:IPADDR(I要设置的固定IP)、NETMASK(子网掩码)、GATEWAY(网关)、DNS1(和网关的IP一致);
  • 再次输入:service network restart 以重启网络;

注意:使用vi 命令对文件进行修改时,输入 i 开始编辑文件;编辑完成后按Esc键退出编辑;输入英文 : 后输入wq保存文件并退出;参考配置如下图所示:

DEVICE=eth0
HWADDR=00:0C:29:82:E2:96
TYPE=Ethernet
UUID=923f1922-5e57-4938-98b3-6ebd63eea97a
ONBOOT=yse
NM_CONTROLLED=yes
BOOTPROTO=static

IPADDR=192.168.128.130
NETMASK=255.255.255.0
GATEWAY=192.168.128.2
DNSI=192.168.128.2

5、修改VMware虚拟机配置

  • 点击编辑-虚拟机网络编辑器,子网IP(I)由192.168.222.0修改为192.168.128.0
  • 点击NAT设置(S),网关IP(G)由192.168.222.2修改为192.168.128.2
  • 点击DHCP设置(C),开始IP地址(S)由192.168.222.128修改为192.168.128.128,结束IP地址(S)由192.168.222.254修改为192.168.128.128 

二、Xshell安装与使用

1、下载安装Xshell

地址:https://www.netsarang.com/zh/free-for-home-school/

2、连接虚拟机

使用快捷键 Alt+N 新建会话,主机:输入虚拟机对应IP,这里填:192.168.128.130

用户身份验证:输入用户名root和密码123456,点击确定,新建会话;

3、安装软件

运行命令:cd /etc/yum.repos.d/ 进入yum.repos.d目录,运行ls查看当前目录下文件,修改CentOS-Base.repo、CentOS-Debuginfo.repo、CentOS-fasttrack.repo、CentOS-Vault.repo这4个文件,再次执行ls命令查看是否已经修改:

cd /etc/yum.repos.d/
ls
mv CentOS-Base.repo CentOS-Base.repo.bak  
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak  
mv CentOS-fasttrack.repo CentOS-fasttrack.repo.bak  
mv CentOS-Vault.repo CentOS-Vault.repo.bak
ls

运行命令:vi CentOS-Media.repo 修改文件,输入 i 进入编辑模式,baseurl(下载软件位置)提供了三个,只保留第一行,将其改为file:///media/;gpgcheck(是否检查更新)设置为0;enabled(是否从该位置安装软件包)设置为1;按Esc退出编辑,输入:后键入wq保存修改并退出;

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

返回虚拟机VMware,右键-设置-CD/DVD(IDE)-设备状态 勾选已连接;

返回Xshell,运行命令:mount /dev/dvd /media(把/dev/dvd下的信息挂载到根目录下的media文件夹,注意:dvd后需输入空格)

挂载成功后,运行命令:yum clean all 更新yum源;

下载安装软件包,运行命令:yum install -y vim zip openssh-server openssh-clients

三、安装Java

1、下载JDK

进入oracle网站:https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

选择Java SE7,下载文件:jdk-7u80-linux-x64.rpm

2、安装JDK

在Xshell上新建文件传输(Ctrl+Alt+F),右侧窗口输入 /opt 后enter,左侧选择文件jdk-7u80-linux-x64.rpm,右键点击传输;传输完成后,在Xshell连接窗口输入命令:cd /opt 进入opt目录,输入命令ls可看到传输进来的文件:jdk-7u80-linux-x64.rpm;

输入命令:rpm -ivh  jdk-7u80-linux-x64.rpm 进行java的安装;

输入命令:java -version 查看是否安装成功;

查看java安装位置:cd /usr/java  执行ls 可看到安装位置:jdk1.7.0_80,即java的安装路径为:/usr/java/jdk1.7.0_80

四、搭建Hadoop集群

1、下载安装Hadoop

Hadoop下载网址1:https://archive.apache.org/dist/hadoop/common/

Hadoop下载网址2:http://archive.apache.org/dist/hadoop/core/

选择版本2.6.4,下载文件:hadoop-2.6.4.tar.gz

在Xshell上新建文件传输(Ctrl+Alt+F),右侧窗口输入 /opt 后enter,左侧选择文件hadoop-2.6.4.tar.gz,右键点击传输;传输完成后,在Xshell连接窗口输入命令:cd /opt 进入opt目录,输入命令ls可看到传输进来的文件:hadoop-2.6.4.tar.gz

输入命令:tar -zxf hadoop-2.6.4.tar.gz -C /usr/local/ 解压缩文件至/usr/local/目录下;

2、修改Hadoop配置文件

输入命令:cd /usr/local/hadoop-2.6.4/etc/hadoop/

运行ls,可看到各个配置文件,需要进行配置;

core-site.xml配置

输入命令:vi core-site.xml

输入i进入编辑模式,在<configuration>、</configuration>之间编辑:设置hadf系统命名为fs.defaultFS;设置主机名(与主节点名称保持一致);设置hadoop临时文件路径为/var/log/hadoop/tmp;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

<configuration>
<property>
<name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
        </property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
</property>
</configuration>

hadoop-env.sh配置

输入命令:vi hadoop-env.sh

输入i进入编辑模式,修改JAVA_HOME为java的安装路径:/usr/java/jdk1.7.0_80;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;通过此步骤设置Hadoop的运行环境;

export JAVA_HOME=/usr/java/jdk1.7.0_80

hdfs-site.xml配置

输入命令:vi hdfs-site.xml

输入i进入编辑模式,在<configuration>、</configuration>之间编辑:设置namenode数据存放路径为file:///data/hadoop/hdfs/name;datanode数据存放的路径为file:///data/hadoop/hdfs/data;secondary namenode地址为主节点的50090端口,此处主节点设置为master(注意主节点需更改为自己的主节点);设置文件存放备份数dfs.replication为默认值3,即一个文件默认保存3份;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

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

mapred-env.sh配置

输入命令:vi mapred-env.sh

输入i进入编辑模式,在# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 这一句下面添加JAVA_HOME的路径:export JAVA_HOME=/usr/java/jdk1.7.0_80;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;通过此步骤设置mapreduce运行环境;

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/usr/java/jdk1.7.0_80

mapred-site.xml配置

输入命令:cp mapred-site.xml.template mapred-site.xml 进行文件拷贝;

输入命令:vi mapred-site.xml 

输入i进入编辑模式,在<configuration>、</configuration>之间编辑:设置mapreduce运行框架为yarn;设置任务日志地址mapreduce.jobhistory.address为主节点的10020端口,此处主节点设置为master(注意主节点需更改为自己的主节点);设置日志服务地址为主节点的19888端口;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<!-- jobhistory properties -->
<property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
</property>
<property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
</property>
</configuration>

slaves配置

输入命令:vi slaves

输入i进入编辑模式,删除localhost,输入各个子节点名称,此处输入slave1、slave2、slave3(各占一行);修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;通过此步骤设置了子节点;

slave1
slave2
slave3

yarn-env.sh配置

输入命令:vi yarn-env.sh

输入i进入编辑模式,在# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 这一句下面添加JAVA_HOME的路径:export JAVA_HOME=/usr/java/jdk1.7.0_80;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;通过此步骤设置yarn运行环境;

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/usr/java/jdk1.7.0_80

yarn-site.xml配置

输入命令:vi yarn-site.xml

输入i进入编辑模式,在<configuration>、</configuration>之间编辑:设置resourcemanager位置在主节点;设置resourcemanager地址在主节点8032端口上;设置调度器地址在主节点8030端口等;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

<configuration>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>
<property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/data/hadoop/yarn/local</value>
</property>
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
<property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/data/tmp/logs</value>
</property>
</configuration>

设置环境变量

输入命令:vi /etc/profile

输入i进入编辑模式,在底下添加JAVA_HOME、HADOOP_HOME路径,并添加至系统路径PATH(使用美元符号$指定变量,路径与路径之间用:分隔),修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

退出之后输入命令:source /etc/profile 使前面的修改生效;

export JAVA_HOME=/usr/java/jdk1.7.0_80
export HADOOP_HOME=/usr/local/hadoop-2.6.4
export PATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin

3、虚拟机克隆

关闭master虚拟机,右键-管理-克隆-克隆至虚拟机的当前状态(C)-创建完整克隆(F),虚拟机名称命名为slave1;使用同样方式克隆出虚拟机slave2、slave3;

进入虚拟机slave1,输入用户名root,密码123456;

运行命令:rm -rf /etc/udev/rules.d/70-persistent-net.rules 删除文件;

运行命令:ifconfig -a 查看硬件地址Hwaddr和网卡设备,截图记录;

运行命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0

输入i进入编辑模式,DEVICE由eth0修改为eth1(参考截图,多数为eth1);修改Hwaddr(与截图保持一致);将UUID这一行注释掉;将IPADDR地址由130改为131;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

DEVICE=eth1
HWADDR=00:0C:29:11:14:C5
TYPE=Ethernet
##UUID=923f1922-5e57-4938-98b3-6ebd63eea97a
ONBOOT=yse
NM_CONTROLLED=yes
BOOTPROTO=static

IPADDR=192.168.128.131
NETMASK=255.255.255.0
GATEWAY=192.168.128.2
DNSI=192.168.128.2

运行命令:vi /etc/sysconfig/network 

输入i进入编辑模式,HOSTNAME由master.centos.com修改为slave1.centos.com;修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

NETWORKING=yes
HOSTNAME=slave1.centos.com

运行命令:reboot 重启虚拟机slave1;

重启slave1虚拟机后,输入root及密码123456登陆;输入ifconfig查看IP是否已更改;

对虚拟机slave2、slave3使用同样的方式进行修改;注意slave2的IPADDR需改成132,slave3的IPADDR需改成133;

重启slave1、slave2、slave3后,使用Xshell新建连接会话分别连接slave1、slave2、slave3;

4、配置SSH免密码登陆

在Xshell主节点master会话中输入命令:ssh-keygen -t rsa 连续按三次Enter键,生成公钥和私钥;

输入命令:cd /root/.ssh/  执行ls可看到公钥和私钥;

输入命令: vi /etc/hosts 

输入i进入编辑模式,可看到映射关系如下图所示,此映射关系可删除也可保留;

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

在映射关系下方添加新映射:节点IP、节点名称、主机名(分别输入主节点和子节点的IP、节点名称、主机名;需要根据自己的节点和主机名设置);修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.128.130 master master.centos.com
192.168.128.131 slave1 slave1.centos.com
192.168.128.132 slave2 slave2.centos.com
192.168.128.133 slave3 slave3.centos.com

在Xshell子节点slave1会话中输入命令:vi /etc/hosts 修改子节点文件;

192.168.128.130 master master.centos.com
192.168.128.131 slave1 slave1.centos.com
192.168.128.132 slave2 slave2.centos.com
192.168.128.133 slave3 slave3.centos.com

同样的对子节点slave2、slave3进行修改;

返回主节点连接,输入命令:ssh-copy-id -i /root/.ssh/id_rsa.pub master将公钥传到master节点上(会提示是否连接,输入yes,输入密码123456)

输入命令:ssh-copy-id -i /root/.ssh/id_rsa.pub slave1将公钥传到slave1节点上

输入命令:ssh-copy-id -i /root/.ssh/id_rsa.pub slave2将公钥传到slave2节点上

输入命令:ssh-copy-id -i /root/.ssh/id_rsa.pub slave3将公钥传到slave3节点上

在master节点输入ssh slave1进入slave1节点;输入exit退出;

在master节点输入ssh slave2进入slave2节点;输入exit退出;

在master节点输入ssh slave3进入slave3节点;输入exit退出;

由这三步检测可知无密码登陆已经设置成功;

5、配置ntp时间同步服务&格式化

在主节点master上运行命令:mount /dev/dvd /media(把/dev/dvd下的信息挂载到根目录下的media文件夹,注意:dvd后需输入空格)

输入命令:yum -y install ntp 下载ntp(结果出现Complete表明下载成功)

在子节点slave1、slave2、slave3节点执行同样操作,挂载yum源并下载安装ntp;

在主节点输入命令:vim /etc/ntp.conf

输入i进入编辑模式,将底下server开头的行注释掉,输入如图所示信息,修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

在子节点slave1输入命令:vim /etc/ntp.conf

输入i进入编辑模式,将底下server开头的行注释掉,输入:server master,修改完成后按Esc退出编辑,输入: 后键入wq保存修改并退出;

对slave2、slave3执行同样操作;

在主节点和各个子节点输入命令:service iptables stop & chkconfig iptables off

该命令作用是:永久关闭防火墙

在主节点上输入命令:service ntpd start & chkconfig ntpd on

该命令作用是:启动ntp服务;并设置为永久启动;

在子节点slave1输入命令:ntpdate master 

该命令进行时间同步,同样的在slave2、slave3执行ntpdate master 

在每个子节点上输入命令:service ntpd start & chkconfig ntpd on

注意:需按顺序执行;

在主节点上执行命令:hdfs namenode -format 进行格式化

若看到输出:

INFO commom.Storage:Storage directory /data/hadoop/hdfs/name has been successfully formatted.

则证明集群配置成功,否则需返回对每个节点的配置文件检查并修改后重新格式化;(根据失败提示可定位到配置文件)

五、集群的启动和关闭

启动集群:

输入命令:cd /usr/local/hadoop-2.6.4/sbin  通过ls查看该目录下文件;

输入命令:./start-dfs.sh 启动dfs;

输入命令:./start-yarn.sh 启动yarn框架服务;

输入命令:./mr-jobhistory-daemon.sh start historyserver 启动history服务;

在主节点、子节点上执行命令:jps 查看已开启的服务;

正常情况下,主节点应该有:SecondaryNameNode、ResourceManager、NameNode、JobHistoryServer、Jps服务;子节点应该有:NodeManager、Jps、DataNode服务;若没有这些服务,可能配置有问题或时间未同步导致部分节点未启动,需返回检查配置;

关闭集群:

集群的关闭不能直接关闭虚拟机,需要按指定顺序关闭集群服务;

在主节点上输入命令:./stop-yarn.sh 关闭yarn框架;

输入命令:./stop-dfs.sh 关闭dfs的NameNode、DataNode及SecondaryNameNode;

输入命令:./mr-jobhistory-daemon.sh stop historyserver 关闭history服务;

输入命令:jps 查看是否已关闭集群服务;

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值