优秀的编程知识分享平台

网站首页 > 技术文章 正文

Hadoop单机版本安装(hadoop如何安装)

nanyue 2024-07-26 15:40:59 技术文章 4 ℃

主机规划

hostname

ip

安装软件

版本

备注

node01

192.168.17.101

Java

1.8


ntp


同步时间

Hadoop

3.3.4


?

服务规划

hostname

ip

NameNode

DataNode

SecondaryNameNode

node01

192.168.17.101

关闭防火墙

不关闭防火墙,本地无法访问hadoop相关的UI界面。

关闭防火墙

systemctl stop firewalld.service 

确认防火墙状态

systemctl status firewalld.service 



时间同步

  • 安装ntp软件
yum install -y ntp
  • 添加阿里时间同步服务器
# 第一步
vim /etc/ntp.conf

# 在文件中加入阿里时间同步服务器
server ntp.aliyun.com iburst



  • 启动ntp服务
service ntpd start
  • 设置开机启动
chkconfig ntpd on

免密登录

# 执行以下命令,动态生成.ssh 目录
ssh localhost
 
# 生成免密登录数字签名
ssh-keygen -t dsa -P ''

# 把生成的 id_dsa.pub 文件内容追加到 authorized_keys 中
cat id_dsa.pub  >> authorized_keys

# authorized_keys 授权600,不然ssh node01 还是需要输入密码
chmod 600 authorized_keys 



安装软件

安装JDK

  • 下载JDK安装包,当前选择JDK版本为1.8

下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

选择RPM包,下载到本地



  • 上传下载的rpm包到服务器



  • 安装软件
[root@node01 ~]# rpm -i jdk-8u351-linux-x64.rpm

安装成功后,如果可以看到/usr/java,并且能看到如下图显示的内容,表示安装成功



注:有些软件默认配置的JDK目录为/usr/java/default,如果以解压的方式安装JDK,这几个目录需要手动创建软链接,所以建议使用rpm的方式安装JDK

  • 配置环境变量
# 打开 /etc/profile 文件
vim /etc/profile

# 添加以下两行内容
export JAVA_HOME=/usr/java/default
export PATH=$PATH:%JAVA_HOME/bin

# 让配置文件生效
source /etc/profile
  • 验证jdk是否安装成功,输入下面的命令,如果出现下图所示内容表示安装成功
java -version



安装Hadoop

  • 下载Hadoop安装包,当前选择版本为3.3.4

下载地址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

  • 上传到服务器



  • 解压软件包
tar -xvf hadoop-3.3.4.tar.gz



  • 把解压的文件放到合适的位置
# 创建目录
mkdir /opt/bigdata

#移动加压的文件夹到创建的目录
mv hadoop-3.3.4/ /opt/bigdata/
  • 添加环境变量
# 打开 /etc/profile 文件
vim /etc/profile

# 添加以下两行内容
export HADOOP_HOME=/opt/bigdata/hadoop-3.3.4
export PATH=$PATH:%JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# 让配置文件生效
source /etc/profile
  • 添加Hadoop核心配置

hadoop-env.sh

# 打开hadoop-en.sh文件
vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/hadoop-env.sh 

# 添加JAVA_HOME配置
export JAVA_HOME=/usr/java/default

详细配置如下:



core-site.xml

# 打开core-site.xml文件
vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/core-site.xml

添加如下配置:

<!--配置NameNode服务启动的节点  -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node01:9000</value>
</property>

详细配置如下:



hdfs-site.xml

# 打开hdfs-site.xml 文件
vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/hdfs-site.xml 

添加如下配置:

<!-- HDFS副本数 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<!-- NameNode日志文件目录 -->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/var/bigdata/hadoop/local/dfs/name</value>
</property>
<!-- DataNode日志文件目录 -->
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/var/bigdata/hadoop/local/dfs/data</value>
</property>
<!-- secondaryNode启动服务的节点  -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node01:9868</value>
</property>
<!--secondaryNode日志文件目录  -->
<property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>/var/bigdata/hadoop/local/dfs/secondary</value>
</property>

详细配置如下:



workers

# 打开workers文件
vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/workers 

# 修改内容为node01
node01

老版本的Hadoop配置文件为slaves。

当前的配置为DataNode服务启动的节点,因为我们当前是单机版本,所以只需要配置node01就行了。

完整的配置如下:



  • 初始化HDFS
# 初始化HDFS,会创建NameNode需要的目录,并创建空的fsimage
hdfs namenode -format  



cd 到我们的配置的目录,可看到如下目录:



  • 启动服务

当前版本默认不推荐使用root用户直接启动服务,需要把需要的目录切换归属为hadoop,并使用hadoop用户启动服务。

start-dfs.sh



启动成功后,会在/var/bigdata/hadoop/local/dfs看到如下目录:



验证

  • 修改windows的hosts文件
# 新增配置
192.168.17.101 node01



  • 登录HDFS控制台

浏览器浏览:http://node01:9870/

注意:老版本访问的端口号为50070,3.x以后改为9870。



  • 创建目录
hdfs dfs -mkdir /bigdata



  • 本地创建一个文件,并上传
# 创建文件
echo "hello hadoop" >> hadoop.txt

# 上传文件
hdfs dfs -put hadoop.txt /bigdata


常见错误

1、ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. ERROR: Attempting to operate on hdfs datanode as root ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation. ERROR: Attempting to operate on hdfs secondarynamenode as root ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

当前版本Hadoop默认不允许root用户启动服务,最简单的解决方案:把需要的使用的Hadoop目录的归属改为hadoop

# 修改软件安装的目录归属
chown -R hadoop /opt/bigdata/hadoop-3.3.4/

# 修改日志和数据目录归属
chown -R hadoop /var/bigdata



2、Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

当前Hadoop配置文件中配置服务启动节点都是node01,启动脚本中有需要ssh 到对应的节点启动服务,所有必须要提前配置好免密登录,解决方案在安装步骤中。


最近发表
标签列表