大数据学习

Posted 初踏IT想当奥特曼的研究僧。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据学习相关的知识,希望对你有一定的参考价值。

提示:避雷Hadoop完全分布式集群搭建的各种坑!

Hadoop3.X完全分布式集群搭建详细过程


前言

提示:不是小白你别来!我不允许我跳的坑 你还跳!!!


提示:以下是本篇文章正文内容,下面案例仅供参考

一、基础环境的下载

1: 系统环境 Ubuntu18.04
链接:https://pan.baidu.com/s/1mfjMoHl7SKFh9Jr85vQ_Ag
提取码:9802

2: jdk1.8.0_321 下载地址
链接:https://pan.baidu.com/s/1hvGmAISZTVRRTVhLOilYrw
提取码:9802

3: hadoop-3.3.0 下载地址
链接:https://pan.baidu.com/s/1uhlGQ0BMfi9NVuAOjoW51w
提取码:9802
4、远程工具 xshell 可到官网下载

二、基础环境安装

2.1 ubuntu18.4 安装

英文中文两种版本选择 没啥区别 但中文在之后的其他方面路径写不好会出现很多问题,建议安装英文版

2.1.1 ubuntu18.04安装
具体安装操作流程可参考:

https://blog.csdn.net/whatiscode/article/details/109153474?msclkid=ba7a5683ad6d11ecb0a0e0d6f24bbd65

2.1.2 输入法配置:
英文版 输入法默认只有英文 需要后期配置 配置具体教程可参考:

https://blog.csdn.net/github_39533414/article/details/85211012?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164811309116781683989899%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164811309116781683989899&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-85211012.142v3pc_search_insert_es_download,143v4register&utm_term=ubuntu18.04%E5%AE%89%E8%A3%85%E8%BE%93%E5%85%A5%E6%B3%95&spm=1018.2226.3001.4187

2.1.3 更换国内源

vi /etc/apt/sources.list

将原有源注释掉,换成国内镜像,此处换成 阿里云源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

2.1.4 创建root用户

这个坑给我重点看!!!此坑!你要是非跳!我不拦着!!!

因版本不同,此操作可根据自己情况自行选择

目前ubuntu18.04版本在安装系统的过程中,没有设置root密码的过程(如果安装过程中有设置roor用户密码的过程,此步骤可以跳过!!!),只有创建用户的过程,此时创建的用户只是有了root的权限,并不是root!!!但其实系统内部是存在root用户并且有默认的密码,只是没公布且每次安装随机,所有不为人知,所以这时候一定要更新root用户密码!!!(切记:此密码不是你安装系统时侯创建用户的密码!!!)

追根溯源可参考:
https://blog.csdn.net/linjcai/article/details/81316573

sudo passwd   #创建/重置root密码  即 将系统默认的root密码改为自己的密码
su root #切换root用户 输入密码测试一下 切换成功即表示设置密码成功

2.2 jdk安装与环境配置

解压 这里是直接解压到根目录下的

tar -zxvf jdk-8u321-linux-x64.tar.gz

配置环境变量

sudo gedit /etc/profile=sudo vim /etc/profile

末尾加上

export JAVA_HOME=/home/jdk1.8.0_321  #此处根据自己的jdk安装目录填写 ——实在不知道自己安装怎么写  进入jdk目录下 **pwd** 复制粘贴即可
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH  
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

保存退出 esc+:wq OR 不保存强制退出 esc+:qa!

终端输入 使配置文件生效

source /etc/profile

2.3 hadoop安装

解压

sudo tar -zxf hadoop-3.3.0.tar.gz -C /usr/local #解压文件到系统文件/usr/local文件下

检验安装是否成功

cd /usr/local/hadoop-3.3.0/bin #定位到hadoop的bin目录下

hadoop version #输入命令,出现版本号即表示成功

此时你会发现只能定位到hadoop的bin目录下 你输入hadoop version才能识别到,在其他部位输入就会出现 hadoop:命令找不到——因为没有配置系统文件

hadoop系统文件的配置

vim /etc/profile

export HADOOP_HOME=/usr/local/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

此时无论在哪个位置,输入hadoop version都可以定位到

三、集群搭建

3.1 Hadoop集群架构

hadoop0hadoop01/hadoop02
NameNodeDataNode
ResourceManagerNodeManager
SecondaryNameNode

3.2 IP映射

修改hosts文件、存储主机和ip映射
在每台linux机器上分别编辑hosts文件

 sudo vim etc/hosts


测试各节点的互通性

3.3 SSH免密登录设置

安装SSH服务

sudo apt-get update
sudo apt-get install vim
sudo apt-get install openssh-server

实现免密登录 每台机器上都执行下面操作

ssh-keygen -t rsa              # 生成密钥对,会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 将公钥加入认证文件

ssh-copy-id hostname #此处的hostname为自己的主机名 在三台不同机器上执行时,这个hostname要改成相应的机器的主机名

验证免密登陆是否成功
ssh hadoop01 #hadoop01根据你要连接 测试的主机名来更改
我这里想测试与hadoop01的免密登录是否成功

