概述
一、支持的平台
- 支持GNU/Linux作为开发和生产平台。
- Windows也是一个支持的平台,下面步骤仅适用于Linux。
二、所需软件
所需的Linux软件包括:
- Java必须安装。
- 如果要使用可选的启动和停止脚本,必须安装ssh,并且必须运行sshd才能使用管理远程Hadoop守护程序的Hadoop脚本。此外,建议安装pdsh以获得更好的ssh资源管理。
三、安装软件
如果你的集群没有必要的软件,你需要安装它。
$ sudo apt-get install ssh
$ sudo apt-get install pdsh
四、下载
在hadoop.apache.org中下载当前最新版本hadoop3.1.0。
五、准备启动Hadoop集群
解压下载的Hadoop发行版。在发行版中,编辑文件etc/hadoop/hadoop-env.sh来定义一些参数,如下所示:
#设置为Java安装的根目录
导出JAVA_HOME=/usr/java/latest
尝试以下命令:
$ bin/hadoop
这将显示hadoop脚本的使用文档。
启动hadoop集群有三种模式:
- 本地(独立)模式
- 伪分布式模式
- 完全分布式模式
1、本地(独立)模式
默认情况下,Hadoop被配置为以非分布式模式运行,作为单个Java进程。这对调试很有用。
以下示例将解压后的conf目录复制为输出,然后查找并显示给定正则表达式的每个匹配项。输出写入给定的输出目录。
$ mkdir输入
$ cp etc / hadoop / *。xml输入
$ bin / hadoop jar share / hadoop / mapreduce / hadoop-mapreduce-examples-3.1.0.jar grep input output'dfs [az。] +'
$ cat输出/ *
2、伪分布式操作
Hadoop也可以在伪分布式模式下的单节点上运行,其中每个Hadoop守护进程都在单独的Java进程中运行。
使用一下配置:
在etc/hadoop/core-site.xml中:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop000:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
在etc/hadoop/HDFS-site.xml中:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
设置passphraseless 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
修改etc/hadoop/workers,注意:workers这个文件就是hadoop2.x版本中的slaves。
hadoop000 #主机名
格式化文件系统:
$ bin / hdfs namenode -format
启动NameNode守护进程和DataNode守护进程:
$ sbin / start-dfs.sh
浏览NameNode的Web界面:
http://localhost:9870
配置YARN在单个节点上:
在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中:
<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>
启动ResourceManager守护进程和NodeManager守护进程:
$ sbin / start-yarn.sh
浏览ResourceManage的Web界面:
http://localhost:8088/
运行MapReduce作业。
停止进程:
$ stop-dfs.sh
$ stop-yarn.sh
注:
如果启动HDFS时出现以下错误:
Starting namenodes on [hadoop000]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop000]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-04-13 07:37:05,439 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解决办法:
一定要在文档的最前面添加参数!!!
$ vim start-dfs.sh
$ vim stop-dfs.sh
#分别在文档的最前面,添加如下参数:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
如果启动YARN时出现以下错误:
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
解决办法:
一定要在文档的最前面添加参数!!!
$ vim start-yarn.sh
$ vim stop-yarn.sh
#分别在两个文件最前端,添加如下参数:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
最后
以上就是殷勤小土豆为你收集整理的Hadoop3.1.0(伪分布式)安装教程的全部内容,希望文章能够帮你解决Hadoop3.1.0(伪分布式)安装教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复