首页 > 其他分享 >大数据实验记录

大数据实验记录

时间:2024-04-04 14:44:20浏览次数:17  
标签:记录 local hadoop hive 实验 usr mysql hbase 数据

网卡

在Ubuntu系统下浏览器无法上网,终端输入ifconfig查看,只能看到lo本地回环网卡,没有找到ens33网卡

解决方法

sudo dhclient ens33
 
sudo ifconfig ens33

创建普通用户

打开一个终端(可以使用快捷键 Ctrl+Alt+T),使用如下命令创建一个用户hadoop:

sudo useradd -m hadoop -s /bin/bash

使用如下命令为hadoop用户设置密码:

sudo passwd hadoop

为hadoop用户增加管理员权限:

sudo adduser hadoop sudo

更新APT

APT是一个非常优秀的软件管理工具,Linux系统采用APT来安装和管理各种软件。安装成功Linux系统以后,需要及时更新APT软件,否则,后续一些软件可能无法正常安装。请登录Linux系统,打开一个终端(可以使用快捷键Ctrl+Alt+T),进入Shell命令提示符状态,然后输入下面命令:

sudo apt-get update

vim编辑器安装

sudo apt-get install vim

键盘敲击输入一个英文字母i,进入编辑状态以后才能修改内容。修改后,需要按键盘上的Esc键退出vim的编辑状态,之后有以下几种选择:

1、从键盘输入“:wq”三个英文字母,然后回车,表示保存文件并退出。

2、从键盘输入“:q”两个英文字母,然后回车,表示不保存并退出。

3、从键盘输入“:q!”三个英文字母,然后回车,表示不保存并强制退出。

Eclipse安装

