笔记标题 | 青训营笔记

177 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第2天

hadoop集群的安装教程 - 搭建Hadoop集群环境(三节点)

前置工作:

  • 准备三台虚拟机,这里使用VMWare创建三台Centos7的虚拟机;
hostnameip
node1192.168.3.100
node2192.168.3.101
node3192.168.3.102
  • 配置静态ip;
  • 关闭防火墙;
  • 关闭selinux安全级别,/etc/selinux/config中的SELINUX=disabled
  • 设置三台虚拟机的域名和IP的配置文件,vi /etc/hosts
  • 设置三台虚拟机免密登录-生成密钥以及分发密钥;
  • 安装JDK;
  • 时间同步:
#node1虚拟机作为时间主节点,下载ntp
​
yum install ntp -y
​
#修改配置文件,vi /etc/ntp.conf
​
restrict 192.168.254.0 mask 255.255.255.0 nomodify notrap
​
server 127.127.1.0(自己作为主节点,注释掉server开头的四行)
​
#启动ntp,并设置为开机启动
​
systemctl start ntpd
​
systemctl enable ntpd
​
#node2和node3作为从节点,下载ntpdate并同步数据
​
yum install ntpdate -y
​
ntpdate -u node1
​
#为了防止时间不一致,做定时器,定时同步node1时间数据,输出信息到空设备文件
​
crontab -e * * * * * /usr/sbin/ntpdate -u node1 >/dev/null 2>&1
  • 安装Hadoop。

集群搭建:

  • 进到/usr/local/hadoop/etc/hadoop,修改hdfs-site.xml文件,在configuration标签里添加以下内容;
<!-- core-site.xml -->
<configuration>
    <!-- 在hdfs的地址名称:schame, ip, port -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>
    <!-- hdfs的一个基础路径,被其他属性所依赖的一个基础路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/app/hadoop/tmp</value>
    </property>
</configuration>
<!-- hdfs-site.xml -->
<configuration>
    <!-- namenode守护进程管理的元数据文件fsimage存储的位置-->
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/name</value>
    </property>
    <!-- 确定DFS数据节点应该将其块存储在本地文件系统的何处-->
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file://${hadoop.tmp.dir}/dfs/data</value>
    </property>
    <!-- 块的副本数-->
    <property>
    <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!-- 块的大小(128M),下面的单位是字节-->
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
    <!-- secondarynamenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:50090</value>
    </property>
    <!-- namenode守护进程的http地址:主机名和端口号。参考守护进程布局-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>node1:50070 </value>
    </property>
</configuration>
  • 在mapred-site.xml文件configuration标签里添加以下内容-这里不存在mapred-site.xml文件,需要将mapred-site.xml.template文件复制后重命名;
<!-- mapred-site.xml -->
<configuration>
    <!-- 指定mapreduce使用yarn资源管理器-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property><!-- 配置作业历史服务器的地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value></property>
    <!--配置作业历史服务器的http地址-->
    <property>
        <name>mapreduce.jobhistory.webappaddress</name>
        <value>node1:19888</value>
    </property>
</configuration>
  • 在yarn-site.xml文件configuration标签里添加以下内容;
<!-- yarn-site.xml -->
<configuration>
    <!-- 指定yarn的shuffle技术-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定resourcemanager的主机名-->
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>node1</value>
    </property>
    <!--下面的可选-->
    <!--指定shuffle对应的类 -->
    <property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <!--配置resourcemanager的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>node1:8032</value>
    </property>
    <!--配置resourcemanager的scheduler的内部通讯地址-->
    <property>
        <name>yarn,resourcemanager.scheduler.address</name>
        <value>node1:8030</value>
    </property>
    <!--配置resoucemanager的资源调度的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>node1:8031</value>
    </property>
    <!--配置resourcemanager的管理员的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>node1:8033</value>
    </property>
    <!--配置resourcemanager的web ui 的监控页面-->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>node1:8088</value>
    </property>
</configuration>
  • 在hadoop-env.sh文件修改JDK安装路径;
  • 在yarn-env.sh文件修改JDK安装路径;
  • 在slaves文件中添加虚拟机名称
  • 启动集群:
/root/app/hadoop/sbin/start-all.sh
  • jps指令查看进程启动情况
# node1

2192 NodeManager
1489 DataNode
2503 Jps
2090 ResourceManager
# node2

1888 Jps
1305 DataNode
1769 NodeManager