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

b、安装java1.8

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

c、配置JAVA_HOME环境变量

gedit ~/.bashrc

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安装目录

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

source ~/.bashrc

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

1.2mysql安装

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

a、安装过程

sudo apt-get update
sudo apt-get install mysql-server

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

sudo cat /etc/mysql/debian.cnf

b、开启mysql服务

service mysql start

d、登陆mysql

sudo mysql -u (user) -p

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

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

授权并刷新权限:

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

之后使用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

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

./bin/hadoop version

可以看到版本 :

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文件夹下运行结果

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

在这里插入图片描述

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

4、实现伪分布式部署

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

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

sudo gedit?core-site.xml

<configuration>
? ? <property>
? ? ? ? <name>hadoop.tmp.dir</name>
        #修改为你自己的hadoop目录
? ? ? ? <value>file:/usr/local/hadoop/tmp</value>
? ? ? ? <description>Abase for other temporary directories.</description>
? ? </property>
? ? <property>
? ? ? ? <name>fs.defaultFS</name>
? ? ? ? <value>hdfs://localhost:9000</value>
? ? </property>
</configuration>

sudo gedit?hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        #修改为你自己的hadoop目录
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        #修改为你自己的hadoop目录
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

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

cd /usr/local/hadoop
./bin/hdfs namenode -format

6、启动hadoop服务

./sbin/start-dfs.sh 

hadoop服务的关闭

./sbin/stop-all.sh

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   

3、修改配置文件。

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

sudo mv hive-default.xml.template hive-default.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&amp;useSSL=false&amp;allowPublicKeyRetrieval=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>
  <property>
    <name>datanucleus.autoCreateTables</name>
    <value>True</value>
  </property>
</configuration>

记得保存。

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

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

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

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

./sbin/start-dfs.sh 

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

./bin/schematool -dbType mysql -initSchema


bin/hive

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

hive>

报错:

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

解决:

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

show databases;
drop database hive;

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

1、创建表格

create table test1(id int, name string);

2、插入数据

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

3、查询数据

select * from test1;

4、删除表格

drop  table test1;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值