到Eclipse官网(https://www.eclipse.org/downloads/)下载安装包,假设安装文件下载后保存在了Linux系统的目录“~/Downloads”下,下面执行如下命令对文件进行解压缩:

cd ~/Downloads
sudo tar -zxvf ./eclipse-4.7.0-linux.gtk.x86_64.tar.gz -C /usr/local 

然后,执行如下命令启动Eclipse:

cd /usr/local/eclipse
./eclipse

hadoop的安装和使用

安装SSH

SSH是Secure Shell的缩写,它是建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。需要在Ubuntu上安装SSH服务端,才能让FTP软件通过SFTP(SSH File Transfer Protocol)方式连接Ubuntu系统。Ubuntu 默认已安装了 SSH客户端,因此,还需要安装 SSH服务端,安装方法是,在Ubuntu系统中打开一个命令行终端,执行如下命令:

sudo apt-get install openssh-server

安装后,可以使用如下命令登录本机:

ssh localhost

执行该命令后会出现提示信息(SSH首次登录提示),输入“yes”,然后按提示输入密码hadoop,就登录到本机了。

首先,请输入命令“exit”退出刚才的SSH,就回到了原先的终端窗口;然后,可以利用ssh-keygen生成密钥,并将密钥加入到授权中,命令如下:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

此时,再执行ssh localhost命令,无需输入密码就可以直接登录了

安装JAVA

执行如下命令创建“/usr/lib/jvm”目录用来存放JDK文件:

cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件

执行如下命令对安装文件进行解压缩:

cd ~ #进入hadoop用户的主目录
cd Downloads
sudo tar -zxvf ./jdk-21——linux-x64_bin.tar.gz -C /usr/lib/jvm

下面继续执行如下命令,设置环境变量:

vim ~/.bashrc

上面命令使用vim编辑器打开了hadoop这个用户的环境变量配置文件,请在这个文件的开头位置,添加如下几行内容:

export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存.bashrc文件并退出vim编辑器。然后,继续执行如下命令让.bashrc文件的配置立即生效:

source ~/.bashrc

这时,可以使用如下命令查看是否安装成功:

java -version

安装Hadoop

Hadoop包括三种安装模式:

•单机模式:只在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统HDFS;

•伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上;

•分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。

本教程采用的Hadoop版本是3.1.3,可以到Hadoop官网下载安装文件(http://mirrors.cnnic.cn/apache/hadoop/common/)

请使用hadoop用户登录Linux系统,打开一个终端,执行如下命令:

sudo tar -zxf ~/下载/hadoop-3.3.6.tar.gz -C /usr/local  # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.6/ ./hadoop   # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop    # 修改文件权限

Hadoop解压后即可使用,可以输入如下命令来检查 Hadoop是否可用,成功则会显示 Hadoop版本信息:

cd /usr/local/hadoop
./bin/hadoop version

Hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。Hadoop附带了丰富的例子,运行如下命令可以查看所有例子:

cd /usr/local/hadoop
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar

这里选择运行grep例子

cd /usr/local/hadoop
mkdir input
cp ./etc/hadoop/*.xml ./input  # 将配置文件复制到input目录下
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*     # 查看运行结果

Hadoop文件配置

配置/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件,命令如下:

<configuration>
        <property>
                <name>dfs.reolication</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>
</configuration>

配置/usr/local/hadoop/etc/hadoop/core-site.xml文件,命令如下:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://localhost:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>

/usr/local/hadoop/sbin/start-dfs.sh和stop-dfs.sh文件:

HDFS_DATANODE_USER=root  
HDFS_DATANODE_SECURE_USER=hdfs  
HDFS_NAMENODE_USER=root  
HDFS_SECONDARYNAMENODE_USER=root

/usr/local/hadoop/sbin/start-yarn.sh和stop-yarn.sh文件:

YARN_RESOURCEMANAGER_USER=root
YARN_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root

配置/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件,命令如下

export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export HADOOP_HOME=/usr/local/hadoop

配置/usr/local/hadoop/etc/hadoop/mapred-site.xml文件,命令如下:

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

配置yarn-site.xml文件,命令如下:

<configuration>
        <property>
                <name>yarn.nodemanager.aus-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

最后执行命令进行格式化:

hadoop namenode -format

环境变量配置

输出命令:

vim /etc/profile

然后进行如下配置:

export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后输入命令使配置生效:

source /etc/profile

最后到Hadoop的sbin目录下,执行start-all.sh即可(执行这个则一次将其他sh一起启动了):

./start-all.sh

然后执行以下jps,查看是不是都启动了:

jps

安装Hbase

解压安装包hbase-2.4.14-bin.tar.gz至路径 /usr/local,命令如下:

sudo tar -zxf ~/Downloads/hbase-2.5.8-bin.tar.gz -C /usr/local

将解压的文件名hbase-2.5.8-bin.tar.gz改为hbase,以方便使用,命令如下:

sudo mv /usr/local/hbase-2.5.8 /usr/local/hbase

将hbase下的bin目录添加到path中,这样,启动hbase就无需到/usr/local/hbase目录下,大大的方便了hbase的使用。

编辑 ~/.bashrc 文件

sudo vi ~/.bashrc

在"export PATH=$PATH:..."后添加

:/usr/local/hbase/bin

编辑完成后,再执行source命令使上述配置在当前终端立即生效,命令如下:

source ~/.bashrc

添加HBase权限

cd /usr/local
sudo chown -R hadoop ./hbase       #将hbase下的所有文件的所有者改为hadoop,hadoop是当前用户的用户名。

查看HBase版本,判断是否安装成功

/usr/local/hbase/bin/hbase version

HBase有三种运行模式,单机模式、伪分布式模式、分布式模式。以下先决条件很重要,如果没有配置好,就会报错:

jdk
Hadoop(伪分布式模式需要)
SSH

配置hbase-env.sh

vim /usr/local/hbase/conf/hbase-env.sh

配置JAVA_HOMEHBASE_CLASSPATHHBASE_MANAGES_ZK

export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export HBASE_CLASSPATH=/usr/local/hbase/conf 
export HBASE_MANAGES_ZK=true

配置hbase-site.xml。用vim打开并编辑hbase-site.xml,命令如下:

vim /usr/local/hbase/conf/hbase-site.xml

修改hbase.rootdir,指定HBase数据在HDFS上的存储路径;

将属性hbase.cluter.distributed设置为true;

假设当前Hadoop集群运行在伪分布式模式下,在本机上运行,且NameNode运行在9000端口。

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://localhost:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
</configuration>

hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式。

测试运行HBase

第一步:首先登陆ssh,之前设置了无密码登陆,因此这里不需要密码;

第二步:再切换目录至/usr/local/hadoop

第三步:启动hadoop(如果已经启动hadoop请跳过此步骤)。

ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh

输入命令jps,能看到NameNode,DataNode和SecondaryNameNode都已经成功启动,表示hadoop启动成功,如下:

xxxx DataNode
xxxx NameNode
xxxx SecondaryNameNode
xxxx Jps

切换目录至/usr/local/hbase,启动HBase:

cd /usr/local/hbase
bin/start-hbase.sh

启动成功,输入命令jps,看到以下界面说明Hbase启动成功:

xxxx SecondaryNameNode
xxxx HMaster
xxxx NameNode
xxxx DataNode
xxxx Jps
xxxx HRegionServe
xxxx HQuorumPeer

进入Shell界面:

hbase shell

停止HBase运行:

stop-hbase.sh

安装MySQL服务端和客户端

相关命令:

sudo apt-get install mysql-server
sudo apt-get install mysql-client

修改mysql的配置文件

在终端中输入

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改mysql的配置文件,在内容[mysqld]之后,任意新建一行,添加文本并保存

skip-grant-tables

mysql登录操作

重启mysql服务:

service mysql restart
mysql -u root -p

无需输入密码,直接回车,即可登录

mysql修改登录密码操作

先切换到名为mysql的数据库

use mysql

更新user表中的root用户的密码,本例设置密码为123

update user set authentication_string='123' where user = 'root';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';

退出mysql终端:

quit

恢复前面所修改的mysql配置文件

删除或注释掉所添加skip-grant-tables,并保存

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
mysql -u root -p

密码为前面设置的密码123

下载MySQL JDBC驱动程序

为了让Hive能够连接到MySQL数据库,需要下载MySQL JDBC驱动程序。可以到MySQL官网(http://www.mysql.com/downloads/connector/j/)下载mysql-connector-j-8.3.0.tar.gz。

在Linux系统中打开一个终端,在终端中执行如下命令解压缩文件:

cd ~
tar -zxvf mysql-connector-j-8.3.0.tar.gz   #解压
#下面将mysql-connector-j-8.3.0-bin.jar拷贝到/usr/local/hive/lib目录下
sudo cp mysql-connector-j-8.3.0/mysql-connector-j-8.3.0-bin.jar  /usr/local/hive/lib

Hive的安装部署

将Hive的安装文件“apache-hive-3.1.2-bin.tar.gz”复制到当前用户目录中

在终端中输入

sudo tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local

对解压缩输出文件夹进行重命名为Hive,并授予当前用户访问权限

cd /usr/local/
sudo mv apache-hive-3.1.2-bin hive
sudo chown -R hadoop hive

将安装的驱动程序文件夹中的JAR文件“mysql-connector-j-8.3.0.jar”复制到Hive安装目录的lib文件夹中

编辑用户的环境变量配置文件

sudo vim ~/.bashrc

在文件的开头位置,添加如下几行内容:

export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
export PATH=PATH:HIVE_HOME/bin

让环境变量设置生效

source ~/.bashrc

将“/usr/local/hive/conf”目录下的hive-default.xml.template文件重命名为hive-default.xml,命令如下:

cd /usr/local/hive/conf
sudo mv hive-default.xml.template hive-default.xml

使用vim编辑器新建一个文件hive-site.xml,命令如下:

cd /usr/local/hive/conf
vim hive-site.xml

在hive-site.xml中输入如下配置信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
    <description>password to use against metastore database</description>
  </property>
</configuration>

Hive访问MySQL的用户名设置为hive 密码被设置为hive

查看目录“/usr/local/Hadoop/share/Hadoop/common/lib”目录下guava.jar的版本
查看目录“/usr/local/hive/lib”目录下guava.jar的版本
检查hadoop和hive的guava.jar的版本是否一致
如果不一致,则启动hive会出错。
解决方法:删除低版本guava.jar,用高版本的guava.jar代替
如:hadoop 3.1.3的guava为guava-27.0-jre,hive3.1.2的guava为guava-19.0。

Hive连接MySQL的配置

启动MySQL

在MySQL中为Hive新建数据库

配置MySQL允许Hive接入

相关命令:

CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL ON *.* TO 'hive'@'localhost';
flush privileges;

启动Hive

启动Hive之前,需要先启动Hadoop集群 伪分布式

start-dfs.sh

再执行如下命令初始化

cd /usr/local/hive
bin/schematool -dbType mysql -initSchema

hive命令启动Hive

MySQL命令

启动MySQL服务

在终端输入:

service mysql start

查看MySQL版本

在MySQL命令行输入:

status;

删除用户

DROP USER <用户1> [ , <用户2> ]...

注意:

  • DROP USER语句可用于删除一个或多个用户,并撤销其权限
  • 使用DROP USER语句必须拥有MySQL数据库的DELETE权限或全局CREATE USER权限
  • 在DROP USER语句的使用中,若没有明确地给出账户的主机名,则该主机名默认为"%"

标签:记录,local,hadoop,hive,实验,usr,mysql,hbase,数据
From: https://www.cnblogs.com/fenglilai/p/18114181

相关文章

  • 基于深度学习的动物识别系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
    摘要:在这篇博文中,我们深入探讨了基于YOLOv8/v7/v6/v5的动物识别系统。核心技术基于最先进的YOLOv8算法,同时整合了YOLOv7、YOLOv6、YOLOv5的优点,对比各版本性能指标,以期达到最优的识别效果。文章详细介绍了国内外在动物识别领域的研究现状,对使用的数据集处理方法、算法原理进行了深......
  • ShardingJDBC-5.3实现读写分离,构建主从MySQL数据库,Docker部署Mysql8.0
      最近在做一个项目需要搭建MySQL主从架构,采用ShardingJDBC5.3实现MySQL读写分离,本文记录一下搭建流程。基于Docker创建主从架构#创建主从数据库文件夹mkdir-p/usr/local/mysql/master1/confmkdir-p/usr/local/mysql/master1/datamkdir-p/usr/local/mysql/s......
  • 基于深度学习的植物病害检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
    摘要:本文深入研究了基于YOLOv8/v7/v6/v5的植物病害检测系统,核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法,进行性能指标对比;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码,及基于Streamlit的交互式Web应用界面设计。在Web网页中可以支持图像、视频和......
  • 基于python的豆瓣电影数据的可视化与分析
    1项目背景意义介绍    电影是一种具有极高娱乐性和文化价值的艺术形式,自从电影产业诞生以来,已经成为了人们生活中的重要组成部分。电影产业在全球范围内都有着广泛的影响力,对经济、文化、社会等多个方面都起到了积极的作用。因此,对电影产业进行数据分析和可视化,可以帮......
  • 基于深度学习的番茄成熟度检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
    摘要:在本博客中,我们深入探讨了基于YOLOv8/v7/v6/v5的番茄成熟度检测系统。核心技术基于YOLOv8,同时融合了YOLOv7、YOLOv6、YOLOv5的算法,对比了它们在性能指标上的差异。本文详细介绍了国内外在此领域的研究现状、数据集的处理方法、算法的基本原理、模型的构建及训练代码,并设......
  • Android操作sqlite数据库
    Sqlite数一种轻量级的关系型数据库,android里面可以用来持久化存储一些用户数据。一、SQLiteOpenHelper方式SQLiteOpenHelper是原生的数据库帮助类,继承这个类,用来创建,更新数据库的操作publicclassMySqliteOpenHelperextendsSQLiteOpenHelper{privatestaticfinal......
  • 基于深度学习的花卉检测与识别系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
    摘要:在本篇博客中,我们深入探讨了基于YOLOv8/v7/v6/v5的花卉检测与识别系统。核心上,我们采用了最新的YOLOv8技术,并整合了YOLOv7、YOLOv6、YOLOv5等先进算法,进行了细致的性能指标对比分析。我们详细介绍了当前国内外在花卉检测与识别领域的研究现状,包括如何处理数据集、算法的......
  • 软件测试和质量管理——实验3:单元测试
    《软件测试和质量管理》实验报告三一、目的和要求        1、掌握单元测试技术,并要求按照单元测试的要求设计测试用例;        2、掌握在Eclipse里进行Junit4测试的技术;        3、根据题目要求编写测试用例;        4、实验结果要求给出测......
  • 双网卡电脑不能访问数据库,关掉一个就可以访问数据库,其解决办法
    双网卡电脑不能访问数据库,关掉一个就可以访问数据库。解决办法注:从网上收集:https://zhidao.baidu.com/question/435097550.html(感谢原作者)电脑装了2个网卡就有2个网关,但是电脑只允许一个网关存在,所以冲突,只有一个网关可以用,这样就导致不是外网可以上就是内网可以上,不能同时上,必......
  • 数据库mysql面试题
    数据库(mysql)面试题主要从优化进行提问,还有事务以及其他进行提问。优化分别从四个方面进行讲述:主要从定位慢查询、SQL执行计划、索引(储存索引、索引底层数据结构、聚簇和非聚簇索引、索引创建原则、索引失效场景)和SQL优化经验进行概述 Q1:如何定位慢查询?导致慢查询的原因:......