Hadoop完全分布

完全分布式搭建

Hadoop下载地址:http://archive.apache.org/dist/hadoop/core/

这里用的Hadoop版本是:hadoop-2.6.0.tar.gz

1. 虚拟网络编辑器

NAT模式:设置网关和IP

Hadoop完全分布
比如:
网关:192.168.1.2
子网:192.168.1.0	子网掩码:255.255.255.0

2. 创建虚拟机

2.1 创建新的虚拟机

点击左上角文件中的新建虚拟机进行如下步骤:

Hadoop完全分布

Hadoop完全分布

Hadoop完全分布

2.2 选择Linux的iso文件

点击编辑虚拟机设置

Hadoop完全分布

2.3 开始安装虚拟机

点击开始此虚拟机

1.鼠标点进去,用上下键选择第一个回车。

Hadoop完全分布

2.语言选择中文。

3.点击软件选择、安装位置,点击网络和主机可以先把网络连接起。

Hadoop完全分布

4.然后点击开始安装

5.设置root密码后等待安装完成,然后点击完成配置。

Hadoop完全分布

6.配置完成后点击重启。

7.接受许可,然后点击完成配置

Hadoop完全分布

8.然后一直前进前进,到设置全名和密码设置好后继续前进,完成安装

2.4 克隆另外两台虚拟机

需先把master虚拟机关机

Hadoop完全分布

然后点击下一步——》选虚拟机中的当前状态——》创建完整克隆——》设置名称和位置——》完成

3. 配置三台虚拟机的网络

这些命令最好都进入root用户执行

3.1 配置静态IP

命令:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

添加

BOOTPROTO="static"			//这句在文件中已经存在,找到把他修改成static即可
IPADDR=192.168.1.110		//IP地址
GATEWAY=192.168.1.2			//网关
DNS1=192.168.1.2			//和网关保持一致即可

3.2 配置DNS

命令:

vi /etc/NetworkManager/NetworkManager.conf

添加一行内容:

dns=none

然后重启网络管理:

systemctl restart NetworkManager.service

3.3 修改域名解析配置文件

命令:

vi /etc/resolv.conf 

添加内容:

  nameserver 192.168.1.2	//网关

最后重启网络:

service network restart

ping www.baidu.com可ping通即配置成功。

3.4 设置主机名

命令:

vi /etc/sysconfig/network

添加如下内容:

#Created by anaconda
NETWORKING=yes
HOSTNAME=master      //添加

防止重启又恢复回去:

vi /etc/hostname //修改为本机名字

例如:(设置时可把localhost删除)

master

3.5 设置主机与ip映射

命令:

vi /etc/hosts 

例如:

//ip地址       主机名
192.168.1.110 master
192.168.1.111 slave01
192.168.1.112 slave02

4. 防火墙关闭

三台机器都需要

查看防火墙状态:

systemctl status firewalld.service

关闭防火墙:

systemctl stop firewalld.service

防止下次重启防火墙自动启动:

systemctl disable firewalld.service

5. 免密钥登录配置

生成密钥(三台虚拟机都需执行)

以master虚拟机为例:

执行命令生成公钥和私钥:

ssh-keygen -t rsa		//这条命令一直回车

发送到每台服务器(每台都执行,一行一行的执行)

ssh-copy-id master
ssh-copy-id slave01
ssh-copy-id slave02

如图所示:

Hadoop完全分布

测试是否成功

ssh master
ssh slave01
ssh slave02

成功如图所示

Hadoop完全分布

查看生成的文件

ls ~/.ssh
Hadoop完全分布

6. 配置jdk(配置一台其他两台复制过去即可)

使用Xftp软件把文件上传到虚拟机中

可在/opt中创建两个目录,一个放上传的文件,一个存放解压后的文件(可根据实际情况修改上传文件的目录和解压后的文件的目录)

进入/opt目录创建两个目录

cd /opt  		//进入/opt目录
mkdir module  	//创建module目录
mkdir software  //创建software目录
Hadoop完全分布

6.1 上传文件

用xftp上传jdk-8u281-linux-x64.tar.gz文件到/opt/software中

6.2 卸载系统自带jdk

查看系统是否安装了jdk

rpm -qa | grep jdk

卸载自带的jdk

rpm -qa | grep jdk | xargs -n1 rpm -e --nodeps

6.3 解压文件

进入/opt/software中解压jdk到/opt/module目录

cd /opt/software									//进入/opt/software目录
(tar -zxvf jdk包名 -C 指定的路径)
tar -zxvf jdk-8u281-linux-x64.tar.gz -C /opt/module //把文件加压到/opt/module目录中

6.4 设置环境变量

命令:

vi /root/.bash_profile

加入下面内容:

export JAVA_HOME=/opt/module/jdk1.8.0_281		//等号后面是jdk解压后的路径
export PATH=$PATH:$JAVA_HOME/bin

使设置立即生效:

source /root/.bash_profile

验证是否成功:

java -version

7. Hadoop安装(安装一台其他两台复制过去即可)

