Hadoop-2.6.5完整安装配置过程


一、Hadoop是什么?

  • Hadoop系统最初的源头来自于Apache Lucene项目下的搜索引擎子项目Nutch,该项目的负责人是Doug Cutting
  • 2003年,Google为了解决其搜索引擎中大规模Web网页数据的处理,研究发明了一套称为MapReduce的大规模数据并行处理技术
  • 2004年,在OSDI会议上发表了题为:“MapReduce: Simplified Data Processing on Large Clusters”的论文,简要介绍了MapReduce的基本设计思想。
  • Doug Cutting发现Google MapReduce所解决的大规模搜索引擎数据处理问题,正是他同样面临并急需解决的问题。因此,他尝试模仿Google MapReduce的设计思路,用Java设计实现了一套新的MapReduce并行处理系统,并将其与Nutch分布式文件系统NDFS结合,用以支持Nutch搜索引擎的数据处理
  • 2006年,将NDFSMapReduce从Nutch项目中分离出来,成为一套独立的软件系统,并用Doug Cutting小儿子当时牙牙学语称呼自己玩具小象的名字“Hadoop”命名了这个系统。

二、Hadoop-2.6.5安装配置

下面我们将以Hadoop-2.6.5(下载地址请见这里)为例,说明它的安装配置过程。

1. 修改主机名

我们需要在Linux CentOS的两个配置文件中修改主机名信息,具体操作主要包括两个步骤:

操作如下(示例):

(1)修改/etc/sysconfig下的network文件,将其中HOSTNAME的值修改为用户指定的主机名。

(a)打开network文件:

vi /etc/sysconfig/network

(b)修改network文件中HOSTNAME的值:

NETWORKING=yes
HOSTNAME=shengyphadoop

其中,shengyphadoop是我们指定的主机名

(2)修改/etc下的hosts文件,增加一条IP地址到主机名的映射信息。

192.168.238.101   localhost shengyphadoop

其中,192.168.238.101是CentOS所在主机的静态IP地址,shengyphadoop是我们指定的主机名。

待上述修改完成后,我们需要通过hostname命令使之生效

hostname  shengyphadoop

最后,我们可以选择ping命令hostname命令检查修改后的主机名,如下所示。
在这里插入图片描述


2. 下载并解压JDK

