在Linux上搭建Hadoop3.1.1

准备工作

通过克隆获得三台虚拟机

准备工作:时间同步、时区调整、JDK1.8环境、配置主机名、关闭防火墙、配置静态IP

无特别说明,三台虚拟机都要完成准备工作

1、时间同步
ntpdate ntp.aliyun.com
2、调整时区
timedatectl set-timezone Asia/Shanghai
3、JDK 1.8
java -version
4、修改主机名

三台虚拟机分别设置为:master、node1、node2

master为主节点、其余都是从节点

主机名修改完后断开连接,重新登录即可生效

hostnamectl set-hostname 主机名
5、关闭防火墙
systemctl stop firewalld
  • 查看防火墙状态:systemctl status firewalld

  • 取消防火墙自启:systemctl disable firewalld

6、静态IP配置
  • 直接使用图形化界面配置(不推荐)

  • 手动编辑配置文件进行配置

    # 1、编辑网络配置文件
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    ​
    # 需要根据自身情况修改: 
    # IPADDR(根据自己的网段,自定义IP地址,三台虚拟机不能使用相同IP)
    # GATEWAY(根据自己的网段填写对应的网关地址)
    # DNS1 (同网关地址保持一致即可)
    # 其他直接使用下列配置
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.190.100
    GATEWAY=192.168.190.2
    NETMASK=255.255.255.0
    DNS1=192.168.190.2
    DNS2=223.6.6.6
    ​
    # 2、关闭NetworkManager,并取消开机自启
    systemctl stop NetworkManager
    systemctl disable NetworkManager
    ​
    # 3、重启网络服务
    systemctl restart network
7、免密登录

只需要配置master到master、master到node1、master到node2即可

# 1、生成密钥
ssh-keygen -t rsa
# 2、配置免密登录
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
# 3、测试免密登录
# 从master分别登录node1、node2
# 观察是否需要密码,如不需要则免密登录配置成功
ssh node1
ssh node2
8、修改hosts

需要基于三台节点的静态IP进行配置

vim /etc/hosts
​
# 按情况加入以下内容
​
192.168.190.100 master
192.168.190.101 node1
192.168.190.102 node2

Hadoop集群搭建

1、上传安装包并解压
# 使用xftp上传压缩包至master的/usr/local/soft/packages/
# 上传位置无特殊要求,能找到即可
cd /urs/local/soft/packages/
# 解压
tar -zxvf hadoop-3.1.1.tar.gz -C /usr/local/soft/
2、配置环境变量

三台都需要修改

vim /etc/profile
​
# 增加以下配置
HADOOP_HOME=/usr/local/soft/hadoop-3.1.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
​
# 重新加载环境变量
source /etc/profile
3、修改Hadoop配置文件
  • 切换到配置文件所在目录

    cd /usr/local/soft/hadoop-3.1.1/etc/hadoop/
  • 通过vim编辑并修改下列配置文件

    • hadoop-env.sh

      # 在最后加入以下配置
      export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
      export HDFS_NAMENODE_USER=root
      export HDFS_DATANODE_USER=root
      export HDFS_SECONDARYNAMENODE_USER=root
      export YARN_RESOURCEMANAGER_USER=root
      export YARN_NODEMANAGER_USER=root
    • core-site.xml

         <property>
             <name>fs.defaultFS</name>
             <value>hdfs://master:9000</value>
         </property>
      ​
         <property>
             <name>hadoop.tmp.dir</name>
             <value>/usr/local/soft/hadoop-3.1.1/data</value>
         </property>
      ​
         <property>
             <name>fs.trash.interval</name>
             <value>1440</value>
         </property>
    • hdfs-site.xml

         <property>
             <name>dfs.replication</name>
             <value>1</value>
         </property>
      ​
         <property>
             <name>dfs.permissions</name>
             <value>false</value>
         </property>
    • mapred-site.xml

         <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</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>yarn.app.mapreduce.am.env</name>
             <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
         </property>
      ​
         <property>
             <name>mapreduce.map.env</name>
             <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
         </property>
      ​
         <property>
             <name>mapreduce.reduce.env</name>
             <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
         </property>
    • workers

      node1
      node2
    • yarn-site.xml

         <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.log-aggregation-enable</name>
             <value>true</value>
         </property>
      ​
         <property>
             <name>yarn.log-aggregation.retain-seconds</name>
             <value>604800</value>
         </property>
      ​
         <property>
             <name>yarn.nodemanager.vmem-check-enabled</name>
             <value>false</value>
         </property>
      ​
         <property>
             <name>yarn.nodemanager.pmem-check-enabled</name>
             <value>false</value>
         </property>
4、分发Hadoop到node1、node2
cd /usr/local/soft/
scp -r hadoop-3.1.1/ node1:`pwd`
scp -r hadoop-3.1.1/ node2:`pwd`
5、格式化namenode

只需在第一次启动的时候在Master节点上执行

hdfs namenode -format
6、启动Hadoop集群
start-all.sh
7、检查master、node1、node2上的进程
  • master:

    [root@master soft]# jps
    2597 NameNode
    2793 SecondaryNameNode
    2953 ResourceManager
    3215 Jps
  • node1:

    [root@node1 jdk1.8.0_171]# jps
    11361 DataNode
    11459 NodeManager
    11559 Jps
  • node2:

    [root@node2 ~]# jps
    11384 DataNode
    11482 NodeManager
    11582 Jps
8、访问HDFS的WEB界面

注意新版本的端口由50070变成了9870

http://master:9870

9、访问YARN的WEB界面

http://master:8088

 

Hadoop集群重置

1、停止集群
stop-all.sh
​
# 若进程停不掉 可直接使用进程号进行kill
2、删除所有节点上hadoop产生的数据文件

三台都要执行

cd /usr/local/soft/hadoop-3.1.1
rm -rf data/
3、重新格式化namenode
hdfs namenode -format
4、启动集群
start-all.sh


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值