hadoop入门(一)——部署伪分布式模式

hadoop入门(一)——部署伪分布式模式

hadoop三种部署模式

很多小伙伴可能在搭建hadoop平台的时候踩到各种坑,而且各种教程不一,那么我们在搭建hadoop平台的时候我们首先先了解一下什么呢?就是hadoop部署的三种模式,以及这三种模式的区别和用法。

单机模式
  1. 使用本地文件系统,而不是分布式文件系统
  2. hadoop不会启动namenode、datanode、jobtracker、tasktracker等守护进程,map和reduce任务作为同一个进程的不同部分来执行的
伪分布式模式(适合新手学习)
  1. 在一台主机模拟多主机
  2. hadoop启动namenode、datanode、jobtracker、tasktracker等守护进程,这些守护进程都在同一台机器上执行,是相互独立的java进程
  3. hadoop使用的是分布式系统,各个作业也都是由jobtracker服务来管理独立的进程。在单机模式上增加了代码调试功能,允许检查内存使用情况,hdfs输入输出,以及其他的守护进程交互。类似于完全分布式系统,因此,这种模式常用来测试hadoop程序的执行是否正确。
完全分布式模式(需要资源比较多)
  1. hadoop的守护进程运行在由多台主机搭建的集群上,是真正的集群环境
  2. 在所有的主机上安装jdk和hadoop,组成相互连通的网络
  3. 在主机间设置ssh免密码登录,把从各节点生成的公钥添加到主节点的信任列表

部署伪分布式模式

  1. 创建hadoop用户
    添加用户
sudo useradd -m hadoop -s /bin/bash

设置密码

sudo passwd hadoop

添加管理员权限

sudo adduser hadoop sudo

添加管理员权限也可以执行命令sudo visudo
root ALL=(ALL) ALL 下面添加:

hadoop ALL=(ALL)  ALL   

如果是 hadoop ALL=(ALL) NOPASSWD:ALL则使用sudo时不需要输入用户密码

  1. 安装SSH并配置SSH无密码登录
sudo apt-get update  //更新apt
sudo apt-get install openssh-server  //安装SSH server
ssh localhost  //需要输入密码

配置无密码登录,先键入exit退出连接

cd ~/.ssh/
ssh-keygen -t rsa //遇到提示,一路回车即可
cat ./id_rsa.pub >> ./authorized_keys //加入授权

再次尝试ssh localhost,如果不需要密码登录,即为成功
3. 下载hadoop和java工具包,并解压
在用户目录下创建目录opt,opt下面新建modules、software、app三个目录
分别将压缩包上传到opt/app目录下,然后进行解压

tar -zxvf app/jdk-8u211-linux-x64.tar.gz -C modules
tar -zxvf app/hadoop-3.1.2.tar.gz -C software
  1. 配置java环境
    执行命令:
vim ~/.bashrc

写入第一行

export JAVA_HOME=/home/hadoop/opt/modules/jdk1.8.0_211

在这里插入图片描述
让环境变量生效

source ~/.bashrc

检查是否配置正确
在这里插入图片描述
3. 配置hadoop

cd opt/software/hadoop-3.1.2/

检查hadoop是否正确配置
在这里插入图片描述4. hadoop伪分布式配置

cd /opt/software/hadoop-3.1.2/etc/hadoop/

配置core-site.xml,末尾添加

<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/home/hadoop/opt/software/hadoop-3.1.2/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost:9082</value>
        </property>
</configuration>

配置hadoop-env.sh,找到被注释的JAVA_HOME

export JAVA_HOME=/home/hadoop/opt/modules/jdk1.8.0_211

配置hdfs-site.xml,末尾添加

<configuration>
		<property>
			 <name>dfs.replication</name>
			 <value>1</value>
		</property>
		<property>
			 <name>dfs.namenode.name.dir</name>
			 <value>file:/home/hadoop/opt/software/hadoop-3.1.2/tmp/dfs/name</value>
		</property>
		<property>
			 <name>dfs.datanode.data.dir</name>
			 <value>file:/home/hadoop/opt/software/hadoop-3.1.2/tmp/dfs/data</value>
		</property>
		<property>
		  <name>dfs.http.address</name>
		  <value>127.0.0.1:50070</value>
		</property>
</configuration>
  1. 格式化namenode,启动namenode和datanode
    格式化namenode,如果出现末尾出现success表示成功
/home/hadoop/opt/software/hadoop-3.1.2/bin/hdfs namenode -format

启动namenode和datanode

/home/hadoop/opt/software/hadoop-3.1.2/sbin/start-dfs.sh
  1. 测试是否成功搭建
    访问http://127.0.0.1:50070
    在这里插入图片描述

期间遇到的问题及解决方案:

问题1. ubuntu切换目录麻烦,vim编辑不方便
解决办法:ubuntu安装frp服务,windows安装coreFTP,编辑和保存配置文件非常方便

问题2. namenode格式化失败,/sbin/start-dfs.sh
解决:./sbin/start-dfs.sh 非常低级的错误,还有ssh配置失败也会导致namenode格式化失败

问题3. 启动namenode和datanode失败,需要root用户启动。而用sudo也失败,因为sudo用户没有配置和启动ssh
解决:hadoop-env.sh多配置了以下内容,注释即可

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。

java和hadoop工具包:
链接:https://pan.baidu.com/s/1wFqnbpS663bBzKDnZnH1ug
提取码:rjy9
复制这段内容后打开百度网盘手机App,操作更方便哦

参考:
[1]. https://blog.csdn.net/guomei_eros/article/details/79513597

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值