本篇博客将主要介绍如何设置和配置单节点Hadoop安装,以便我们可以使用Hadoop 的MapReduce与HDFS快速执行简单的操作。
1、本系列以Ubuntu Linux作为开发和生产平台
2、Linux所需的软件包括:
如果群集中没有必需的软件,则需要安装它。在Ubuntu Linux上:
$ sudo apt-get install ssh
$ sudo apt-get install pdsh
可以从 Apache Download Mirrors下载获得最稳定的发行版
下载后,使用 : tar -zxvf tar包名,解压到指定位置!
编辑文件etc/ hadoop / hadoop-env.sh以定义一些参数
# set to the root of your Java installation
export JAVA_HOME=/usr/local/java/jdk1.8
export HADOOP_CONF_DIR=/usr/local/apps/hadoop-3.2.1/etc/hadoop
尝试以下命令:
$ bin / hadoop
这将显示hadoop脚本的用法文档
现在,我们可以以三种支持的模式之一启动Hadoop集群:
默认情况下,Hadoop被配置为在非分布式模式下作为单个Java进程运行。这对于调试很有用。
下面的示例复制解压缩的conf目录以用作输入,然后查找并显示给定正则表达式的每个匹配项。输出被写入给定的输出目录。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
$ cat output/*
Hadoop也可以以伪分布式模式在单节点上运行,其中每个Hadoop守护程序都在单独的Java进程中运行。
在以下配置文件中进行修改或添加内容
etc/hadoop/core-site.xml:
>
>
>fs.defaultFS >
>hdfs://localhost:9000 >
>
>
etc/hadoop/hdfs-site.xml:
>
>
>dfs.replication >
>1 >
>
>
设置无密码SSH
现在检查您是否可以在不使用密码的情况下SSH到本地主机:
$ ssh localhost
如果没有密码就无法SSH到本地主机,就执行以下命令:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
以下说明是在本地运行MapReduce作业:
$ bin/hdfs namenode -format
$ sbin/start-dfs.sh
hadoop守护程序日志输出将写入$ HADOOP_LOG_DIR目录(默认为$ HADOOP_HOME / logs)。
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/root
$ bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
$ bin/hdfs dfs -get output output
$ cat output/*
$ sbin / stop-dfs.sh
以伪分布式模式在YARN上运行MapReduce作业:
以下指令假定上述本地运行MapReduce作业指令的1.〜4. 步骤已经执行。
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_MAPRED_HOME </ value>
</ property>
</ configuration>
$ sbin/start-yarn.sh
ResourceManager- http:// localhost:8088 /
运行MapReduce作业。
$ sbin/stop-yarn.sh
有关设置完全分布式的非重要集群的信息,将在以后进行介绍!