其他的 也可供参考:https://blog.csdn.net/weixin_61963604/article/details/121930965?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164863092116780357297779%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164863092116780357297779&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-4-121930965.142v5pc_search_insert_es_download,143v6register&utm_term=hadoop+%E4%B8%ADssh%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187

3.4 集群环境配置

3.4.1 修改主从配置文件
修改workers文件 #hadoop2.x 叫slaves,hadoop3.x更名为workers 根据自己版本进行选择 添加自己的从节点名称

cd /usr/local/hadoop-3.3.0/etc/hadoop

vim workers



3.4.2 修改hadoop集群配置文件

此操作只在主机上进行 我这里的主机是hadoop0—这里架构设定NameNode只在主机Hadoop0上存储

cd /usr/local/hadoop-3.3.0/etc/hadoop

修改core-site.xml
sudo vim/gedit core-site.xml

<configuration>
	 <property>
             <name>fs.defaultFS</name>
             <value>hdfs://hadoop0:9000</value> #hadoop0是自己的主机名
        </property>
	<property>
             <name>hadoop.tmp.dir</name>
	     <value>/usr/local/hadoop/data/tmp</value>#临时文件存放位置 可自己更改
     <description>Abase for other temporary directories.</description>
     </property>
</configuration>

修改hdfs-site.xml
sudo vim/gedit hdfs-site.xml

<configuration>
	<property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop0:50090</value>
        </property>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
	<property>
             <name>dfs.namenode.name.dir</name>
	     <value>/usr/local/hadoop/data/tmp/name</value>#namenode临时文件存放位置
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>/usr/local/hadoop/data/tmp/data</value>#datanode临时文件存放位置
        </property>
</configuration>

修改mapred-site.xml
sudo vim/gedit mapred-site.xml

<configuration>
 <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
 </property>
 <property>
     <name>mapreduce.jobhistory.address</name>
     <value>hadoop0:10020</value>#hadoop0 自己的主机名
 </property>
 <property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>hadoop0:19888</value>#hadoop0 自己的主机名
 </property>
</configuration>

修改yarn-site.xml
sudo vim/gedit yarn-site.xml

<configuration>
 <property>
    <name>yarn.resourcemanager.hostsname</name>
    <value>hadoop0</value>#hadoop0 自己的主机名
 </property>
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
 </property>
</configuration>

主机上配置完毕以后,将此配置文件发送至两个从机

scp -r /usr/local/hadoop/ hadoop01:/usr/local  #hadoop01指的是你要发送过去的那台机器的名称

下面的4个配置文件不要是不改!启动集群的时候必然出现这个错误:ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes 不出错误 你来找我!!必须给我改!

修改start-dfs.sh、stop-dfs.sh

cd /usr/local/hadoop-3.3.0/etc/hadoop/sbin   #定位到sbin目录下

在start-dfs.sh和stop-dfs.sh最上面添加

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

修改start-yarn.sh、stop-yarn.sh
在start-yarn.sh和stop-yarn.sh最上面添加

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

四、集群搭建完毕 验证测试

4.1 启动集群

hdfs namenode -format #格式化

切忌:
不要多次格式化,多次格式化会使得临时文件中的id号版本不对应,导致集群没有datanode 解决办法:删除因为格式化而生成的临时文件logs+tmp 删除完毕 再次格式化即可

在主机上启动集群

start-all.sh  #all 全部启动 也可分开 先启动dfs start-dfs.sh 

在每台主机上查看节点状况——与上面表格中的集群架构对应 看是否正确

4.2 web页面查看状况

4.2.1查看NameNode的web页面

http://ip地址:端口号 #hadoop版本不同,端口号不同,我这里是hadoop3.x
具体参考:https://blog.csdn.net/qq_31454379/article/details/105439752

http://ip地址:9870

4.2.2查看HDFS信息页面

4.2.3 查看集群状态

http://ip地址:8088 #打开web控制台,可以查看集群状态

五、总结

其他错误总结:

1、启动节点以后,没有datanode节点 删除临时文件 即删除hadoop下的tmp 和logs两个文件

解决办法 具体可参考:

https://blog.csdn.net/qq_44962429/article/details/105119701?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=1

https://blog.csdn.net/qq_44962429/article/details/105119701?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=1

2、测试jdk是否成功安装的时候,出现 java not found
配置系统文件
解决办法 具体可参考:

https://blog.csdn.net/sun8112133/article/details/79901527
3、无法创建临时文件logs
错误提示:localhost: mkdir: 无法创建目录"/usr/local/hadoop/logs": 权限不够
解决办法 具体参考:

https://blog.csdn.net/weixin_30354675/article/details/95887074
4、Linux服务器配置root用户ssh远程登录
解决办法 具体可参考:

https://blog.csdn.net/qq_41331466/article/details/123796610
4、推荐参考书籍

https://max.book118.com/html/2020/1214/6013134055003034.shtm

以上是关于大数据学习的主要内容,如果未能解决你的问题,请参考以下文章

为何零基础也可学习大数据技术?

6个人如何维护上千规模的大数据集群?

shell学习:TCP活动状况报告的生成

学习python的理由

羡慕BAT的高工资?大数据告诉你他们有多拼

玩转数据产品设计-小屏幕下的大数据