hadoop集群完全分布式集群搭建【基于centos7.0】

hadoop集群完全分布式集群搭建

1、集群部署规划

2、创建集群脚本

a)在/home/yrx目录下创建bin目录,并在bin目录下xsync创建文件,
文件内容如下:
注:如果没有安装xsync的话,我们可以先装

yum -y install rsync  
#启动rsync服务
systemctl start rsyncd.service
systemctl enable rsyncd.service
#检查是否已经成功启动
netstat -lnp|grep 873

```sh
[yrx@hadoop102 ~]$ mkdir bin
[yrx@hadoop102 ~]$ cd bin/
[yrx@hadoop102 bin]$ touch sync
[yrx@hadoop102 bin]$ vi xsync

> 在该文件中编写如下代码

```sh
#!/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=103; host<105; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

b)修改脚本 xsync 具有执行权限

[yrx@hadoop102 bin]$ chmod 777 xsync

注意:如果将xsync放到/home/yrx/bin目录下仍然不能实现全局使用,可以将xsync移动到/usr/local/bin目录下。

3、免密登录

生成公钥和私钥:注:在ssh下创建

[yrx@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免密登录的目标机器上

[yrx@hadoop102 .ssh]$ ssh-copy-id hadoop102

[yrx@hadoop102 .ssh]$ ssh-copy-id hadoop103

[yrx@hadoop102 .ssh]$ ssh-copy-id hadoop10

4、开始配置集群

[yrx@hadoop102 .ssh]$ cd /opt/module/hadoop-2.7.2/etc/hadoop/

(1) 核心配置文件

配置core-site.xml

[yrx@hadoop102 hadoop]$ vi 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>
<!-- 必须配置下面两项,否则会导致spark在使用beeline的时候插入数据报错 -->
<property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
</property>

2)HDFS配置文件

配置hadoop-env.sh

[yrx@hadoop102 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置hdfs-site.xml

[yrx@hadoop102 hadoop]$ vi hdfs-site.xml

在该文件中编写如下配置

<property>
     <name>dfs.replication</name>
     <value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop104:50090</value>
</property>
<!-- hadoop引入一个安全伪装机制,使得hadoo不允许上层系统直接将实际用户传递到hadoop层,而是将实际用户传递给一个超级代理,有此代理在hadoop上执行操作,避免任意客户端随意操作hadoop。hive2.2版本以上,需要在hadoop里面配置,以前的版本记得不需要 -->
<property>
     <name>dfs.webhdfs.enabled</name>
     <value>true</value>
</property>

(3)YARN配置文件

配置yarn-env.sh

[yrx@hadoop102 hadoop]$ vi yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置yarn-site.xml

[yrx@hadoop102 hadoop]$ vi 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>
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

(4)MapReduce配置文件

配置mapred-env.sh

[yrx@hadoop102 hadoop]$ vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置mapred-site.xml

[yrx@hadoop102 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[yrx@hadoop102 hadoop]$ vi mapred-site.xml

在该文件中增加如下配置

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

5、群起集群

配置slaves

/opt/module/hadoop-2.7.2/etc/hadoop/slaves
[yrx@hadoop102 hadoop]$ vi slaves

该文件中增加如下内容:(只能有这些内容,如果里面有localhost删除它

hadoop102
hadoop103
hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行

在集群上分发配置好的Hadoop配置文件

[yrx@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/

6、启动集群

(1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)

[yrx@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -format
        
各个服务组件逐一启动/停止
       (1)分别启动/停止HDFS组件
              hadoop-daemon.sh  start / stop  namenode / datanode / secondarynamenode
       (2)启动/停止YARN
              yarn-daemon.sh  start / stop  resourcemanager / nodemanager

各个模块分开启动/停止(配置ssh是前提)常用
       (1)整体启动/停止HDFS
              start-dfs.sh   /  stop-dfs.sh
       (2)整体启动/停止YARN
              start-yarn.sh  /  stop-yarn.sh

启动历史服务器

在mapred-site.xml中写入一下配置

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

配置日志聚合

配置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>

启动历史服务器

mr-jobhistory-daemon.sh start historyserver
发布了32 篇原创文章 · 获赞 39 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yang735136055/article/details/99752770