目的
本文档介绍了如何设置和配置单节点Hadoop安装,以便您可以使用Hadoop MapReduce和Hadoop分布式文件系统(HDFS)快速执行简单的操作。
先决条件
支持平台
支持GNU / Linux作为开发和生产平台。 Hadoop在具有2000个节点的GNU / Linux集群上得到了证明。
Windows也是受支持的平台,但是以下步骤仅适用于Linux。 要在Windows上设置Hadoop,请参见Wiki页面
https://cwiki.apache.org/confluence/display/HADOOP2/Hadoop2OnWindows
需要的软件支撑
Linux所需的软件包括:
必须安装Java™。 HadoopJavaVersions中描述了推荐的Java版本。
https://cwiki.apache.org/confluence/display/HADOOP2/HadoopJavaVersions
如果要使用可选的启动和停止脚本,则必须安装ssh且sshd必须正在运行以使用管理远程Hadoop守护程序的Hadoop脚本。 另外,建议也安装pdsh以便更好地进行ssh资源管理。
安装软件:
需要安装
ssh pdsh
---------------------------------------------------------------------------------
下载hadoop 版本
http://www.apache.org/dyn/closer.cgi/hadoop/common/
-----------------------------------------------------------------------------------可以下载相应的版本
准备启动Hadoop集群
解压缩下载的Hadoop发行版。 在发行版中,编辑文件/etc/hadoop/ hadoop-env.sh以定义一些参数,如下所示:
vi /usr/local/hadoop-3.2.1/etc/hadoop/hadoop-env.sh 修改内容 export JAVA_HOME=/usr/local/jdk1.8.0_251 进行测试 /usr/local/hadoop-3.2.1/bin/hadoop [root@nn2 bin]# /usr/local/hadoop-3.2.1/bin/hadoop Usage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS] or hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS] where CLASSNAME is a user-provided Java class OPTIONS is none or any of: buildpaths attempt to add class files from build tree --config dir Hadoop config directory --debug turn on shell script debug mode --help usage information hostnames list[,of,host,names] hosts to use in slave mode hosts filename list of hosts to use in slave mode loglevel level set the log4j level for this command workers turn on worker mode SUBCOMMAND is one of: Admin Commands: daemonlog get/set the log level for each daemon Client Commands: archive create a Hadoop archive checknative check native Hadoop and compression libraries availability classpath prints the class path needed to get the Hadoop jar and the required libraries conftest validate configuration XML files credential interact with credential providers distch distributed metadata changer distcp copy file or directories recursively dtutil operations related to delegation tokens envvars display computed Hadoop environment variables fs run a generic filesystem user client gridmix submit a mix of synthetic job, modeling a profiled from production load jarrun a jar file. NOTE: please use "yarn jar" to launch YARN applications, not this command. jnipath prints the java.library.path kdiag Diagnose Kerberos Problems kerbname show auth_to_local principal conversion key manage keys via the KeyProvider rumenfolder scale a rumen input trace rumentrace convert logs into a rumen trace s3guard manage metadata on S3 trace view and modify Hadoop tracing settings version print the version Daemon Commands: kms run KMS, the Key Management Server SUBCOMMAND may print help when invoked w/o parameters or with -h. 会出现以上的内容 这将显示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进程中运行。
修改hadoop hfds 的配置文件,修改hdfs-site.xml的配置文件
[root@nn4 ~]# more /usr/local/hadoop-3.2.1/etc/hadoop/core-site.xml fs.defaultFShdfs://localhost:9000 修改hadoop core 的配置文件 修改hadoop dfs 的配置文件dfs.replication1设置无密码SSH 现在检查您是否可以在没有密码的情况下SSH到本地主机: 如果没有密码就无法SSH到本地主机,请执行以下命令: $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
执行
以下说明是在本地运行MapReduce作业。 如果要在YARN上执行作业,请参阅“单节点上的YARN”。
格式化文件系统: bin/hdfs namenode -format 启动NameNode守护程序和DataNode守护程序: 需要修改的内容 HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root $ sbin/start-dfs.sh hadoop守护程序日志输出将写入$ HADOOP_LOG_DIR目录(默认为$ HADOOP_HOME / logs)。 可通过 http://192.168.49.134:9870/explorer.html#/ 进行访问 创建hdfs的目录然后执行任务 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/hdfs dfs -ls 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/* 或者 bin/hdfs dfs -cat output/* 停止dfs ./stop-dfs.sh 您可以通过设置一些参数并另外运行ResourceManager守护程序和NodeManager守护程序,以伪分布式模式在YARN上运行MapReduce作业。 以下指令假定上述指令的1.〜4.步骤已经执行。 如下配置参数:
配置mapred-site.xml
mapreduce.framework.nameyarnmapreduce.application.classpath$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*etc/hadoop/yarn-site.xml:yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.nodemanager.env-whitelistJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME启动nodemanager 和 resourcemanager sbin/start-yarn.sh 可以通过浏览器进行检查 http://192.168.49.134:8088/cluster/scheduler 可以通过 sbin/stop-yarn.sh