CentOS7 下搭建hadoop集群

1.准备虚拟机:

#yum upgrade 升级系统 慎用,装的是 7.2 升级后变成 7.6
yum install net-tools  #ifconfig模块
yum install vim

2 修改为静态ip,修改网卡信息(克隆机)

#查看网卡信息
ip addr

#修改 /etc/sysconfig/network-scripts/ 中 ifcfg-eno16777736 文件 名为ip addr 显示的网卡名
mv  ifcfg-eno16777736  ifcfg-ens33

#进入/etc/udev/rules.d/这个目录,删除文件70-persistent-ipoib.rules
rm -f 70-persistent-ipoib.rules

# 删除配置文件中的UUID那一行,并添加以下内容
vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR0=192.168.1.102  //注意这里为IPADDR0
PREFIX0=24
GATWAY0=192.168.1.2
DNS1= 192.168.1.2

并修改 NAME和 DEVICE为 ens33

reboot

(非克隆机) 修改IP地址:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

需要修改的内容有5项:
IPADDR=192.168.1.101
GATEWAY=192.168.1.2 
ONBOOT=yes
BOOTPROTO=static
DNS1=192.168.1.2
   
注意:这里如果不配DNS1会导致ping 不通外网的域名

#修改主机名
hostnamectl --static set-hostname hadoop102
reboot

4.修改虚拟机映射

vim /etc/hosts

5.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

6.重启主机查看修改是否生效

reboot

7.创建用户并授予root权限

adduser -d /home/atguigu -m atguigu

vim /etc/sudoers

passwd atguigu 

8.在用户下创建module,software文件

mkdir module
mkdir software

9.安装jdk

rpm -qa|grep java  #查看是否安装 

rpm -e 软件包  #卸载软件

tar -zxf jdk-7u79-linux-x64.gz -C /opt/module


vim /etc/profile
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

source   /etc/profile

10.安装hadoop

tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
vim /etc/profile


##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

source /etc/profile

11.配置集群

core-site.xml

        <!-- 指定HDFS中NameNode的地址 -->
       <property>
              <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:9000</value>
       </property>
       <!-- 指定hadoop运行时产生文件的存储目录 -->
       <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/module/hadoop-2.7.2/data/tmp</value>
       </property>

hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144
export HADOOP_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop

hdfs-site.xml

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

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop104:50090</value>
</property>

yarn 配置 (yarn-env.sh)

export JAVA_HOME=/opt/module/jdk1.8.0_144

yarn-site.xml

<!-- reducer获取数据的方式 -->
       <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
       </property>
 
       <!-- 指定YARN的ResourceManager的地址 -->
       <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>hadoop103</value>
       </property>

mapreduce 配置文件

mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

mapred-site.xml

cp mapred-site.xml.template mapred-site.xml


<!-- 指定mr运行在yarn上 -->
 <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
 </property>

slaves

hadoop102
hadoop103
hadoop101

12.编写集群分发脚本

注意:此脚本放在环境变量中才是全局有效的,例如:

$PATH

/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/module/jdk1.8.0_144/bin:/opt/module/hadoop-2.7.2/bin:/opt/module/hadoop-2.7.2/sbin:/usr/atguigu/bin

脚本放在 /usr/atguigu/bin 目录下是全局有效的

touch xsync

yum -y install rsync

xsync

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi


#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname


#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir


#4 获取当前用户名称
user=`whoami`


#5 循环同步
for((host=101; host<104; host++)); do
        echo --------------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

13.修改执行权限

chmod 755 xsync

14.分发数据

xsync /opt/module/hadoop-2.7.2/

15.配置集群ssh免密登录

cd ~
mkdir .ssh
cd ~/.ssh


ssh-keygen -t rsa
ssh-copy-id hadoop101
ssh-copy-id hadoop102
ssh-copy-id hadoop103

16.NameNode  格式化

 bin/hdfs namenode -format

17.启动集群

start-dfs.sh
start-yarn.sh

18.集群时间同步

配置时间服务器

rpm -qa|grep ntp  #查看ntp 是否安装
yum install ntp ntpdate -y #安装ntp服务器
vim /etc/ntp.conf


# 1.设置本地网络上的主机不受限制
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap


#2.不使用公共的服务器
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为
#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


#3.( 添加默认的一个内部时钟数据,使用它为局域网用户提供服务。)
server 127.127.1.0
fudge 127.127.1.0 stratum 10


vim  /etc/sysconfig/ntpd
#让硬件时间与系统时间一起同步
SYNC_HWCLOCK=yes


#重启ntpd
service ntpd status
 service ntpd start
chkconfig ntpd on


#在集群其他机器上编写同步脚本(必须以root用户来创建此脚本)
crontab -e
*/10 * * * * /usr/sbin/ntpdate hadoop102

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独行客-编码爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值