大数据入门教程系列之Hadoop环境搭建--Hadoop单机/伪分布式搭建配置

本篇文章主要介绍在windows下和mac系统下搭建hadoop单机/伪分布式搭建配置。

推荐文章:

mac下基于centons7安装配置apache hadoop

大数据入门教程系列之Hadoop环境搭建--新建Hadoop用户(用于环境配置和hadoop安装)

单机和伪分布式区别:

单机模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。默认情况下,Hadoop被配置成以非分布式模式运行的一个独立Java进程。hadoop完全分布式:3个及以上的实体机或者虚拟机组件的机群。通过分析bin/hadoop脚本可知,-jar并不是bin/hadoop脚本定义的参数,此脚本会把-jar作为Java的参数,Java的-jar参数表示执行一个Jar文件(这个Jar文件必须是一个可执行的Jar,即在MANIFEST中定义了主类),此时外部定义的classpath是不起作用的,因而会抛出java.lang.NoClassDefFoundError异常。而jar是bin/hadoop脚本定义的参数,会调用Hadoop自己的一个工具类RunJar,这个工具类也能够执行一个Jar文件,并且外部定义的classpath有效。

 

伪分布模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点(NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode),请注意分布式运行中的这几个结点的区别:从分布式存储的角度来说,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。从分布式应用的角度来说,集群中的结点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。

详细步骤:

1、下载

官网:http://hadoop.apache.org/

 

 

2、上传

先新建个目录用于存放hadoop软件安装(使用toor用户新建)

3、解压

 

sudo tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/

重命名

sudo mv ./hadoop-2.7.6/ ./hadoop

 

修改hadoop文件夹到所属者(使用root用户)

 

chown -hR hadoop /usr/local/hadoop/

修改hadoop文件夹到所属者(使用root用户)

 

chgrp -hR hadoop /usr/local/hadoop/

检查hadoop是否可用(需要先配置第四步)

 

4、配置hadoop环境变量

vim ~/.bashrc
# 让环境变量立即生效
source ~/.bashrc 

 

export JAVA_HOME=/usr/java/jdk1.8.0_151
export HADOOP_HOME=/usr/local/hadoop        # hadoop的安装目录,替换为你的hadoop的安装目录
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

5、使用hadoop

systemctl status firewalld    # 查看防火墙状态
systemctl stop firewalld      # 关闭防火墙
systemctl disable firewalld   # 禁止防火墙开机自启动

getenforce    # 查看守护进程状态
setenforce 0  # 临时关闭守护进程

永久关闭守护进程,笔者使用的此方法
vim /etc/selinux/config   
修改此处
SELINUX=disabled 

 

 

 

到此hadoop环境已经安装配置完成,接下来使用之前需要做2件事(使用root用户) 

systemctl stop firewalld 关闭防火墙

 

getenforce 查看selinux守护进程
setenforce 0 关闭selinux守护进程

 

伪分布式配置

6、修改配置文件(建议下到本地修改后上传覆盖)

 ①修改core-site.xml,在configuration节点下添加如下内容

 <!-- Hadoop 文件系统的临时目录(NameNode和DataNode默认存放在hadoop.tmp.dir目录)-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
 
    <!-- 配置NameNode的URI -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://Master:9000</value>
    </property>

②修改hdsf-site.xml,在configuration节点下添加如下内容

<!-- Master可替换为IP -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>Master:50070</value>
    </property>
    <!-- 设置系统里面的文件块的数据备份个数,默认是3 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <!-- NameNode结点存储hadoop文件系统信息的本地系统路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <!-- DataNode结点被指定要存储数据的本地文件系统路径,这个值只对NameNode有效,DataNode并不需要使用到它 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>

③修改mapred-site.xml,在configuration节点下添加如下内容

 <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.app-submission.cross-platform</name>
        <value>true</value>
    </property>

④修改yarn-site.xml,在configuration节点下添加如下内容

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.234.136</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

7、启动

 ①格式化namenode

hdfs namenode -format

Exiting with status 0 表示成功

②开启namenode和datanode进程

start-dfs.sh和start-all.sh区别

https://blog.csdn.net/zhang0558/article/details/53169204

start-dfs.sh
start-all.sh(方式2)

 

 

方式1

没配置ssh免密,都直接输即可

 jps查看进程NameNode和NameNode表示成功

③启动成功后,在浏览起中输入http://Master:50070查看NameNode和DataNode的相关信息,还可以在线查看HDFS中的文件。

stop-dfs.sh

停止

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值