欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop运行模式(二)

程序员文章站 2024-02-27 13:45:09
...

完全分布式运行模式

一、准备3台虚拟机

1.从先前配置好的虚拟机(hadoop100)上克隆三台虚拟机(hadoop101,hadoop102,hadoop103);
2.设置三台主机:关闭防火墙,设置静态IP,修改主机名称。

二、安装JDK和Hadoop,配置环境变量

先在hadoop101安装配置,再分发到hadoop102,hadoop103;

1.安装JDK

(1).用Xftp工具将JDK导入到opt目录下面的software文件夹下面

(2).在Linux系统下的opt目录中查看软件包是否导入成功
cd software/
ls

(3).卸载现有JDK
a.查询是否安装Java软件:
rpm -qa | grep java
b.如果有,卸载
rpm -qa | grep java | xargs sudo rpm -e --nodeps

(4).解压JDK到/opt/module目录下
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

2.安装Hadoop

(1).用Xftp工具将hadoop-2.7.2.tar.gz导入到opt目录下面的software文件夹

(2).进入到Hadoop安装包路径下
cd /opt/software/

(3).解压安装文件到/opt/module下面
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/

(4).查看是否解压成功
ls /opt/module/
hadoop-2.7.2

3.配置环境变量(JDK和Hadoop)

(1)先获取JDK和Hadoop路径
/opt/module/jdk1.8.0_144
/opt/module/hadoop-2.7.2

(2)打开/etc/profile文件
sudo vim /etc/profile
在profile文件末尾添加JDK路径:

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

在profile文件末尾添加JDK路径:

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

(3)保存后退出

(4)让修改后的文件生效
source /etc/profile
(5).测试是否安装成功
java -version
java version “1.8.0_144”
hadoop version
Hadoop 2.7.2

4.编写xsync集群分发脚本

(1).脚本说明:循环复制文件到所有节点的相同目录下
(2).脚本实现
a.在hadoop101虚拟机的 /home/hadoop100目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下:

mkdir bin
cd bin/
touch xsync
vim xsync

在该文件中编写如下代码

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

b.修改脚本 xsync 具有执行权限
chmod 777 xsync
c.调用脚本形式:xsync 文件名称
xsync /home/hadoop100/bin

5.分发

(1)在hadoop101上,将hadoop101中/opt/module目录下的软件拷贝到hadoop102,hadoop103上。
xsync /opt/module
注意:拷贝过来的/opt/module目录,别忘了在hadoop101、hadoop102、hadoop103、上修改所有文件的,所有者和所有者组。
sudo chown hadoop100:hadoop100 -R /opt/module

(2)将hadoop101中/etc/profile文件拷贝到hadoop102、hadoop103的/etc/profile上。
xsync /etc/profile
注意:拷贝过来的配置文件别忘了source一下/etc/profile。

三、配置集群

1. 集群部署规划Hadoop运行模式(二)

2. 配置集群

(1)核心配置文件
配置core-site.xml
vim core-site.xml
在该文件中编写如下配置

<!-- 指定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)HDFS配置文件
配置hadoop-env.sh
vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置hdfs-site.xml
vi hdfs-site.xml
在该文件中编写如下配置

<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop103:50090</value>
</property>

(3)YARN配置文件
配置yarn-env.sh
vi yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置yarn-site.xml
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>hadoop102</value>
</property>

(4)MapReduce配置文件
配置mapred-env.sh
vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置mapred-site.xml
cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml
在该文件中增加如下配置

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

3.在集群上分发配置好的Hadoop配置文件
xsync /opt/module/hadoop-2.7.2/
4.查看文件分发情况
cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

四、配置ssh

1.无**配置

(1)进入/home/hadoop100/.ssh
(2)生成公钥和私钥:
ssh-****** -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上

ssh-copy-id hadoop101
ssh-copy-id hadoop102
ssh-copy-id hadoop103

注意:
还需要在hadoop101上采用root账号,配置一下无密登录到hadoop101、hadoop102、hadoop103;
还需要在hadoop102上采用hadoop100账号配置一下无密登录到hadoop101、hadoop102、hadoop103服务器上。

五、群起集群

1. 配置slaves

在/opt/module/hadoop-2.7.2/etc/hadoop/slaves下
vi slaves
在该文件中增加如下内容:
hadoop101
hadoop102
hadoop103
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件
xsync slaves

2. 启动集群

(1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
bin/hdfs namenode -format
(2)启动HDFS
sbin/start-dfs.sh

(3)启动YARN(在hadoop102上启动)
sbin/start-yarn.sh
注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。