hadoop伪分布式安装教程:
在安装hadoop之前我们需要做一些准备工作:
- 准备好一台linux的的虚拟机(本人使用的是centos 8)
- 准备好一些安装资源包:
jdk:国内镜像源下载
hadoop:国内镜像源下载
XshellH和Xftp:官网下载 - jdk和hadoop的部署
- 因为hadoop是Java编写的,因此在部署hadoop时,一定要把JDK配置好
- hadoop共有3种模式:完全分布式(集群分布模式)、伪分布式模式、本地运行模式。
- 本文部署的是伪分布模式,完全分布式比较复杂,后期可能会作出一个此类的教程
- SSH免密登录
- 启动hadoop
- 关闭hadoop
1.虚拟机的安装相信大家已经安装成功了,但是我们一定要注意自己的网络一定要可以和外界相通,通过ping www.baidu.com
可以查看自己的网络是否畅通 ,在这里笔者不进行详细的描述,此台Linux的hostname为hadoop200且IP地址为192.168.56.200。
2.下载对应的资源包,本人采用的是jdk为1.8版本,hadoop为3.1.3版本,可以到对应的链接进行下载。
3.我们打开linux,使用Xshell进行远程连接,在/opt
目录中创建两个文件夹:software和module(在这里我们使用root用户),在对应的位置输入IP地址进行远程连接。
cd /opt/
mkdir software
mkdir module
接着我们使用Xftp传输jdk和hadoop,上传到linux/opt/software
中
然后我们开始解压jdk和hadoop,目标位置为/opt/module
# 解压jdk
tar -zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
# 解压hadoop
tar -zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/
接下来配置jdk和hadoop的环境变量
vim /etc/profile.d/my_env.sh
加入以下变量:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk-8u212 # 此变量为你解压jdk的目录
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3 # 此变量为你解压hadoop目录
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
下一步 `source /etc/profile
在命令行输入java和hadoop,查看是否成功配置环境变量。
在hadoop的官方文档中我们需要配置2个XML文件:
etc/hadoop/core-site.xml
(注意是hadoop目录下的etc!)/etc/hadoop/hdfs-site.xml
(同上)
将下列配置复制到你的XML文档中
- core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<!----下面为你解压hadoop的目录注意后面有该目录的hadoop/tmp---->
<value>file:/opt/module/hadoop-3.1.3/hadoop/tmp</value>
<description>Abase for other temporary directories。</description>
</property>
<property>
<name>fs.defaultFS</name>
<!----下面的变量(hadoop200)修改为你的主机名--->
<value>hdfs://hadoop200:9000</value>
</property>
</configuration>
- hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/module/hadoop3.1.3/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/module/hadoop-3.1.3/tmp/dfs/data</value>
</property>
</configuration>
基本配置已经完成,在启动hadoop中的hdfs时需要格式化namenode
hdfs namenode -format
# 出现successful 即可
然后进入hadoop的/sbin目录使用
start-dfs.sh
和stop-dfs.sh
进行启动和关闭
···
在启动hdfs时需要配置一下SSH免密登录
cd /
ssh-keygen -t rsa # 然后3次回车
然后进入到.ssh目录中,将公钥文件 id_rsa.pub 中的文件内容复制到想同文件下的 authorized_keys 文件中
cat id_rsa.pub >> authorized_keys
完成SSH免密配置之后,我们可以启动hdfs,通过
jps
查看hdfs的进程
可能出现的问题
- 问题一:
大家在使用其他用户的时候可能会出现权限的问题,我们通过root权限赋予其权限
chmod 777 -R /opt/module/
2.问题二:
在使用root的权限开启时可能会出现一下错误:
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
我们只需要更新2个配置文件start-dfs.sh
、stop-dfs.sh
即可:
在shell脚本中加入一下内容:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
本人才疏学浅,初识大数据,用心整理的文章(本人的处女作),希望可以帮助一些迷茫的同学,当然本文可能会出现错误,希望大家随时指正,谢谢大家!