注:本文章仅为记录本人安装过程,如有不足之处欢迎大家指正。
一、安装前提
需已安装jdk,使用如下命令查看java版本以及安装位置
# 查看java版本
java -version
# 查看jdk安装位置
echo $JAVA_HOME
具体安装教程可参考另一篇文章:
二、配置SSH免密登陆
如不配置免密,每次启动hadoop都要输入几次密码,很麻烦,配置后则无需密码
1.查看是否安装有ssh
rpm -qa | grep ssh
一般CentOS带有ssh,如果没有的话使用如下命令分别安装即可
# ssh服务
yum -y install openssh-server
# ssh客户端
yum -y install openssh-clients
2.生成密钥文件
ssh-keygen -t rsa
执行命令后连按三次回车即可,红框标注处为密钥生成位置
3.拷贝密钥
由于搭建的是伪分布式,所以拷贝给本机就行
ssh-copy-id docker
这个docker是我的本机名,也可以替换为本机ip地址
询问是否确认继续连接时输入yes再回车,要求输入密码时输入后再回车(输入的密码不可见)
4.测试是否配置成功
ssh docker
可以看到直接ssh已经不用输入密码了
这里输入命令exit退出ssh终端
三、下载解压并配置环境变量
1.切换至指定目录下(下列代码以本人常用路径为例)
cd /usr/local/
2.下载hadoop2.10.2.tar.gz
此处使用的清华镜像,也可替换为其他镜像源
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz
如果没有wgt,使用如下命令安装即可:
yum -y install wget
也可以通过Xftp等工具直接上传至该目录下
3.解压并删除压缩包
tar -zxvf ./hadoop-2.10.2.tar.gz && rm -rf ./hadoop-2.10.2.tar.gz
4.配置环境变量
vi /etc/profile
在该文件中加入如下代码并保存
# hadoop environment
export HADOOP_HOME=/usr/local/hadoop-2.10.2 #(参照自身路径)
export JAVA_LIBRARY_PATH=/usr/local/hadoop-2.10.2/lib/native
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使环境变量生效
source /etc/profile
查看hadoop版本信息
hadoop version
三、修改配置文件
1.修改core-site.xml文件
# 切换路径
cd /usr/local/hadoop-2.10.2/etc/hadoop
# 编辑文件
vi core-site.xml
将如下代码填入configuration标签中
<property>
<name>fs.defaultFS</name>
<!-- 这里填的是你自己的ip,端口默认-->
<value>hdfs://192.168.217.128:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!-- 这里填的是你自定义的hadoop工作的目录-->
<value>/usr/local/hadoop-2.10.2/tmp</value>
</property>
<property>
<name>hadoop.native.lib</name>
<value>false</value>
<description>Should native hadoop libraries, if present, be used.
</description>
</property>
2.修改hadoop-env.sh文件
vi hadoop-env.sh
找到该条JAVA_HOME环境变量并将箭头标识的${JAVA_HOME}改为自己的java路径,如:
#将该句修改为自己java路径
export JAVA_HOME=/usr/local/jdk1.8.0_202
3.修改hdfs-site.xml文件
vi hdfs-site.xml
将如下代码填入configuration标签中
<property>
<name>dfs.replication</name>
<!--副本数量,单机版设置为1即可-->
<value>1</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<!--这里是你自己的ip,端口默认-->
<value>192.168.217.128:50090</value>
</property>
四、配置YARN(伪分布式可跳过,直接第五步)
1.修改mapred-site.xml文件
# 通过模板文件生成mapred-site.xml文件
cp mapred-site.xml.template ./mapred-site.xml
# 修改
vi mapred-site.xml
将如下代码填入configuration标签中
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2.修改yarn-site.xml文件
vi yarn-site.xml
将如下代码填入configuration标签中
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- 自己的ip端口默认 -->
<value>192.168.217.128</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
五、格式化NameNode,测试启动
1.格式化namenode
切换路径
cd /usr/local/hadoop-2.10.2/sbin/
执行格式化
hadoop namenode -format
出现如下输出则成功
2.启动守护进程
./start-dfs.sh
如果出现是否继续连接,输入yes回车即可
使用命令jps查看进程,可以看到如下4个进程则启动成功
这个时候可以打开浏览器查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件,地址为http://虚拟机或服务器ip:50070
如果无法访问的话有可能是防火墙问题,关闭防火墙即可
3.启动YARN(伪分布式不启动 YARN 也可以)
./start-yarn.sh
再次使用命令jps查看进程可以发现多了如下两个进程
4.启动关闭命令示例
由于前面已经配置了环境变量,所有不需要再进入hadoop所在目录执行启动或关闭命令,在任意位置可直接输入命令。
hadoop官方推荐使用分步命令进行启动关闭操作
(1).分步启动
# 先启动hadoop,一般的学习环境下只需要NameNode和DataNode即可
start-dfs.sh
# 再启动yarn(伪分布式可不启动)
start-yarn.sh
(2).分步关闭
# 先关闭yarn
stop-yarn.sh
# 再关闭hadoop
stop-dfs.sh
(3).一键启动
start-all.sh
(4).一键关闭
stop-all.sh
参考连接:
https://dblab.xmu.edu.cn/blog/190/
https://www.linuxidc.com/Linux/2017-11/148349.htm/
总结
本文章仅为记录本人安装过程,如有不足之处欢迎大家指正。