Hadoop集群搭建手册

1.准备材料

  • centos7 虚拟机N台
  • xshell xftp
  • hadoop,jdk安装包

2.将Linux连接到客户端(本机)

修改网关: 本机为192.168.2.1  其他为101/102/103.。。。

在虚拟机中选择host-only网络

vim /etc/sysconfig/network
>>>NETWORKING=yes
>>>GATWAY=192.168.2.1 (本机ip)

修改ip
vim /etc/sysconfig/network-sripts/ifcfg-enp0s3  (linux网卡名字)
>>>TYPE=Ethernet
>>>IPADDR=192.168.20  (给linux分配的ip)
>>>NETMASK=255.255.255.0

修改主机名 ;
hostnamectl set-hostname  ....

重启网络:
service network restart

测试是否修改成功:(注意关掉防火墙)
ifconfig
ping 客户端ip

3.安装好一台linux:

装好xshell 利用ssh访问linux
装好xftp  将本地下载的 Hadoop jdk 上传 linux

安装 jdk:
rpm -ivh 。。。rpm   (默认安装在/usr/java)
用 java命令检查

安装 Hadoop:
tar -xvf 。。。tar.gz
mv改名

设置环境变量

vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

让设置生效

source /etc/profile

设置Hadoop的JAVA_HOME

cd /usr/local/hadoop
vim etc/hadoop/hadoop-env.sh

export JAVA_HOME=/usr/java/default

4.网络联通

全部关掉防火墙
systemctl stop firewalld
systemctl disable firewalld

查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service 

互相ping测试是否联通

分别进行 修改ip/ 修改主机名 / 重启网络 的操作

5.配置/usr/local/hadoop/etc/hadoop

中心节点配置:

vim core-site.xml

<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>  
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
</property>

修改备份数量

vim hdfs-site.xml

<!-- 指定HDFS副本的数量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
 <!-- 指Second namenode的启动位置 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>
</property>

修改计算框架

vim mapred-site.xml

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

修改资源调用框架

vim yarn-site.xml

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

如果是完全分布式,将上面的做好的拷贝,修改ip hostname即可。如果是伪分布式,就这样运行就好了

6.启动hdfs

首先格式化hdfs   hdfs namenode -format

将ip与名字对应
vim /etc/hosts
    192.168.2.20  master
    ....
    ....
    ....

master启动 namenode:
    hadoop-daemon.sh start namenode

jps  检查namenode是否启动

vim slaves添加子节点信息
    master
    s1
    ....


slave启动 datanode:
    hadoop-daemon.sh start datanode

jps检查

错误指南

1.如果出现javahome问题      
    >>> 配置javahome路径 vim hadoop-env.sh
             /usr/java/default

2.出现 -bash  hadoop  。。。not found 问题
    >>> 配置 vim /etc/profile
增加:
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

3.修改完配置信息以后记得 source  /。。。

4.多次格式化hdfs会导致 namenode与datanode的id不合  >> master启动不了datanode
 进入hadoop的logs 下查看日志   >>  修改Version的 natanode 和 namenode 的clusterID一致