Hadoop——三种模式安装教程

集群搭建

本地模式
本地模式,也称为是单机版本。主要是为了测试使用的,基本不需要进行配置。
以下的安装、配置,都在1节点上完成!

1. 上传Hadoop的二进制文件安装包到/root/data/software中

2. 将二进制文件解压安装到/usr/local下
   tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/
   重命名这个文件夹,去掉版本号,为了方便后面的使用
   mv /usr/local/hadoop-2.7.6 /usr/local/hadoop
   
3. 配置环境变量,将Hadoop下的bin和sbin都添加到环境变量中,使得可以在任意的位置使用这里的脚本命令
   # 配置JDK的环境变量
   export JAVA_HOME=/usr/local/jdk
   # 配置Hadoop的环境变量
   export HADOOP_HOME=/usr/local/hadoop
   # 配置PATH
   export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
   
   -- 配置完成后,需要 source /etc/profile 使得环境生效

4. Hadoop是用Java编写的,运行的时候,需要依赖JDK,Hadoop2.x对JDK是有版本要求的,要求1.7+。
   在Hadoop的/etc/hadoop/hadoop-env.sh中,大概25行的位置,读取当前系统环境变量中的JAVA_HOME的路径,作为JDK的路径。
   为了防止读取不到系统环境变量JAVA_HOME,会将其手动的修改为JDK的绝对路径。
Hadoop目录下各个文件夹的作用:
bin: Hadoop的脚本管理目录和使用目录,这个目录是sbin目录下脚本实现的基础。
sbin: Hadoop集群启动和停止时需要执行的命令。
etc: Hadoop的配置文件所在的目录。
     这里四大核心配置文件: core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
include: 对外提供的库文件(存储了一些C++的动态链接库,当使用C++程序访问HDFS的时候使用)。
lib: Hadoop环境需要的静态库和动态库。
libexec: 各个服务对应的shell的配置文件所在的目录。
share: Hadoop各个模块编译之后生成的jar包所在的路径。
Hadoop官方示例:

1. wordcount
   词频统计,统计一个目录下指定文件或者所有文件中单词出现的频率
   通过如下命令,可以执行这个程序,要注意最后的一个/root/output这个目录为输出目录,需要事先不存在
   hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /root/input /root/output
   
2. sudoku
   数独案例,可以解数独
   通过如下命令,可以执行这个程序,输入路径中需要提供待解的数独,用?做占位符
   hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar sudoku /root/input/suduku.txt

3. pi
   圆周率的计算,后两个参数数值越大,计算的越精准,消耗的时间和资源会更多
   hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar pi 1000 1000000
伪分布式集群
其实伪分布式集群和完全分布式集群的思路是完全一样的,区别就在于伪分布式集群中,机器只有一台。搭建伪分布式集群的时候,完全是按照完全分布式来搭建的。
PS: 开发中的测试阶段,一般都是使用伪分布式来测试的(因为伪分布式也可以执行完全分布式的所有的任务)。设计部署到服务器一般是在高可用的完全分布式集群中(HA)。
一个集群中的几个角色
NameNode: 相当于一个人的大脑,是集群中对外提供服务的节点。
DataNode: 相当于一个人的身体,是集群中用来存储数据的节点。
SecondaryNameNode: 
配置伪分布式集群
准备工作:
1. Java环境已经准备好。
2. 防火墙已经关闭。
3. hosts文件中需要做好映射关系。
1. 配置文件 core-site.xml
   <configuration>
       <property>
           <!-- 指定谁是NameNode  -->
           <name>fs.defaultFS</name>
           <value>hdfs://qianfeng01:8020</value>
       </property>
   </configuration>
   
2. 配置文件 hdfs-site.xml
   <configuration>
       <!--  配置HDFS集群中文件副本的数量  -->
       <property>
           <name>dfs.replication</name>
           <value>1</value>
       </property>
   </configuration>

3. 配置slaves[这里要写出所有的DataNode节点是谁]
   PS: 在完全分布式集群中,如果这里写主机名,一定要保证hosts文件中的映射关系已经做好,否则就写IP地址
   
4. 修改集群文件保存的路径,配置 core-site.xml
   <property>
        <!-- 指定集群上的文件保存的路径  -->
        <name>hadoop.tmp.dir</name>
        <!-- 这个文件夹如果不存在,会自动的创建 -->
        <value>/usr/local/hadoop/data</value>
    </property>
    
5. 配置SecondaryNameNode的节点位置,配置 hdfs-site.xml
   <!--  配置SecondaryNameNode节点  -->
   <property>
       <name>dfs.namenode.secondary.http-address</name>
       <value>qianfeng01:50090</value>
   </property>
   
6. 格式化namenode
   hadoop namenode -format
   
7. 开启服务
   start-dfs.sh		# 开启HDFS集群
   stop-dfs.sh	    # 关闭HDFS集群
   hadoop-daemon [namenode|datanode|secondarynamenode] [start|stop]	#开启指定的服务
   
   
注意事项:
1. 如果配置文件有修改,那么就需要重新格式化集群
2. 如果要重新格式化集群,就需要将原来的 hadoop.tmp.dir 目录删除掉
完全分布式集群
HDFS

可以运行在大量的廉价的机器上,提供容错机制,可以为用户提供高性能的数据的存取服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值