(真)手把手教你配置Ubuntu大数据Hadoop环境

2023-05-16

目录

一、前期准备

VMware-tools安装

基本配置

root配置

网络配置

软件源配置

二、创建hadoop用户和文件

用户创建

小插曲

三、FTP配置

四、配置java环境及安装eclipse

安装eclipse

安装java环境

五、安装hadoop

六、伪分布式配置

修改配置文件

执行名称节点格式化

启动测试

ssh免密登录设置

再次测试

七、常见错误

1.Ubuntu的老坑​


 

一、前期准备

本文是我在自己电脑和帮助很多人安装后总结出来一个字一个字的打出来的,其中可能还会有(手残)打错的地方或者哪里(脑残)不正确的地方,还请指教一下,如果觉得不错的话也可以打个赏啥的。。

如果对Linux一点都不了解想要快速掌握一些基础命令的话可以看我之前的一篇,应该有帮助

https://blog.csdn.net/weixin_44495941/article/details/109523427

我是用的VMware安装的Ubuntu操作系统,也可以用virtual box等。用virtual box可以打开共享剪贴板(没见几个管用的),或者直接用fz通过sftp发送文件等(后面有教程)

开机前,建议分配内存2G左右,储存20G(不要用默认的10G,后面会空间不足,需要扩容

本教程分享的时hadoop伪分布式的安装,也就是名称节点和数据节点都在一个上面配置。

如果按照我的配置,务必使用和我一样的文件

VMware-workstation-full-12.5.7-5813279

ubuntu-20.04.2.0-desktop-amd64

hadoop-3.1.3.tar

jdk-8u11-linux-x64.tar

eclipse-4.7.0-linux.gtk.x86_64.tar(如果这个不可以用的话用下面这个)

eclipse-inst-jre-linux64.tar

链接:https://pan.baidu.com/s/1qwljIjzG1jXsJ0Qcin_YHQ 
提取码:1ud3 
 

VMware-tools安装

这里建议直接在打开虚拟机之前通过勾选安装,必须在关机时才可以勾选。

基本配置

 

开始之初,创建虚拟机时,内存最好分配2G左右,不然图形化界面会很卡的
提醒读者,一定要注意是在什么用户下敲的命令,我在里面都有详细解释,务必认真阅读,弄错一步都有可能不成功
打开终端
桌面右击点击open in terminal或者ctrl+shift+t打开终端
 
查看自己版本号
cat /proc/version

修改提示主机名
hostname hadoop

root配置

修改root密码(如果开始没有创建的话)

sudo passwd root

切换为root用户方便后面操作,最后一个符号由$变为#则代表切换为了root用户(新手建议使用普通用户用sudo提权)
su

网络配置

查看自己的网络是否能用
ip ad

正常情况下输出是这样的

第一个lo为回环地址网卡,不用管,主要是第二个ens33为你的上网地址网卡,看有没有IP地址等等,没有的话提供以下思路
  1.重启网卡
/etc/init.d/network-manager restart

  2.可能是你的外面的路由器的问题,可以换成NAT模式

 3.修改配置文件(由于Ubuntu的配置文件太乱了,建议直接图形化里面改,如下,都改成自动
然后再回到命令行输入dhclient重新获取一下地址即可
dhclient

软件源配置

这里更正一下,当初看我教程的朋友们,我道个歉,我给的系统和这个系统并不对应,今天刚改过来 日期2021/3/9

另外,专门写了一篇关于更新源的文章,补充一下

https://blog.csdn.net/weixin_44495941/article/details/114608867

网络配置通后先更换一下软件仓库源为阿里的镜像源

首先将如下写入一个文件,复制如下文件
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

 

vim 1.txt 

如果没有vim可以先使用vi,命令一样进入后按i进入编辑模式后右键paste黏贴进入,再shift加两下z(两下大写z)保存退出

之后一个命令导入配置文件
cat 1.txt >>/etc/apt/source.list

最后使用update命令更新源文件

apt-get update -y

之后就可以下载安装常用编辑器,我本人喜欢用vim当然,新手推荐用nano有提示帮助
apt-get install vim -y

安装ssh

apt-get install openssh-server -y

 

 

二、创建hadoop用户和文件

用户创建

2.创建用户并自动创建文件,指定bash为shell
useradd -m hadoop -s /bin/bash

由于创建过一次忘了删,所以会报文件存在的错误,但还是成功
3.创建密码
passwd hadoop

4.添加Hadoop 到hadoop组(需要注意的是usermod命令修改用户组,如下为例,第一个Hadoop为用户组名,第二个为用户名
usermod -a -G hadoop hadoop

因为以后可能会用到hadoop用户执行root才有的权限,所以将hadoop添加到sudo文件里
首先打开文件
vim /etc/sudoers

进入后按i进入编辑模式,找到root这里在下面添加一行

hadoop ALL=(ALL:ALL) ALL

然后按一下ESC键,再按住shift不放按两下Z(大写的两个Z)保存并推出vim编辑器,Hadoop用户将会拥有sudo提权的权限

保存的时候可能 会报这个错
 
这是因为文件设置成了只读,想要强制保存退出的话先猛按ESC再输入:会在左下角有个:还有个待输入的光标闪烁,这时候输入wq!再回车就行了
 
 

所有的下载的以及从主机上发过来的文件全部都放到/home/hadoop/downloads下

创建文件

mkdir /home/hadoop/downloads

 

小插曲

 
想删除用户hadoop
报错:
 
导致原因,频繁切换su
 
解决办法:
 
使用w查看哪些用户登录
 
使用crtl+d退出用户(多使用几次退出完)
再次删除,失败
查看哪些进程在占用
ps -aux |grep 19689

直接杀死进程
kill -9 19689

再次查看进程

再次删除,成功!
 

三、FTP配置

有人会有疑问,明明前面没有搭建ftp怎么会使用ftp呢。其实是使用的sftp的协议,就是ssh里面的,是linux自带的

下面使用filezilla连接

 

主要是需要选择这个sftp协议

点击连接,出来弹框点击确定。

四、配置java环境及安装eclipse

 

安装eclipse

我这里使用的是VMware虚拟机可以直接拖拽到里面,如果使用的是 VirtualBox开源虚拟机,则需要搭建一个ftp来传送,Ubuntu搭建ftp比较简单,教材上也详细,就不再赘述,这里讲一下使用VMware拖拽导致找不到文件的方法
首先拖拽eclipse
 
本来想直接能够复制进我打开的文件,结果并不是,这里提供一个命令直接找到文件 find
find使用方法
find path 【option】file
find  /* -name eclipse*

然后再使用mv命令移动到上面创建的hadoop下载文件夹中

mv /home/zxl/.cache/vmware/drag_and_drop/rrwsez/eclipse-4.7.0-linux.gtk.x86_64.tar.gz /home/hadoop/downloads/

 
之后把文件解压到/use/local下
tar -zxvf eclipse-4.7.0-linux.gtk.x86_64.tar.gz -C /usr/local/

之后进入解压文件夹并且运行eclipse即可, 当然现在肯定不成功的,因为没有装jdk
cd /usr/local/eclipse/

./eclipse

 

安装java环境

java环境包依旧放到download下,解压到创建的/usr/lib/jvm下

mkdir /usr/lib/jvm

find /* -name jdk-8u1*

mv /home/zxl/.cache/vmware/drag_and_drop/rrwsez/jdk-8u11-linux-x64.tar.gz /home/hadoop/downloads/

cd /home/hadoop/downloads/

tar -zxvf /home/hadoop/downloads/jdk-8u11-linux-x64.tar.gz -C /usr/lib/jvm/

配置java四个环境变量,这里说明一下,如果时按照我的做的一定要和我创建的文件夹 一模一样,不然不会成功
使用vim打开linux的环境变量文件
这里需要强调一下,用的那个用户编辑的下面的文件,就是那个用户的变量,我这个用的root用户的,所以就只有在root用户下才可以使用java命令
vim ~/.bashrc

需要切换到Hadoop用户下面的可以如下教程

su hadoop

sudo vim ~/.bashrc

后面的教程相同

在开头输入如下,记得进去后先按下i进入编辑模式才可以黏贴

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_11
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

这里一定要和我输入的一模一样,而且使用我提供的软件包才可以,也可以使用自己的,只不过需要改一下版本号等等

输入后按两次大写的z保存退出

 
更新重置下环境变量文件,并检查java环境配置是否成功,出现和我一样的提示则配置成功
 
source ~/.bashrc

java -version

  

Java环境配置篇结束

五、安装hadoop

 
拖拽移动hadoop
find /* -name hadoop*

mv /home/zxl/.cache/vmware/drag_and_drop/rrwsez/hadoop-3.1.3.tar.gz /home/hadoop/downloads/

cd /home/hadoop/downloads/

同样需要解压到/usr/local/文件夹下
 
tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/

进入 /usr/local/ 更改文件名 hadoop-3.1.3 hadoop 并更改文件权限为Hadoop所有
mv /usr/local/hadoop-3.1.3 /usr/local/hadoop

chown -R hadoop /usr/local/hadoop
进入解压文件,验证软件是否可用
cd /usr/local/hadoop

./bin/hadoop version

有如下提示则代表成功

 

六、伪分布式配置

伪分布就是把自己的Ubuntu既当成名称节点也当成数据节点(既当爹又当妈),读取HDFS中的文件
其实就是需要更改一下配置文件,格式化一下名称节点就行了

修改配置文件

修改配置文件core-site.xml的<configuration>标签
vim /usr/local/hadoop/etc/hadoop/core-site.xml

 

添加如下内容(如果是按照我的教程配置的就可以直接黏贴,不然请自行斟酌文件名
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>

同上面的方式保存退出
修改配置文件hdfs-site.xml的<configuration>标签
 
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

添加如下内容:

<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>
dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>

执行名称节点格式化

修改完配置文件只需要执行一下名称节点的格式化即可
cd /usr/local/hadoop

./bin/hdfs namenode -format

 

看到如下输出的最后的提示则说明成功

启动测试

输入命令测式
cd /usr/local/hadoop

./sbin/start-dfs.sh

报错:
初步判断式因为ssh没有配置免密登录

ssh免密登录设置

这个同样区分用户,准备用的那个用户启动hadoop就改那个用户的,本教程使用hadoop的用户启动,所有的环境变量等都需要配置这个用户,这样才可以成功!!!!

 
1. 生成公钥私钥,将在~/.ssh文件夹下生成文件id_rsa:私钥,id_rsa.pub:公钥
cd ~/.ssh/

ssh-keygen -t rsa    //前面没有空格

一直回车即可

2. 导入公钥到认证文件,更改权限:
(1)导入本机: 理论上需要将本机的公匙复制到服务器的authorized_keys下,但是这里只在本机登录,所以进行到这一步就可以了,
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

这之后的就不用配置了

(2)导入服务器:(我只是在本机配置的,所以这一步我没做)
首先将公钥复制到服务器:
scp ~/.ssh/id_rsa.pub xxx@host:/home/xxx/id_rsa.pub

然后,将公钥导入到认证文件,这一步的操作在服务器上进行:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

最后在服务器上更改权限:

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

(3)测试:ssh localhost 第一次需要输入yes和密码,之后就不需要了。

再次测试

成功!

 

七、常见错误

1.Ubuntu的老坑

启动Hadoop时拒绝连接

如果在启动hadoop的时候发现拒绝连接一类的中文或者英文字样先看一下你的名称节点启动的时候是在哪个主机名上面

就像我的是在localhost上面,有很多都是在自己创建的主机名上面启动,这个时候就应该看一下你的hosts文件在/etc/hosts下你的主机名是否对应的是127.0.1.1

如果是的话改成127.0.0.1

sudo vim /etc/hosts


#打开后例如这样
localhost 127.0.0.1
zxl 127.0.1.1

#第二行自己创建的主机名对应的是错误的本地地址,改正
localhost 127.0.0.1
zxl 127.0.1.1

然后再次启动试一下基本就可以了。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(真)手把手教你配置Ubuntu大数据Hadoop环境 的相关文章

  • C++和Python Java的区别

    C 43 43 和Python Java的区别 C 43 43 执行效率高 xff0c 编程难 开发效率低 Python执行效率低 xff0c 编程简单 开发效率快 C 43 43 为编译性编程语言 xff0c Python 则为解释性编程
  • 实时渲染和离线渲染

    实时渲染和离线渲染 1 实时渲染2 离线渲染3 对比 1 实时渲染 实时渲染指的是一边计算画面 xff0c 一边输出显示 特点是 xff1a 能实时操控 实时交互 xff0c 并且以极高的速度将3D图像处理了 xff0c 同时实现了逼真的效
  • Linux中crontab的坑爹环境变量问题

    手动在CentOS中执行sh脚本 xff0c 调用java程序 xff0c 一切正常 xff1b 将该sh加入crontab中定时调度之后 xff0c 挂了 xff0c 完全没有执行到的感觉啊 xff01 xff01 xff01 查看cro
  • Win32窗口

    Win32窗口 span class token comment windows 开发所需头文件 包含Windows开发所需要的宏 类 函数 结构体等结构的定义 span span class token macro property sp
  • MFC按钮禁用实现

    MFC按钮禁用 m Bn xxx span class token punctuation span span class token function EnableWindow span span class token punctuat
  • MFC屏幕截图

    屏幕截图 实现屏幕截图 xff0c 并保存多张图片 截图的效果 span class token keyword void span span class token class name CMFCApplication1Dlg span
  • obj模型文件的格式

    obj模型的格式 带纹理的obj模型mtl材质文件推荐参考库文件tiny obj loaderassimp 带纹理的obj模型 一般带纹理的obj模型需要有以下三个文件 xff0c 分别是 obj文件 xff0c mtl纹理库文件 xff0
  • n维顶点模板类

    span class token keyword template span span class token operator lt span span class token keyword int span nD span class
  • MFC鼠标移入移出操作

    MFC鼠标移入移出 span class token keyword void span span class token class name CMFCApplication3Dlg span span class token doubl
  • 目标物体缩放方法

    目标物体缩放方法 1 移动相机位置改变视场角 1 移动相机位置 最容易想到的方法是通过改变相机的位置 xff0c 将相机靠近或者远离目标物体从而实现物体大小的放大或者缩小 如下图所示 xff1a 改变视场角 视场角FOV xff08 Fie
  • gamma校正

    伽玛校正 xff08 Gamma Correction xff09 校正的目的输入转至线性空间输出前进行校正衰减 校正的目的 保证所有的输入都转换到线性空间 xff0c 并在线性空间下做各种光照计算 xff08 线性空间进行操作 xff09
  • d3d11释放问题

    d3d11释放问题 释放过程中遇到明明已经调用release xff08 xff09 但是内存却没有下降 xff0c 后来查看了其计数器n发现其不为0 xff0c 也就是没释放干净 xff0c 只是内部引用数减1 span class to
  • imgui显示中文

    imgui显示中文 首先先加载中文字体 span class token comment Load Fonts span io span class token punctuation span Fonts span class token
  • serialVersionUID作用

    原文出处 xff1a 未知 Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的 在进行反序列化时 xff0c JVM会把传来的字节流中的serialVersionUID与本地相应实体 xff08 类
  • linux命令与makefile学习

    linux命令与makefile学习 文件权限通配符 常用命令查看CPU 内存占用makefilegcc与g 43 43 区别 xff1a Linux上有一句话 xff1a 一切皆文件 普通文件 目录文件 d xff08 directory
  • VS在输出窗口显示信息

    输出窗口的信息传给函数 xff0c 函数内部调用系统函数OutputDebugString xff0c 就可以把调试信息打印到输出窗口 span class token keyword void span span class token
  • 使用 nlohmann 解析 json 文件

    使用 nlohmann 解析 json 文件 nlohmann json的配置json基本数据结构json文件的读取 构造与输出C 43 43 对象与nlohmann json对象的转换C 43 43 对象转换成nlohmann json对
  • ImGui实现Button高亮

    ImGui实现Button高亮 记录下在ImGui中实现Button高亮的操作 xff0c 跟着官方demo走没看到具体的实现方式 xff0c 想着渲染是不断进行的 xff0c 让下一帧绘制上次选择的状态 结果如下 xff1a 部分代码 s
  • HLSL笔记

    常量缓冲区 Constant Buffer 常量缓冲区允许C 43 43 端将数据传递给HLSL中使用 xff0c 在HLSL端 xff0c 这些传递过来的数据不可更改 xff0c 因而是常量 常量缓冲区对这种使用方式有所优化 xff0c
  • opengl shader实现Bezier曲线

    opengl shader实现Bezier曲线 顶点着色器片段着色器向shader传递数据 顶点着色器 span class token keyword const span span class token keyword char sp

随机推荐

  • windows创建窗口

    windows创建窗口 CreateWindowW创建窗口句柄窗口可以调节尺寸以及移动完整代码窗口的效果创建指定画面大小 xff0c 不包含窗口栏尺寸且无法调整尺寸的窗口思考 一般来讲 xff0c 要绘制或者渲染目标物体首先需要创建窗口 x
  • makefile文件解释

    makefile文件解释 makefile文件详细解释 makefile文件 CC span class token operator 61 span g 43 43 PROGRAM span class token operator 61
  • python实现自动化鼠标点击

    python实现自动化鼠标点击 span class token keyword import span pyautogui span class token keyword import span time span class toke
  • opengles共享纹理

    OpenGL ES 3 0中引入的 外部纹理 xff08 External Textures xff09 扩展 xff0c 允许将OpenGL纹理对象绑定到由外部API创建的纹理对象 xff0c 例如相机采集到的图像 视频流或其他图像数据
  • https 证书工具 Letsencrypt 简单教程

    https取代http是大势所趋 xff0c https的好处本文不在赘述 xff0c 很多公司和机构都在推进这一进程 xff0c Apple公司甚至规定 xff0c iOS上的App应用必须使用https 因此 xff0c 正是受到App
  • Linux简单命令使用笔记

    之前一直用虚拟机 xff0c 其实购买一台阿里云服务器学习linxu更加的方便快捷 阿里云服务器购买 1 electerm连接登录linux SecureCRT和SFTP 最近linux连接工具electerm 上面是两款不同的连接linu
  • 软件工程的十大模型

    1 软件生命周期模型 软件生命周期由软件定义 软件开发与运维 xff08 也称软件维护 xff09 3个时期组成 xff0c 每个时期又进一步划分成若干个阶段 问题定义 xff1a 要解决的问题是什么 xff1f 通过对客户的访问调查 xf
  • WEEK6 限时测试A - 掌握魔法の东东 II

    A 掌握魔法 东东 II 题目描述 从瑞神家打牌回来后 xff0c 东东痛定思痛 xff0c 决定苦练牌技 xff0c 终成赌神 xff01 东东有 A B 张扑克牌 每张扑克牌有一个大小 整数 xff0c 记为a xff0c 范围区间是
  • WEEK13 作业 A - TT 的神秘任务1(必做)

    A TT 的神秘任务1 xff08 必做 xff09 题目描述 这一天 xff0c TT 遇到了一个神秘人 神秘人给了两个数字 xff0c 分别表示 n 和 k xff0c 并要求 TT 给出 k 个奇偶性相同的正整数 xff0c 使得其和
  • WEEK14 作业 C - Q老师的考验(必做)

    C Q老师的考验 xff08 必做 xff09 题目描述 Q老师 对数列有一种非同一般的热爱 xff0c 尤其是优美的斐波那契数列 这一天 xff0c Q老师 为了增强大家对于斐波那契数列的理解 xff0c 决定在斐波那契的基础上创建一个新
  • 程序设计与实践 模拟题四 201809-3 元素选择器

    201809 3 元素选择器 题目描述 题解 本题是一道思维难度不大的模拟题 实现过程和思想都比较简单 xff0c 具体实现比较难 xff0c 认真仔细即可 xff08 但是自己一开始写的代码只得了80分 xff0c 又比较了其他人的代码才
  • idea中添加maven远程仓库

    idea无法自动下载依赖的解决方法 xff1a 1 xff1a 选择自己的maven目录 配置文件setting xml和仓库repository xff0c 并勾选2个Override 2 点击Runner 在VM Options那一行添
  • 详解C++中的指针结构体数组以及指向结构体变量的指针

    这篇文章主要介绍了C 43 43 中的指针结构体数组以及指向结构体变量的指针的用法 是C 43 43 入门学习中的基础知识 需要的朋友可以参考下 C 43 43 结构体数组 一个结构体变量中可以存放一组数据 xff08 如一个学生的学号 姓
  • bad substitution

    初接触shell脚本 xff0c 在vim中写代码 xff0c 出现了好几次 Bad substitution 我的错误有两种 xff1a 开始的的指定脚本环境 应该是 bin bash 在编译运行时 也应该用 bash 的使用错误 xff
  • Re.从零开始--基于UbuntuServer 20.04-OpenStack平台搭建_

    基于UbuntuServer 20 04 OpenStack平台搭建 前言 xff1a 本文档基于ubuntu server20 04版本和OpenStack Victoria搭建openstack环境 部署最小化Ubuntu openst
  • win10系统vvv连接不上,提示:“在连接完成前,连接被远程计算机终止”的解决办法

    进入 控制面板 网络和共享中心 更改适配器设置 右键点 vvv连接 属性 安全 选择 允许使用这些协议 xff0c 以下选项全部打勾即可 未加密的密码 质询握手身份验证协议 Microsoft CHAP Version2
  • CSP 2021 S组游记

    这是异想之旅的一篇水文 xff0c 技术无关 占个坑 xff0c 晚上更新 说说初赛 xff1a 我的竞赛老师是很重视初赛的 xff0c 整个暑假一半的时间集训 xff0c 而一半的集训时间都是面对初赛 模拟题大家做的量不同 xff0c 但
  • linux命令解压压缩rar文件的详细步骤

    一 widonds下打包rar文件并上传 yum install lrzsz rz test rar 二 下载并安装rar软件 2 1 下载 mkdir p home oldboy tools cd home oldboy tools wg
  • 配置pvst详解

    配置 pvst 在学习pvst之前 xff0c 先要学习一下stp STP生成树 思科默认有stp配置 1 选择根网桥 xff08 root bridge xff09 xff08 这个是必须的配置 xff09 选择根网桥的依据是网桥ID x
  • (真)手把手教你配置Ubuntu大数据Hadoop环境

    目录 一 前期准备 VMware tools安装 基本配置 root配置 网络配置 软件源配置 二 创建hadoop用户和文件 用户创建 小插曲 三 FTP配置 四 配置java环境及安装eclipse 安装eclipse 安装java环境