hadoop-2.7.2单机伪集群部署

概述

Hadoop 可以单机独立运行,也可以单机伪集群方式后台运行,然后将 Hive、Spark 接入运行,适合平时开发测试使用。伪集群方式部署需要将 DataNode、ResourceManager、NodeManager、NameNode 这几个服务启动,相比于真正集群方式启动少了 JournalNode、DFSZKFailoverController、Zookeeper,占用内存资源更少,更快将单机环境搭建好。

参考官方文档 Apache Hadoop 2.7.2 – Hadoop: Setting up a Single Node Cluster.

准备安装包

链接:https://archive.apache.org/dist/hadoop/core/hadoop-2.7.2/hadoop-2.7.2.tar.gz

解压到服务器的 /home/server/hadoop-2.7.2

在 /home/server/hadoop-2.7.2 路径下创建 tmp 文件夹(用来做 hadoop 的临时文件夹)

mkdir -p /home/server/hadoop-2.7.2/tmp/logs

设置环境变量

编辑 /etc/bashrc

将 hadoop 的目录写进 PATH 环境变量中

# hadoop
export HADOOP_HOME=/home/server/hadoop-2.7.2

修改主机名以及/etc/hosts

建议将本机设置成master,虽然说直接用ip,不用主机名也可以,但也仅限于对部署hadoop可以,后续基于这一套hadoop再去部署其他的中间件(比如Hive、Spark等),就会出现各种各样的问题,所以建议还是设置主机名和ip的映射

设置主机名

sudo hostnamectl set-hostname master

修改 /etc/hosts

192.168.1.111 master

准备系统 hadoop 账号

为了方便,下面的一切操作都用 hadoop 账号进行操作,如果您已经有了 hadoop 账号,可以直接切换成 hadoop 账号进行后续的操作,如果还没有,可以按下面方式创建

# 创建账号
sudo useradd hadoop -m -s /bin/bash

# 设置密码
sudo passwd hadoop

配置本机免密登陆

测试是否可以免密登陆 ssh localhost,如果没有提示需要输入密码,那就是可以免密登陆。

如果还不可以免密登陆,可以按下面方式设置

1、进入 ~/.ssh 目录,没有这个目录就手动创建

2、执行 ssh-keygen -t rsa 生成密钥,可以看到 ~/.ssh 目录下生成了 id_rsa、id_rsa.pub 这两个文件

3、执行 ssh-copy-id hadoop@localhost,可以看到 ~/.ssh 目录下的 authorized_keys 文件中已经有了 hadoop 账号登陆 localhost 的公钥

4、再试试 ssh localhost 就可以免密登陆了

修改配置文件

core-site.xml

修改 etc/hadoop/core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>
</configuration>

hdfs-site.xml

修改 etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <!-- 重新设置临时目录位置 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/server/hadoop-2.7.2/tmp</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file://${hadoop.tmp.dir}/dfs/name</value>
    </property>
</configuration>

mapred-site.xml

修改 etc/hadoop/mapred-site.xml(如果没有这个文件,那就从 mapred-site.xml.template 复制一份)

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

yarn-site.xml

修改 etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/usr/local/hadoop-2.7.2/tmp/nm-local-dir</value>
    </property>
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>/usr/local/hadoop-2.7.2/tmp/logs</value>
    </property>
</configuration>

启动 hdfs

初始化

./bin/hdfs namenode -format

启动

./sbin/start-dfs.sh

启动 yarn

./sbin/start-yarn.sh

测试

测试访问 yarn web 页面

http://ip:8088/

测试访问 hdfs web 页面

http://ip:50070/

测试跑任务

1、hdfs 创建 input 目录

./bin/hdfs dfs -mkdir /input

2、将 hadoop 的配置文件当作测试数据,上传到 hdfs 中

./bin/hdfs dfs -put etc/hadoop /input

3、运行测试用例

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep /input/hadoop /output 'dfs[a-z.]+'

4、查看输出

./bin/hdfs dfs -ls /

可以看到有 output 文件夹,里面有_SUCCESS、part-r-00000 两个文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值