java大数据hadoop2.9.2 Linux安装mariadb和hive

一、安装mariadb

版本centos7

1、检查Linux服务器是否已安装mariadb

yum list installed mariadb*

2、如果安装了,想要卸载

yum remove mariadb

rm -rf /etc/my.cnf
rm -rf /var/lib/mysql

才能完全删除

3、安装mariadb

在线网络安装

yum install -y mariadb-server

开启服务
systemctl start mariadb.service

输入下方命令,进入数据库内部

mysql

java大数据hadoop2.9.2 Linux安装mariadb和hive_第1张图片

给用户权限,方便后续使用navicat等工具远程登录

show databases;

use mysql;

grant all on *.* to 'root'@'%' identified by '123456';

select user,host,password from user;

二、安装Hive

1、上传hive压缩包到Linux系统解压

tar -zcvf apache-hive-3.1.1-bin.tar.gz

把解压缩的文件复制到/usr/local/hive

2、修改配置文件

(1)修改hive-env.sh

cd /usr/local/hive/conf

cp ./hive-env.sh.template .        /hive-env.sh

编辑hive-env.sh

添加下方两行

HADOOP_HOME=/usr/local/hadoop
export HADOOP_HOME

java大数据hadoop2.9.2 Linux安装mariadb和hive_第2张图片

(2)修改hive-site.xml

hive-site.xml文件
编辑指定hive元数据要保存的关系数据库的连接信息

cd /usr/local/hive/conf

cp ./hive-default.xml.template ./hive-site.xml

编辑hive-site.xml

在hive-site.xml文件修改部分节点配置


	
		javax.jdo.option.ConnectionURL
		jdbc:mysql://ip:3306/hive?createDatabaseIfNotExist=true
		JDBC connect string for a JDBC metastore
	
	 
	
		javax.jdo.option.ConnectionDriverName
		com.mysql.jdbc.Driver
		Driver class name for a JDBC metastore
	
	 
	
		javax.jdo.option.ConnectionUserName
		root
		username to use against metastore database
	
	 
	
		javax.jdo.option.ConnectionPassword
		123456
		password to use against metastore database
	

3、启动测试

vi /etc/profile

添加下方全局配置

HIVE_HOME=/usr/local/hive
export HIVE_HOME
PATH=$HIVE_HOME/bin:$PATH
export PATH

navicat连接mysql创建一个库,即前面安装的mariadb中新增hive数据库

schematool -dbType mysql -initSchema//初始化表结构

命令有可能报错,需要下载mysql驱动

https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.47.tar.gz

tar -zxvf mysql-connector-java-5.1.47.tar.gz

解压缩后,把里面的jar包mysql-connector-java-5.1.47.jar文件拷贝到

/usr/local/hive/lib

start-all.sh启动Hadoop,然后再执行初始化表结构的命令

进入hive内部,输入hive命令,有可能报错,需要修改配置文件hive-site.xml

vi /usr/local/hive/conf/hive-site.xml

修改如下几个节点

将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为/home/lch/software/Hive/apache-hive-2.1.1-bin/tmp/,该目录(tmp)如果不存在则要自己手工创建,并且赋予读写权限。

    Hive.exec.local.scratchdir
    /usr/local/hive/tmp/${user.name}
    Local scratch space for Hive jobs
  

  
    hive.downloaded.resources.dir
    /usr/local/hive/tmp/${hive.session.id}_resources
    Temporary local directory for added resources in the remote file system.
  


    hive.server2.logging.operation.log.location
    /usr/local/hive/tmp/operation_logs
    Top level directory where operation logs are stored if logging functionality is enabled
  

后面输入hive即可进入

java大数据hadoop2.9.2 Linux安装mariadb和hive_第3张图片

4、hive操作

创建数据库

create database test;

创建表

use test;

create table t_student(
     id int,
     name string,
     sex string,
     age int
)
row format delimited fields terminated by ',';

后面可在hadoop的文件系统web端查看到创建的库和表

java大数据hadoop2.9.2 Linux安装mariadb和hive_第4张图片

在Linux的任意一个目录新增一个文件,my_student.txt

cd /root/app/

vi ./my_student.txt

1,zhangsan,man,20
2,lisi,woman,21
3,wangwu,man,34
4,xiaofan,woman,24

文件上传到hadoop中的hive目录

hdfs dfs -put ./my_student.txt /user/hive/warehouse/test.db/t_student

再去hive里面通过sql查询语句

select * from t_student;

5、Java操作

创建maven项目,依赖如下


		
			org.apache.hive
			hive-jdbc
			2.3.4
		

操作代码

public class TestHive {

	public static void main(String[] args) throws Exception{
		test();
	}
	
	public static void test()throws Exception{
		Class.forName("org.apache.hive.jdbc.HiveDriver");
		Connection conn = DriverManager.getConnection("jdbc:hive2://192.168.208.133:10000/test", "root", "123456");
		Statement stmt = conn.createStatement();
		String sql = "select * from t_student";
		ResultSet rs = stmt.executeQuery(sql);
		while(rs.next()) {
			System.out.println(rs.getInt(1));
			System.out.println(rs.getString(2));
			System.out.println(rs.getString(3));
			System.out.println(rs.getInt(4));
		}
	}
}

需要hive开启远程

(1)配置远程

vi /usr/local/hadoop/etc/hadoop/core-site.xml

添加两个节点


	    hadoop.proxyuser.root.hosts
	    *
	  
	  
	    hadoop.proxyuser.root.groups
	    *
	  

Linux运行命令

hiveserver2

启动hiveserver2这个命令需要等几分钟才能完全启动,后面才能运行Java代码连接hive客户端查询里面的表数据

你可能感兴趣的:(java大数据,大数据,linux,mariadb)