在当前配置中,我们用到的JDK是jdk1.8.0_191版本(下载地址请见【百度网盘】(链接:https://pan.baidu.com/s/14IpNNHfRJYQCzZ2kl11gYA ,提取码:4dhg).

(1)下载jdk1.8.0_191后,将它上传至CentOS系统(在这里,我们上传到的CentOS目录为:/home/shengyp/tools;采用filezilla(下载地址请见【百度网盘】(链接:https://pan.baidu.com/s/1tFVcIKtbraYg7CynDXtzaA ,提取码:o6oa))作为文件传输工具(即上传工具)。

(2)使用tar -zxf命令对jdk1.8.0_191进行解压:

[root@shengyphadoop tools]#tar -zxf  ./jdk-8u191-linux-x64.tar.gz

3. 配置环境变量

根据hadoop压缩包的解压路径,在系统全局配置文件/etc/profile中增加相应的环境变量,具体操作主要包括两个步骤:

操作如下(示例):

(1)进入hadoop-2.6.5.tar.gz包所在的目录(这里是:/home/shengyp/tools),通过tar -zxf命令对其进行解压:

[root@shengyphadoop tools]#tar -zxf  ./hadoop-2.6.5.tar.gz

(2)进入/etc/profile文件,在该文件的末尾处创建JAVA_HOME和HADOOP_HOME环境变量,并将它们进行赋值。

(a)打开/etc/profile文件:

[root@shengyphadoop tools]#vi  /etc/profile

(b)使用export命令增加JAVA_HOMEHADOOP_HOME两个环境变量,并对它们进行赋值。最后,在PATH变量中通过$符号引用以上两个变量,指定到它们各自的/bin和/sbin目录,并通过分号;依次进行黏贴。

export JAVA_HOME=/home/shengyp/tools/jdk1.8.0_191
export HADOOP_HOME=/home/shengyp/tools/hadoop-2.6.5
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$PATH

其中,JAVA_HOME的值为jdk-8u191-linux-x64.tar.gz的解压目录,HADOOP_HOME的值为hadoop-2.6.5.tar.gz的解压目录。


4. 修改Hadoop中5个主要配置文件

在hadoop-2.6.5.tar.gz的解压文件中,我们主要关注hadoop-2.6.5/etc/hadoop下的hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml5个主要配置文件。接下来,我们将给出它们的主要配置:

(1)在hadoop-env.sh文件中,修改JAVA_HOME变量,将它的值设置为jdk-8u191-linux-x64.tar.gz的解压目录,于是有:
在这里插入图片描述
值得进一步说明的是,如果在这里不进行设置,在格式化namenode节点时,将会报JAVA_HOME is not set and could not be found.的错误

以下帖子中同样提到了上述错误的解决办法:
hadoop启动过程中出现Error: JAVA_HOME is not set and could not be found.解决办法

【前奏开始】
在介绍以下4个配置文件中的核心配置,我们可以看看官方模板中的相关配置说明(请见【百度网盘】(链接:https://pan.baidu.com/s/1yq1uhVEAvVxHviFGixqXlg ,提取码:cjn4)。例如,在模板core-site-template.xml中,我们可以看到核心键-值(key-value)的模板配置,以及关于该配置的描述信息,如下图所示。
在这里插入图片描述
在这里插入图片描述
【前奏结束】

正曲开始…

(2)在core-site.xml文件中,增加的内容包括:

<configuration>
	<property>
		<name>fs.default.name</name>
        <value>hdfs://shengyphadoop:9000</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/shengyp/tools/hadoop-2.6.5/tmp</value>
	</property>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>shengyphadoop:9001</value>
	</property>
</configuration>

其中,
(a)键<name>fs.default.name</name>的值的模板为<value>hdfs://localhost:9000<value>,我们将其中的localhost设置为shengyphadoop,即本机的主机名,读者同样可以换成本机的IP地址;9000为默认端口号。

(b)键<name>hadoop.tmp.dir</name>的值的模板为<value>/tmp/hadoop-${user.name}<value>,即一个存储HDFS以及namenode相关信息的临时文件目录,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir命令新建tmp目录,并将该目录的地址赋值给上述键值。

(c)键<name>dfs.namenode.secondary.http-address</name>的值的模板为<value>localhost:9001<value>,我们将其中的localhost设置为shengyphadoop,即本机的主机名,读者同样可以换成本机的IP地址;9001为默认端口号。

(3)在hdfs-site.xml文件中,增加的内容包括:

<configuration>
	<property>
		<name>dfs.namenode.name.dir</name>
        <value>/home/shengyp/tools/hadoop-2.6.5/dfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/home/shengyp/tools/hadoop-2.6.5/dfs/data</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>

其中,
(a)键<name>dfs.namenode.name.dir</name>的值的模板为<value>file://${hadoop.tmp.dir}/dfs/name<value>,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建dfs/name目录,并将该目录的地址赋值给上述键值。

(b)键<name>dfs.datanode.data.dir</name>的值的模板为<value>file://${hadoop.tmp.dir}/dfs/data<value>,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建dfs/data目录,并将该目录的地址赋值给上述键值。

(c)键<name>dfs.replication</name>的值的模板为<value>3<value>,即副本集的个数,由于我们采用“伪分布式”部署模式,故将副本集的个数由3改为1。

(4)在mapred-site.xml文件中,增加的内容包括:

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>mapreduce.cluster.local.dir</name>
		<value>/home/shengyp/tools/hadoop-2.6.5/mapred/local</value>
	</property>
	<property>
		<name>mapreduce.jobtracker.system.dir</name>
		<value>/home/shengyp/tools/hadoop-2.6.5/mapred/system</value>
	</property>
</configuration>

其中,
(a)键<name>mapreduce.framework.name</name>的值的模板为<value>local<value>,由于我们采用yarn作为资源调度框架,进而为mapreduce进程分配资源。因此,这里将local改为yarn

(b)键<name>mapreduce.cluster.local.dir</name>的值的模板为<value>${hadoop.tmp.dir}/mapred/local<value>,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建/mapred/local目录,并将该目录的地址赋值给上述键值。

(c)键<name>mapreduce.jobtracker.system.dir</name>的值的模板为<value>${hadoop.tmp.dir}/mapred/system<value>,我们在hadoop-2.6.5.tar.gz的解压目录(/home/shengyp/tools/hadoop-2.6.5/)中通过mkdir -p命令新建/mapred/system目录,并将该目录的地址赋值给上述键值。

(5)在yarn-site.xml这个文件中,增加的内容包括:

<configuration>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>shengyphadoop</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
</configuration>

其中,
(a)键<name>yarn.resourcemanager.hostname</name>的值的模板为<value>0.0.0.0<value>,我们将其中的0.0.0.0地址修改为shengyphadoop,即本机的主机名,读者同样可以换成本机的IP地址

(b)键<name>yarn.nodemanager.aux-services</name>的值的模板为<value><value>,我们将该键值修改为mapreduce_shuffle。

为方便读者进一步查看相关配置,作者已将上述5个已填充的主要配置文件上传至百度网盘,请见【这里】(链接:https://pan.baidu.com/s/1l4Zzu8aQXMYju6sIwT30sw ,提取码:ks7q)


5. 启动Hadoop

完成上述主要配置后,我们可以正常启动Hadoop-2.6.5了。Hadoop的启动命令/脚本主要在/home/shengyp/tools/hadoop-2.6.5/bin目录,或者是/home/shengyp/tools/hadoop-2.6.5/sbin目录下。

(1)进入/home/shengyp/tools/hadoop-2.6.5/bin目录,通过hdfs namenode -format命令初始化namenode节点:

[root@shengyphadoop hadoop-2.6.5]#cd ./bin
[root@shengyphadoop hadoop-2.6.5]#hdfs namenode -format

注意,这时如果出现unknownhostexception错误,请见以下帖子:
hadoop分布式格式化时出现异常java.net.unknownhostexception

【小技巧开始】

当我们不记得命令参数时,可以使用-help命令来查看说明,例如:
在这里插入图片描述
【小技巧结束】

(2)在/home/shengyp/tools/hadoop-2.6.5/sbin目录(这里是/sbin目录,不是/bin目录)下,我们通过以下命令启动namenode、datanode、jobhistory、resourcemanager、nodemanager这5个守护进程

(a)通过hadoop-daemon.sh start namenode命令启动namenode进程
在这里插入图片描述
这里,我们可以看到:namenode进程的启动信息被写入了/home/shengyp/tools/hadoop-2.6.5/logs/hadoop-root-namenode-shengyphadoop.out这个日志文件中。换句话而言,我们可以通过查看该日志文件,追踪namenode进程的启动过程,尤其是排查相关错误。

(b)通过hadoop-daemon.sh start datanode命令启动datanode进程
在这里插入图片描述
类似地,datanode进程的启动信息被写入了/home/shengyp/tools/hadoop-2.6.5/logs/hadoop-root-datanode-shengyphadoop.out这个日志文件中。

(c)通过mr-jobhistory-daemon.sh start historyserver命令启动jobhistory进程
在这里插入图片描述
(d)通过yarn-daemon.sh start resourcemanager命令启动resourcemanager进程
在这里插入图片描述
(e)通过yarn-daemon.sh start nodemanager命令启动nodemanager进程
在这里插入图片描述
最后,我们可以通过jps命令查看目前系统中的守护进程
在这里插入图片描述
此外,我们同样可以通过hadoop-daemon.sh stop namenode命令
hadoop-daemon.sh stop datanode命令
mr-jobhistory-daemon.sh stop historyserver命令
yarn-daemon.sh stop resourcemanager命令
yarn-daemon.sh stop nodemanager命令来关闭
namenode进程datanode进程jobhistory进程jobhistory进程resourcemanager进程nodemanager进程

这里值得进一步说明的是,


6. Hadoop Web端口测试

除使用jps命令外,我们同样可以通过hadoop Web端口查看这些守护进程背后的Web服务。关于hadoop Web端口,请见常用hadoop和yarn的端口

(1)在50070端口进行测试,如下图所示:
在这里插入图片描述
(2)在8088端口进行测试,如下图所示:
在这里插入图片描述
(3)在8042端口进行测试,如下图所示:
在这里插入图片描述
(4)在19888端口进行测试,如下图所示:
在这里插入图片描述


三、总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。


​ 【彩蛋来了】

看完作者写的这篇博文,或许读者还想再找找描述类似内容的博文。预料之中,作者已将它们附上,请参见:

  1. centOS 6.4主机名的修改和网络配置ip、DNS等配置

  2. linux jdk1.7 下载

  3. 转(hadoop2.6.3环境搭建)

  4. hadoop_2.6.5集群安装

  5. Hadoop2.6.5安装部署及环境变量配置

  6. hadoop2.6.5 linux安装

  7. hadoop 2.6.5安装详细步骤

  8. Hadoop分别启动namenode,datanode,secondarynamenode等服务

  9. hadoop namenode启动不了_Hadoop 安装教程 - HA方式

updated in 2021.12.16

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值