天天看点

搭建单节点hadoop集群

安装和hadoop相匹配的java版本

Hadoop Java Versions - Hadoop - Apache Software Foundation

搭建单节点hadoop集群

https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions

下载hadoop安装包

Apache DownloadsHome page of The Apache Software Foundation

搭建单节点hadoop集群

https://www.apache.org/dyn/closer.cgi/hadoop/common/解压,并修改配置文件 etc/hadoop/hadoop-env.sh

# set to the root of your Java installation
  export JAVA_HOME=/usr/java/latest
           

执行命令查看hadoop命令的帮助文档

$ bin/hadoop
           

默认情况下,Hadoop 配置为以非分布式模式运行,作为单个 Java 进程。以下示例复制解压缩的 conf 目录用作输入,然后查找并显示给定正则表达式的每个匹配项。 输出到给定的输出目录。

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

例子

下面的例子展示了在本地运行一个MapReduce的job

1,格式化文件系统

$ bin/hdfs namenode -format
           

2,启动NameNode和DataNode

$ sbin/start-dfs.sh
           

可以在目录 $HADOOP_HOME/logs下面查看相应的log日志

如果出现错误:

ERROR: Attempting to operate on hdfs namenode as root
           

则需要向配置文件$HADOOP_HOME/etc/hadoop/hadoop-env.sh中添加以下内容:

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
           

再重新启动,运行JPS查看,可以看到NameNode和DataNode起来了。

3,可以在web页面查看NameNode,默认的网址为:

 http://localhost:9870/

4,创建HDFS目录执行MapReduce的job

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

5,向分布式文件系统复制输入文件

$ bin/hdfs dfs -mkdir input
  $ bin/hdfs dfs -put etc/hadoop/*.xml input
           
搭建单节点hadoop集群

6,运行提供的例子

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

7,检查输出文件:将输出文件从分布式文件系统复制到本地文件系统并检查它们:

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

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

bin/hdfs dfs -cat output/*
           

 8,停止NameNode和DataNode

$ sbin/stop-dfs.sh
           

单节点伪分布式环境配置:

修改配置文件:

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>
           

在单节点上运行YARN

1,配置参数

修改etc/hadoop/mapred-site.xml:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>
           

修改etc/hadoop/yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>
           

2,启动ResourceManager和NodeManager

$ sbin/start-yarn.sh
           

3,ResourceManager的web页面

http://localhost:8088/
           

4,运行MarReduce 的job

5,停止ResourceManager和NodeManager

$ sbin/stop-yarn.sh