Apache的Hadoop是一个开源的、可靠的、可扩展的系统架构,可利用分布式架构来存储海量数据,以及实 现分布式的计算。
Hadoop允许使用简单的编程模型在计算机集群中对大型数据集进行分布式处理。可以从单个服务器扩展到数 千台机器,每个机器都提供本地计算和存储,而不是依靠硬件来提供高可用性。 此外,Hadoop集群的高可用性也非常良好,因为框架内的机制是可以够自动检测和处理故障。
Hadoop的两个作用:
①存储海量数据(HDFS)
②计算海量数据(MapReducer)
Hadoop配置及启动的准备工作:
启动一台虚拟机
通过远程工具登录操作虚拟机
切换到/home/software目录下,将hadoop2.7.1安装包上传到此目录下
将jdk安装包上传到/home/software目录下
Hadoop的配置和启动步骤(单一节点)
1.关闭防火墙
#关闭防火墙命令
systemctl stop firewalld.service
#开机防火墙不启动
systemctl disable firewalld.service
2.修改主机名
#修改主机名
vim /etc/hostname
#文件里面只写hadoop01
3.配置ip与主机名的映射
#修改映射的命令
vim /etc/hosts
#文件里面显示的内容(ip写自己本机的ip)
#127.0.0.1 localhost
#::1 localhost
#192.168.64.211 hadoop01
4.配置免密钥登录,防止后续每次启动Hadoop都输入密码的麻烦
#生成密钥----用默认的配置(直接按回车三次)
ssh-keygen
#把生成的密钥复制到本机
ssh-copy-id root@hadoop01
5.安装和配置jdk
#1.进入jdk的目录
cd /home/software
#2.解压jdk压缩包
tar -xvf jdk-8u51-linux-x64.tar.gz
#3.更改jdk文件名为jdk1.8
mv jdk1.8.0_51 jdk1.8
#3.1配置jdk的linux环境变量
vim /etc/profile
#3.2编辑文件的最后加jdk的环境变量
JAVA_HOME=/home/software/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH CLASSPATH
6.解压hadoop安装包,并进行配置
#进入hadoop的目录
cd /home/software
#解压hadoop安装包
tar -xvf hadoop-2.7.1_64bit.tar.gz
#解压成功后,删除hadoop的安装包
rm -rf hadoop-2.7.1_64.bit.tar.gz
#进入hadoop目录下
cd /home/software/hadoop-2.7.1/etc/hadoop
#编辑hadoop-env.sh文件
vim hadoop-env.sh
#更改环境变量:
export JAVA_HOME=/home/software/jdk1.8
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
#让更改后的环境变量生效
source hadoop-env.sh
7.编辑core-site.xml
#进入core-site.xml文件
vim core-site.xml
#文件内配置的数据
<configuration>
<!--用来指定hdfs的namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/hadoop-2.7.1/tmp</value>
</property>
</configuration>
7.编辑hdfs-site.xml
#进入hdfs-site.xml文件
vim hdfs-site.xml
#文件内配置的数据
<configuration>
<!--指定文件块副本数量为1,注意单机环境副本数量必须为1-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--设置hdfs的操作权限,false表示任何用户都可以在hdfs上操作文件-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
8.把文件mapred-site.xml.temlate重命名
mv mapred-site.xml.template mapred-site.xml
9.编辑mapred-site.xml
#进入mapred-site.xml文件
vim mapred-site.xml
#文件内配置的数据
<configuration>
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
10.编辑yarn-site.xml文件
#进入yarn-site.xml文件
vim yarn-site.xml
#文件内配置的数据
<configuration>
<property>
<!--指定yarn的resoucemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
11.编辑slaves文件
#进入slaves文件
vim slaves
#文件内配置的数据(指定hadoop的从属节点服务器)
hadoop01
12.配置hadoop的环境变量
#进入hadoop环境变量的配置文件
vim /etc/profile
#文件的最后配置的数据(hadoop的环境变量与jdk的环境变量合并了,注意)
#java env
HADOOP_HOME=/home/software/hadoop-2.7.1
JAVA_HOME=/home/software/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
13.让更改的环境变量配置生效
source /etc/profile
14.初始化namenode(第一次启动hadoop需要初始化namenode)
hadoop namenode -format
15.启动hadoop
#进入hadoop安装目录下的sbin目录
cd /home/software/hadoop-2.7.1/sbin
#运行启动hadoop命令
sh start-all.sh
#停止hadoop命令
sh stop-all.sh