堕络的小屋

  • 首页
  • 小工具
    • 百度
    • 武器库
    • 堕络的图床
    • 子域名爆破
    • 音乐搜索器
    • 手绘相片制作
    • 微博图片找博主
    • 社会主义核心价值观编码转换
  • 值得一看
    • 黄色
    • 天天优惠
    • 剑灵小助手
  • 系统
    • 高清壁纸
    • 全网优惠券
    • 付费音乐解锁
    • 自动签到框架
    • 我们的足迹系统
    • 网易云音乐签到打卡
    • 全自动网页生成系统
    • 自动采集活动线报
堕络哥哥
一个专业打杂的程序猿
  1. 首页
  2. Linux
  3. 正文

Hadoop单节点环境搭建

2017年11月16日

下面介绍怎么在Linux系统上设置和配置一个单节点的Hadoop,让你可以使用Hadoop的MapReduce和HDFS(Hadoop Distributed File System)做一些简单的操作。

准备工作

1)下载Hadoop;
2)为你的linux系统安装JDK,推荐的JDK版本可以在这里(http://wiki.apache.org/hadoop/HadoopJavaVersions)查看;
3)为你的系统安装ssh。

设置环境变量

1)为Hadoop设置JDK信息:
export JAVA_HOME=/usr/java/latest
2)将Hadoop解压到某个目录,例如/usr/test目录下。
然后编辑文件/etc/profile增加:
export HADOOP_INSTALL=/usr/test/hadoop-2.7.1
export PATH=PATH:HADOOP_INSTALL/bin
保存文件,然后使用命令source /etc/profile重新编译使配置生效。
执行下面的命令,如果配置正确,则会正确输出Hadoop的版本信息:
hadoop version

单节点模式

默认情况下,Hadoop已经被配置到单节点模式,因此不需要在做额外的配置。
下面演示了一个例子,创建一个input目录,并放入一些文件,然后运行Hadoop的一个例子:

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'
$ cat output/*

伪分布式

Hadoop也能被运行在伪分布式环境下,每个Hadoop节点都是一个独立的Java进程。

配置

需要配置的配置文件有:
etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

设置ssh无密匙登录

通过下面的方式检查你是否可以无需密匙访问ssh:

$ ssh localhost

如果你不能无密匙访问,则需要执行下面的命令:

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ export HADOOP\_PREFIX=/usr/local/hadoop

下面执行一个本地的MaReduce任务。

1)格式化文件系统

$ bin/hdfs namenode -format

2)开启NameNode精灵进程和DataNode精灵进程

如果该处出现错误“localhost: Error: JAVA_HOME is not set and could not be found”,则可以在libexec/hadoop-config.sh中直接配置“export JAVA_HOME=/usr/java/latest”。
hadoop精灵进程日志记录在HADOOP_LOG_DIR文件夹,默认是HADOOP_HOME/logs。
3)查看NameNode的web接口,默认为:

-NameNode - http://localhost:50070/

4)指定用于执行MapReduce任务的HDFS文件夹

$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>

5)拷贝输入文件到分布式文件系统

$ bin/hdfs dfs -put etc/hadoop input

input必须在hdfs文件系统上创建好

6)运行提供的例子

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

注意input和output对应hdfs上的文件夹

7)检查输出文件:从分布式文件系统拷贝输出文件到本地文件系统,并检测它们

$ bin/hdfs dfs -get output output
$ cat output/*

或者直接在分布式文件系统上查看输出文件:

$ bin/hdfs dfs -cat output/*

8)当你结束后,停止所有精灵进程

$ sbin/stop-dfs.sh

单节点YARN

你能在伪分布式模式下使用YARN运行一个MapReduce任务,需要设置一些参数,并且运行ResourceManager精灵进程和NodeManager精灵进程。
假定你已经做了上一节的1~4步,接下来做下面的步骤:
1)配置etc/hadoop/mapred-site.xml参数如下:

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

配置etc/hadoop/yarn-site.xml参数如下:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

2)启动ResourceManager精灵进程和NodeManager精灵进程

$ sbin/start-yarn.sh

3)查看ResourceManager的web接口,默认为:

-ResourceManager - http://localhost:8088/

4)运行一个MapReduce任务

5)当你结束后,停止所有精灵进程:

$ sbin/stop-yarn.sh

下面关于

标签: Linux
最后更新:2017年11月16日

chenxing

'

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2024 堕络的小屋. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang