Colmena de inicio rápido (a)

I. Visión general

1. ¿Cuál es la colmena?

  • facebook colmena es de código abierto, y donado a la organización Apache, Apache proyecto como una organización superior. hive.apache.org
  • colmena se basa en un gran almacén de datos tecnología de datos DataWareHouse (número bin), se adjunta a los HDFS inferiores, MapReduce.
  • Colmena se basa en herramientas de almacenamiento de datos Hadoop, puede asignar la estructura del archivo de datos en una tabla de base de datos, y proporciona capacidades de consulta simples, las sentencias SQL se pueden convertir en las tareas de MapReduce para funcionar.

2. La diferencia entre la base de datos y el almacenamiento de datos?

  • Base de datos (base de datos): los datos sobre el orden de una pequeña, almacén de datos de alto valor (tales como pedidos de clientes, la información de usuario, etc.).
  • Almacén de datos (DataWareHouse): gran volumen de datos, los datos de bajo valor almacenado (tales como información de registro).

3.Hive ¿Cuáles son los beneficios?
Cuando los programadores de aplicaciones colmena, escribir sentencias SQL (HQL) por el SQL convertido Colmena final (HQL) declaraciones en funcionamiento MapReduce, lo que simplifica el trabajo de los programadores.

En segundo lugar, el principio de funcionamiento de la colmena

Aquí Insertar imagen Descripción

Tres, entorno construido de la colmena

1. linux服务器  ip 映射  主机名  关闭防火墙  关闭selinux  ssh免密登陆 jdk
2. 搭建hadoop环境
3. 安装Hive
   3.1 解压缩hive 
   3.2 hive_home/conf/hive-env.sh [改名]
       HADOOP_HOME=/usr/hadoop/hadoop-2.9.2
       export HIVE_CONF_DIR=/usr/hive/apache-hive-0.13.1-bin/conf
   3.3 在hdfs中创建2个目录
       /tmp
       /user/hive/warehouse
       bin/hdfs dfs -mkdir /tmp
       bin/hdfs dfs -mkdir /user/hive/warehouse
   3.4 启动hive
       bin/hive 
   3.5 jps 看见以下进程则代表安装成功 
       runjar          

Cuatro, documento de sustitución MetaStore

Colmena en el HDFS MetaStore estructuras correspondientes, y los resultados hecho corresponde tabla de correspondencia (corresponden). Pero la colmena por defecto de la aplicación meta almacén en el caso de una base de datos Derby, sólo admite un acceso de cliente.

1.Hive Zhongyuan sustituye base de datos Derby MySQL (Oracle)

  • Instalación de MySQL en Linux
   yum -y install mysql-server

2. Iniciar el servicio MySQL y establecer la contraseña de administrador

  service mysqld start
 /usr/bin/mysqladmin -u root password '123456'

3. Abrir el acceso remoto MySQL

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
 flush privileges;   
 use mysql 
 delete from user where host like 'hadoop%';
 delete from user where host like 'l%';
 delete from user where host like '1%';
 service mysqld restart

4. Crear conf / colmena site.xml y configurar

   mv hive-default.xml.template hive-site.xml
   vim hive-site.xml
   <!--配置连接mysql的基本信息-->
   <property>
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://HadoopNode00:3306/metastore?createDatabaseIfNotExist=true</value>
	</property>

	<property>
	  <name>javax.jdo.option.ConnectionDriverName</name>
	  <value>com.mysql.jdbc.Driver</value>
	</property>

	<property>
	  <name>javax.jdo.option.ConnectionUserName</name>
	  <value>root</value>
	</property>

	<property>
	  <name>javax.jdo.option.ConnectionPassword</name>
	  <value>123456</value>
	</property>

	<!--配置使用hive命令时显示使用的库名-->
	<property>
	  <name>hive.cli.print.current.db</name>
	  <value>true</value>
	</property>
	<!--使用hive命令时显示使用的表名-->
	<property>
	  <name>hive.cli.print.header</name>
	  <value>true</value>
	</property>


  1. hive_home / lib carga MySQL paquete controlador jar
  • mysql-connector-java-5.1.39-bin.jar (para su descarga en Internet)

Cinco, operaciones básicas de la colmena

# 创建数据库
create database [if not exists] db_name;
# 查看所有数据库
 show databases;
 # 查看数据库的本质
 hive中的数据库 本质是 hdfs的目录 /user/hive/warehouse/db_name
# 使用数据库
 use db_name;
# 删除空数据库 
 drop database db_name;
 drop database db_name cascade;

# 查看当前数据库下的所有表
  show tables;
  # 查看表的本质
  hive中的表  本质是 hdfs的目录 /user/hive/warehouse/db_name/t_user
# 建表语句
  create table t_user(
    id int ,
    name string
   )row format delimited fields terminated by '\t';
#row format delimited fields terminated by '\t'的意思是列与列之间的间隔符合为制表符

# 删除表
  drop table t_user;
# hive中向表导入数据
  load data local inpath '/root/hive/data' into table t_user;
# hive导入数据的本质
  load data local inpath '/root/hive/data' into table t_user;
  1. 导入数据 本质本质上就是 hdfs 上传文件
  bin/hdfs dfs -put /root/hive/data /user/hive/warehouse/db_name/t_user;
  2. 上传了重复数据,hive导数据时,会自动修改文件名
  3. 查询某一个张表时,Hive会把表中这个目录下所有文件的内容,整合查询出来
  
  
# SQL(类SQL 类似于SQL HQL Hive Query Language)
select * from t_user;
select id from t_user;
1. Hive把SQL转换成MapReduce (如果清洗数据 没有Reduce)
2. Hive在绝大多数情况下运行MR,但是在* limit操作时不运行MR
Publicado 24 artículos originales · ganado elogios 1 · visitas 504

Supongo que te gusta

Origin blog.csdn.net/Mr_YXX/article/details/104972218
Recomendado
Clasificación