本文档介绍了如何设置和配置单节点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
---------------------------------------------------------------------------------
http://www.apache.org/dyn/closer.cgi/hadoop/common/
-----------------------------------------------------------------------------------可以下载相应的版本
解压缩下载的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
jar run 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集群:
下面的示例复制解压缩的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.defaultFS
hdfs://localhost:9000
修改hadoop core 的配置文件
修改hadoop dfs 的配置文件
dfs.replication
1
设置无密码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.name
yarn
mapreduce.application.classpath
$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*
etc/hadoop/yarn-site.xml:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.env-whitelist
JAVA_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