大数据学习笔记整理 - Hadoop - 搭建hadoop集群
好久没有整理笔记了,最近硕士毕业,马上又要找工作了,offer 没着落,脱产读研几年,感觉就业形势反而更严峻了。想着能让简历多一点作品。
以前做的笔记,顺带回顾一下,还好印象笔记能同步
看到这些笔记又想起了以前学习的日子

搭建集群
前提:需要设置hosts,虚拟机需要设置IP地址、MAC地址和主机名
host映射信息

  • 格式:主机地址 主机名

在家目录下的.bashrc文件需要加入以下代码(no-login环境变量下可以执行java命令)

source /etc/profile

一、搭建HDFS
1.配置core-site.xml(设置NameNode的地址,指定运行时产生文件的存储目录)

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

2.配置hadfs-site.xml(设置datanode副本数量)

<!-- 指定HDFS副本的数量 -->
<property>
   <name>dfs.replication</name>
   <value>1</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop104:50090</value>
</property>

3.格式化nameNode(第一次启动时要格式化)

bin/hdfs namenode -format

4.启动NameNode的指令

sbin/hadoop-daemon.sh start namenode

5.启动DataNode的指令

sbin/hadoop-daemon.sh start datanode

二、搭建YARN
1.配置yarn-site.xml(指定YARN的ResourceManager地址)

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

2.将mapred-site.xml.template重命名为mapred-site.xml并配置

[tang@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[tang@hadoop101 hadoop]$ vi mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
</property>

3.启动ResourcesManger

sbin/yarn-daemon.sh start resourcemanager

4.启动DataNode

bin/yarn-daemon.sh start nodemanager

注:启动RM和DN需要保证NameNode和DataNode已经启动

三、配置历史服务器
1.配置mapred-site.xml

<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop101:19888</value>
</property>

2.启动历史服务器

sbin/mr-jobhistory-daemon.sh start historyserver

3.查看历史服务器是否启动
注:只能在配置参数所指定的那台服务器上执行启动历史服务器的操作。

四、配置日志的聚集
1.配置yarn-site.xml

<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
2.关闭NodeManager\ResourceManager和HistoryManager  (启动就是start)
sbin/yarn-daemon.sh stop resourcemanager
//
sbin/yarn-daemon.sh stop nodemanager
//
sbin/mr-jobhistory-daemon.sh stop historyserver

五、配置SSH(需要注意权限)
1.生成公钥和私钥

ssh-keygen -t rsa

2.将公钥拷贝到目标机器上(需要拷给本机)

ssh-copy-id hadoop102

Q:是否可以设置一个脚本来拷贝公钥?
R:可以,核心代码如下:

#!/bin/bash




for((i=101;i<=103;i++))
do
        echo -------hadoop$i------
        ssh-copy-id hadoop$i
        echo tang
done

如果需要实现自动输入密码需要加入expect实现
参考:如何在linux脚本自动输入密码

3.设置群发脚本XSYNC

#!/bin/bash
#校验
if(($#==0))
then 
    echo "请输入要分发的文件"
    exit;
fi
#获取文件的绝对路径
dirname=$(cd `dirname $1` ; pwd -P)
filename=`basename $1`
echo "要分发的路径:$dirname/$filename"
user=`whoami`


#循环执行rsync 同步文件到集群
for((i=101;i<=103;i++))
do
    echo -------hadoop$i-----------
    rsync -rvlt $dirname/$filename $user@hadoop$i:$dirname
done

4.设置群发命令脚本xcall

#!/bin/bash


for((i=201;i<=203;i++))
do
        echo ---------hadoop$i----------
        ssh hadoop$i $*
done
echo "程序执行完毕!"

注意:如果将xsync放到/home/atguigu/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。
六、群起脚本
启动HDFS: sbin/start-dfs.sh
启动YARN : sbin /start-yarn.sh
原理:
在这里插入图片描述

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