共计 5682 个字符,预计需要花费 15 分钟才能阅读完成。
最近在学习大数据,需要安装 Hadoop,自己弄了好久,最后终于弄好了。网上也有很多文章关于安装 Hadoop 的,但总会遇到一些问题,所以把在 CentOS 7 安装 Hadoop 3.0.0 的整个过程记录下来,有什么不对的地方大家可以留言更正。
一、ssh 免密登录
1、测试是否能免密登录
# ssh localhost
The authenticity of host ‘localhost (::1)’ can’t be established.
2、设置免密登录
1)、去掉 /etc/ssh/sshd_config 中的两行注释,如没有则添加,所有服务器都要设置的:
#RSAAuthentication yes
#PubkeyAuthentication yes
2)、生成秘钥:
# ssh-keygen -t rsa
备注:输入命令后回车 4 次
3)、复制到公共密钥中:
# cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
4)、将秘钥复制到目标服务器:
# ssh-copy-id 目标服务器 IP
5)、测试:( 没有报错,并没有提示输入目标服务器用户密码,用户切换到目标服务器用户名则成功 )
# ssh 目标服务器 IP
备注:配置好了 hadoop1 到 hadoop2 免密登录,同时需要配置 hadoop2 到 hadoop1 的免密登录,在 hadoop2 上操作,过程同上
二、安装 JDK
hadoop-3.0.0 需要 jdk1.8,此处省略安装过程,网上很多,过程也比较简单
三、安装 hadoop
1、下载 hadoop:
http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/
2、解压安装:
1)、复制 hadoop-3.0.0.tar.gz 到 /usr/hadoop 目录下,然后
#tar -xzvf hadoop-3.0.0.tar.gz
解压,解压后目录为:/usr/hadoop/hadoop-3.0.0,Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
#cd /usr/hadoop/hadoop-3.0.0
#./bin/hadoop version
2),在 /usr/hadoop/ 目录下,建立 tmp:
#mkdir /usr/hadoop/tmp
3)、设置环境变量:
#vi /etc/profile
# set hadoop path
export HADOOP_HOME=/usr/hadoop/hadoop-3.0.0
export PATH=$PATH:$HADOOP_HOME/bin
4)、使环境变量生效,终端中运行如下命令:
#source /etc/profile
5)、设置 hadoop:
一共需要配置主要的 6 个文件:
hadoop-3.0.0/etc/hadoop/hadoop-env.sh
hadoop-3.0.0/etc/hadoop/yarn-env.sh
hadoop-3.0.0/etc/hadoop/core-site.xml
hadoop-3.0.0/etc/hadoop/hdfs-site.xml
hadoop-3.0.0/etc/hadoop/mapred-site.xml
hadoop-3.0.0/etc/hadoop/yarn-site.xml
⑴、 配置 hadoop-env.sh:
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/java/jdk1.8.0_152 // 根据自己 jdk 安装目录配置
⑵、 配置 yarn-env.sh:
#The java implementation to usr
export JAVA_HOME=/usr/java/jdk1.8.0_152 // 根据自己 jdk 安装目录配置
⑶、 配置 core-site.xml:
<!-- 指定 HADOOP 所使用的文件系统 schema(URI),HDFS 的老大(NameNode)的地址 -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>HDFS 的 URI,文件系统://namenode 标识: 端口号 </description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
<description>namenode 上本地的 hadoop 临时文件夹 </description>
</property>
</configuration>
⑷、 配置 hdfs-site.xml:
<configuration>
<!—hdfs-site.xml-->
<property>
<name>dfs.replication</name>
<value>1</value>
<description> 副本个数,配置默认是 3, 应小于 datanode 机器数量 </description>
</property>
</configuration>
⑸、 配置 mapred-site.xml:
<!-- 指定 mr 运行在 yarn 上 -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
⑹、 配置 yarn-site.xml:
<!-- 指定 YARN 的老大(ResourceManager)的地址 -->
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!– reducer 获取数据的方式 –>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
备注:以上配置都是以最简配置,还有很多配置可以自行添加
6)、将 /usr/hadoop 复制到其他服务器:
scp -r /usr/hadoop root@192.168.1.11:/usr/hadoop
7)、格式化 namenode:
#CD /usr/hadoop/hadoop-3.0.0
# ./bin/hdfs namenode -format
成功的话,会看到“successfully formatted”和“Exitting with status 0”的提示,若为“Exitting with status 1”则是出错
备注:只需格式化 namenode,datanode 不需要格式化(若格式化了,可将 /usr/hadoop/tmp 目录下文件都删除 ),所以先将安装文件夹复制到其他服务器,再格式化
四、测���:
1、启动 HDFS:
#CD /usr/hadoop/hadoop-3.0.0
# sbin/start-dfs.sh
如果运行脚本报如下错误,
ERROR: Attempting to launch hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
Starting datanodes
ERROR: Attempting to launch hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to launch hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.
解决方案
(缺少用户定义而造成的)因此编辑启动和关闭
$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh
顶部空白处添加
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2) 启动 ResourceManager 和 NodeManager:
#CD /usr/hadoop/hadoop-3.0.0
#sbin/start-yarn.sh
如果启动时报如下错误,
Starting resourcemanager
ERROR: Attempting to launch yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.
解决方案
(也是由于缺少用户定义)
是因为缺少用户定义造成的,所以分别编辑开始和关闭脚本
$ vim sbin/start-yarn.sh
$ vim sbin/stop-yarn.sh
顶部空白添加
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
3)、启动验证:
执行 jps 命令,出现下图基本完成
备注:也可以使用下面命令同时启动 HDFS 和 ResourceManager、NodeManager:
#CD /usr/hadoop/hadoop-3.0.0
#sbin/start-all.sh
Hadoop2.3-HA 高可用集群环境搭建 http://www.linuxidc.com/Linux/2017-03/142155.htm
Hadoop 项目之基于 CentOS7 的 Cloudera 5.10.1(CDH)的安装部署 http://www.linuxidc.com/Linux/2017-04/143095.htm
Hadoop2.7.2 集群搭建详解(高可用)http://www.linuxidc.com/Linux/2017-03/142052.htm
使用 Ambari 来部署 Hadoop 集群(搭建内网 HDP 源)http://www.linuxidc.com/Linux/2017-03/142136.htm
Ubuntu 14.04 下 Hadoop 集群安装 http://www.linuxidc.com/Linux/2017-02/140783.htm
CentOS 6.7 安装 Hadoop 2.7.2 http://www.linuxidc.com/Linux/2017-08/146232.htm
Ubuntu 16.04 上构建分布式 Hadoop-2.7.3 集群 http://www.linuxidc.com/Linux/2017-07/145503.htm
CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建 http://www.linuxidc.com/Linux/2017-06/144932.htm
Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程 http://www.linuxidc.com/Linux/2017-06/144926.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-02/150812.htm