• Ubutnu20.04+hadoop2.10.2+hive1.2.2实现完美安装详细教程


    本来想在windows下实现安装的,结果发现windows安装的hive数据库莫名奇妙不能插入数据

    只能选择ubuntu了,我用的是双系统,不需要虚拟机的设置,也没有创建相关的用户,直接在自己的用户下安装的。这里作一下备份把。

    1、前期准备:

    首先是需要安装java和mysql数据库。

    1.1java安装

    hadoop的mapredure是基于java实现的,这里不建议安装太高的版本。后面可能会报错,我用的是

    安装方法:

    a、更新系统源

    sudo apt-get update
    
    • 1

    b、安装java1.8

    sudo apt-get install openjdk-8-jre openjdk-8-jdk
    
    • 1

    c、配置JAVA_HOME环境变量

    gedit ~/.bashrc
    
    • 1

    d、添加JAVA_HOME,为了方便这里把hadoop和hive的一起配置了。

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
    export PATH=${JAVA_HOME}/bin:$PATH
    export HIVE_HOME=你准备的hive安装目录
    export PATH=$PATH:$HIVE_HOME/bin
    export HADOOP_HOME=你准备的hadoop安装目录
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    e、保存之后刷新环境变量

    source ~/.bashrc
    
    • 1

    可以用echo $JAVA_HOME查看是否配置成功。

    1.2mysql安装

    hive的数据库的元数据默认是存储在derby数据库的,但是derby数据库同时只能有一个hive实例访问,所以这里我们安装mysql同时用mysql存储元数据,就可以实现多个实例的访问了,当然这里实现的是本地模式。但是为了后续的学习,还是安装mysql吧。

    a、安装过程

    sudo apt-get update
    sudo apt-get install mysql-server
    
    • 1
    • 2

    安装过程如果没有提示设置密码,可以用如下shell查看默认的:

    sudo cat /etc/mysql/debian.cnf
    
    • 1

    b、开启mysql服务

    service mysql start
    
    • 1

    d、登陆mysql

    sudo mysql -u (user) -p
    
    • 1

    输入密码登陆,之后需要创建hive用户,授权

    create user 'hive'@'%' identified by  'hive';
    
    • 1

    授权并刷新权限:

    grant all privileges on hive.* to 'hive'@'%' with grant option;
    flush privileges;
    
    • 1
    • 2

    之后使用quit;或者exit;退出mysql。

    2、hadoop2.10.2的部署安装

    需要说明的是,hadoop和hive的版本不是随便选的,我这里用的是hadoop2.10.2+hive1.2.2

    hadoop是一种分布式系统框架,基本组建包括HDFS、Mapredure和Yarn三大模块

    hadoop不需要做安装的,下载之后配置正确就可以通过shell启动了。

    官方网址:Apache Download Mirrors

    国内镜像:Index of /apache/hadoop/common

    1、下载完整之后解压

    sudo tar -zxvf /usr/local/hadoop-2.10.2.tar.gz
    sudo mv ./hadoop-2.10.2/ ./hadoop
    
    • 1
    • 2

    2、解压之后,验证是否可用,需要在hadoop目录下

    ./bin/hadoop version
    
    • 1

    可以看到版本 :

    3、单机配置

    使用Hadoop自带例子进行调试,创建input文件夹,将输出数据存放在output文件夹下。

    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/*          # 查看output文件夹下运行结果
    
    • 1
    • 2
    • 3
    • 4
    • 5

    若出现以下结果,则代表执行成功。

    在这里插入图片描述

    再次运行上面例子会出错,需要先将output文件夹删除。rm -r ./output

    4、实现伪分布式部署

    修改配置文件实现分布式部署(注意代码中需要修改的部分)

    伪分布式需要修改 /usr/local/hadoop/etc/hadoop/ 下的core-site.xml 和 hdfs-site.xml 文件。

    sudo gedit?core-site.xml
    
    
    ? ? 
    ? ? ? ? hadoop.tmp.dir
            #修改为你自己的hadoop目录
    ? ? ? ? file:/usr/local/hadoop/tmp
    ? ? ? ? Abase for other temporary directories.
    ? ? 
    ? ? 
    ? ? ? ? fs.defaultFS
    ? ? ? ? hdfs://localhost:9000
    ? ? 
    
    
    sudo gedit?hdfs-site.xml
    
    
        
            dfs.replication
            1
        
        
            dfs.namenode.name.dir
            #修改为你自己的hadoop目录
            file:/usr/local/hadoop/tmp/dfs/name
        
        
            dfs.datanode.data.dir
            #修改为你自己的hadoop目录
            file:/usr/local/hadoop/tmp/dfs/data
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    5、格式化namenode,这里的目录也是改为你自己的目录

    cd /usr/local/hadoop
    ./bin/hdfs namenode -format
    
    • 1
    • 2

    6、启动hadoop服务

    ./sbin/start-dfs.sh 
    
    • 1

    hadoop服务的关闭

    ./sbin/stop-all.sh
    
    • 1

    7、在网页上打开Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息。

    3、hive 的部署、安装和操作

    1、下载安装包并解压

    官方下载:

    https://dlcdn.apache.org/hive/

    国内镜像下载:

    Index of /apache/hive

    2、下载完成之后,解压安装hive

    sudo tar -zxvf ./apache-hive-1.2.2-bin.tar.gz
    sudo mv apache-hive-3.1.2-bin hive   
    
    • 1
    • 2

    3、修改配置文件。

    hive-default.xml:这里可以把模板文件做一个备份,我这里直接用了。

    sudo mv hive-default.xml.template hive-default.xml
    
    • 1

    hive-site.xml:新建编辑,内容如下,不需要作修改就可以

    
    
    
      
        javax.jdo.option.ConnectionURL
        jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false&allowPublicKeyRetrieval=true
        JDBC connect string for a JDBC metastore
      
      
        javax.jdo.option.ConnectionDriverName
        com.mysql.cj.jdbc.Driver
        Driver class name for a JDBC metastore
      
      
        javax.jdo.option.ConnectionUserName
        hive
        username to use against metastore database
      
      
        javax.jdo.option.ConnectionPassword
        hive
        password to use against metastore database
      
      
        datanucleus.autoCreateTables
        True
      
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    记得保存。

    4、启动HADOOP和HIVE实现数据库的操作

    以上的步骤可能会遇到很多报错,我遇到这种问题的解决思路都是先找到第一行报错,尝试翻译一下,定位大概的问题,思考一下自己是否有哪里忽略了,如果实在定位不了建议直接bing。

    大部分问题应该都是有人遇到过的

    1、启动hadoop,在hadoop目录下:

    ./sbin/start-dfs.sh 
    
    • 1

    2、启动hive,在hive目录下:

    ./bin/schematool -dbType mysql -initSchema
    
    
    bin/hive
    
    • 1
    • 2
    • 3
    • 4

    正常启动会出现一个交互界面如下:

    hive>
    
    • 1

    报错:

    Error: Duplicate key name ‘PCS_STATS_IDX’ (state=42000,code=1061)

    解决:

    查看mysql中是否有hive这个数据库,如果有,删除即可。

    show databases;
    drop database hive;
    
    • 1
    • 2

    4、hive数据库的基本操作验证:

    1、创建表格

    create table test1(id int, name string);
    
    • 1

    2、插入数据

    insert into test1 values(1,'test1');
    
    • 1

    3、查询数据

    select * from test1;
    
    • 1

    4、删除表格

    drop  table test1;
    
    • 1
  • 相关阅读:
    Vue2&3全面知识总结六
    持续交付的第一关键点:配置管理
    服务器的维护是如何操作
    基于多目标优化算法的 LCOE电力成本的敏感性分析(Matlab代码实现)
    超市自助付款系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
    爬虫怎么批量采集完成任务
    SpringBoot 之配置加密
    python消消乐 美轮美奂的界面效果【完整源码+详细流程】
    数据统计与可视化复习总结(二):非参数检验、生存分析
    windows平台下的mysql启动等基本操作
  • 原文地址:https://blog.csdn.net/Ajekseg/article/details/126616225