7.1 上传文件

用xftp上传hadoop-2.6.0.tar.gz文件到/opt/software中

7.2 解压文件

进入/opt/software中解压Hadoop到/opt/module目录

cd /opt/software								//进入/opt/software目录
(tar -zxvf Hadoop包名 -C 指定的路径)
tar -zxvf hadoop-2.6.0.tar.gz -C /opt/module 	//把文件加压到/opt/module目录中

7.3 修改Hadoop名字

进入解压后的Hadoop目录进行修改

cd /opt/module
mv hadoop-2.6.0 hadoop			//修改hadoop-2.6.0为hadoop

7.4 设置环境变量

命令:

vi /root/.bash_profile

加入下面内容:

export HADOOP_HOME=/opt/module/hadoop				//等号后面是hadoop解压后的路径
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

使设置立即生效

source /root/.bash_profile

验证是否成功

hadoop version

这里的环境变量配好后,可用scp复制到其他两个节点

scp -r 存放的路径 root@远程登录名:复制到远程登录名节点的路径
slave01节点:
scp -r /root/.bash_profile root@slave01:/root/.bash_profile		//复制到slave01节点上
slave02节点:
scp -r /root/.bash_profile root@slave02:/root/.bash_profile		//复制到slave02节点上

7.5 复制jdk、Hadoop到其他两个节点

命令:

scp -r 存放的路径 root@远程登录名:复制到远程登录名节点的路径
slave01节点:
scp -r /opt/module/ root@slave01:/opt/module	//复制到slave01节点上
slave02节点:
scp -r /opt/module/ root@slave02:/opt/module	//复制到slave02节点上

7.6 配置Hadoop

配置前进入hadoop中的/etc/hadoop

cd /opt/module/hadoop/etc/hadoop
7.6.1 修改hadoop-env.sh、yarn-env.sh、mapred-env.sh

找到JAVA_HOME修改他们的JAVA_HOME路径

命令:

vi hadoop-env.sh		//进入hadoop-env.sh进行修改
vi yarn-env.sh			//进入yarn-env.sh进行修改
vi mapred-env.sh		//进入mapred-env.sh进行修改

配置其中的 JAVA_HOME 路径(路径根据自己虚拟机上的配置来定)

export JAVA_HOME=/opt/module/jdk1.8.0_281
7.6.2 配置core-site.xml

命令:

vi core-site.xml

中添加如下:

<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://master:9000</value>
</property>
<!-- 指定 Hadoop 运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/hadoop安装路径/data</value>
</property>
7.6.3 配置hdfs-site.xml

命令:

vi hdfs-site.xml

中添加如下:

<property>
<!--指定 HDFS 副本数量-->
	<name>dfs.replication</name>
	<value>3</value>
</property>
<!-- 指定 Hadoop 辅助名称节点主机配置 -->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>master:50090</value>
</property>
7.6.4 配置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>master</value>
</property>
7.6.5 配置mapred-site.xml

配置前先把mapred-site.xml.template名字改为mapred-site.xml

mv mapred-site.xml.template mapred-site.xml

进入mapred-site.xml进行修改

vi mapred-site.xml

中添加如下:

<!-- 指定 MR 运行在 Yarn 上 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
7.6.6 配置 slavers(意为每次启动那些集群)

命令:

vi slaves 

添加如下:

master
slave01
slave02
7.6.7 分发配置文件
使用 rsync 命令,同步 {hadoop安装路径} / etc 下的配置文件
rsync -av /Hadoop安装路径/etc/hadoop root@远程登录名:/Hadoop安装路径/etc/hadoop
例如:
slave01节点:
rsync -av /opt/module/hadoop/etc/hadoop root@slave01:/opt/module/hadoop/etc
slave02节点:
rsync -av /opt/module/hadoop/etc/hadoop root@slave02:/opt/module/hadoop/etc

8 启动集群并测试

(1)第一次启动要格式化

命令:

hdfs namenode -format

如果格式化报错要删除data和logs在进行修改之后在进行第二次格式化

(2)启动集群(需进入hadoop安装目录)

sbin/start-all.sh

(3)关闭集群(需进入hadoop安装目录)

sbin/stop-all.sh

(4)验证

jps

如图所示:

Hadoop完全分布

(5)测试

Mapper测试能否跑通

创建文件夹:

hadoop fs -mkdir /input

上传文件到input文件夹:

hadoop fs -put 需要上传的文件名 上传到的文件路径
示例: hadoop fs -put job_list.json /input

输出文件:

hadoop jar MapReduceExer.jar 输入路径 输出路径(事先不能存在)
示例: hadoop jar MapReduceExer.jar /input/job_list.json /output

如图所示:

Hadoop完全分布

浏览器查看:

浏览器输入:机器IP地址:50070-------例如:192.168.1.110:50070

如图:

Hadoop完全分布Hadoop完全分布Hadoop完全分布
上一篇:工作记录--使用FFmpeg将一个视频文件中音频合成到另一个视频中


下一篇:linux 基本命令