实验原理与内容
实验原理:
1. Hadoop
Hadoop是一个能够对海量数据进行分布式处理的系统架构,为大数据计算提供了分布式的集群环境及计算框架;Hadoop框架的核心是:HDFS和Map Reduce。
HDFS分布式文件系统为海量的数据提供了存储,MapReduce分布式处理框架为海量的数据提供了计算。
1. Hadoop部署
Hadoop部署方式分三种,Standalone mode单节点、Pseudo-Distributed mode伪多节点、Cluster mode多节点,其中前两种都是在单机部署。
实验内容:
1、配置必要的运行环境
2、Standalone mode单节点安装Hadoop
3、Pseudo-Distributed mode伪多节点安装Hadoop
4、Cluster mode多节点安装Hadoop
实验设备与软件环境
1、安装有vmware的Centos或者Ubuntu或者其他Linux系统(必要),多台;
2、JDK;hadoop;
实验过程与结果(可贴图)
1、必要环境
1、安装JDK
2、设置JAVA的环境变量,设置Hadoop的JAVA_HOME
3、安装ssh和rsync
2、单节点安装Hadoop
1、在主目录创建hadoop文件夹,在学习通下载hadoop并且移动到hadoop文件夹下并且解压
在Hadoop的安装目录下,创建input目录
# mkdir input
4、拷贝文件到input目录下,执行Hadoop job进行计算测试
# cp etc/hadoop/*.xml input
# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+'
5、cat output/* 查看执行结果
打开vim /etc/profile.d/my_env.sh文件进行环境变量配置
用命令hadoop verion查看hadoop是否安装成功
3、伪多节点安装Hadoop
这种模式是,1个节点上运行,HDFS daemon的 NameNode 和 DataNode、YARN daemon的 ResourceManger 和 NodeManager,分别启动单独的java进程,主要用于调试。
1、修改设定文件
2、设定本机的无密码ssh登陆
# ssh-keygen -t rsa
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、执行Hadoop job
MapReduce v2 叫做YARN,下面分别操作一下这两种job
4、执行MapReduce job
5、格式化文件系统
# hdfs namenode –format
6、启动名称节点和数据节点后台进程
# sbin/start-dfs.sh
在localhost启动一个1个NameNode和1个DataNode,在0.0.0.0启动第二个NameNode
通过50070端口访问NameNode的web页面,通过8080访问ResourceManger的web页面
4、多节点安装Hadoop
部署概要:三台机器,且它们都刚装好64位CentOS-6.5,安装系统时用户名为自己的名字拼音,请按要求完成:
① 修改三台机器名为cMaster,cSlave0和cSlave1,并添加域名映射、关闭防火墙和安装JDK。
② 以cMaster作为主节点,cSlave0和cSlave1作为从节点,部署Hadoop。
1.制定部署规划
此Hadoop集群需三台机器(cMaster,cSlave0和cSlave1),其中cMaster作为主节点,cSlave0和cSlave1作为从节点。
2.准备机器
准备三台机器,它们可以是实体机也可以是虚拟机,若使用虚拟机三台机器硬件方面最低要求有1G内存,20G存储空间。
操作系统都安装好CentOS;虚拟机的机器名称分别为cMaster,cSlave0和cSlave1;都创建同一个用户名(你的姓名拼音缩写,下面以xmy这个用户名为例),同一个密码(root:xmyxmy)。
3.准备机器软件环境
三台机器都要完成:修改机器名、添加域名映射、关闭防火墙和安装JDK。
- 修改机器名
[xmy@localhost~]$ su – root #切换成root用户修改机器名
[root@localhost~]# vim /etc/sysconfig/network #编辑存储机器名文件
将“HOSTNAME=localhost.localdomain”中的“localhost.domain”替换成需要使用的机器名,如cMaster,即此行内容为:
HOSTNAME=cMaster #指定本机器名为cMaster
注意重启机器后更名操作才能生效。其他两台机器cSlave0和cSlave1操作雷同。
更改cMaster
更改cSlave1
更改cSlave2
- 添加域名映射
首先使用ifconfig命令查看本机IP地址,以cmaster为例
[root@ cMaster ~]#ifconfig # 查看cMaster机器IP地址
假如获得地址为“192.168.1.10”,机器名为cMaster,接着编辑域名映射文件“/etc/hosts”,
[root@ cMaster ~] vim /etc/hosts #编辑域名映射文件
在文件添加如下内容:
192.168.1.10 cMaster
192.168.1.11 cSlave1
192.168.1.12 cSlave2
通过命vim /etc/sysconfig/network-scripts/ifcfg-ens33令配置三台主机的ip以及把动态地址改为静态地址
cMaster:
cSlave1:
cSlave2:
通过命令ifconfig查看ip地址,知道了cMaster的IP为192.168.81.176,cSlave1的ip为192.168.81.178,cSlave2的ip为192.168.81.177
- 配置ssh免密码登录
集群之间的机器需要相互通信,所以我们得先配置免密码登录。在三台机器上分别运行如下命令,生成密钥对:
[root@ cMaster ~]# ssh-keygen -t rsa # 三台机器都需要执行这个命令生成密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your pu