欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Hive实战(2)Hive安装教程,hive实战

来源: javaer 分享于  点击 37745 次 点评:219

Hive实战(2)Hive安装教程,hive实战


选择Hadoop发行版本

安装java

$  /usr/java/latest/bin/java -version 
java version "1.6.0_23" 
Java(TM) SE Runtime Environment (build 1.6.0_23-b05) 
Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode) 
$ sudo echo "export JAVA_HOME=/usr/java/latest" > /etc/profile. d/java. sh $ sudo echo "PATH= $ PATH: $ JAVA_HOME/bin" » /etc/profile. d/java. sh 
$ . /etc/profile 
$ echo $ JAVAHOME 
/usr/java/latest

安装Hadoop

$ wget \ 
http://www.us.apache.org/dist/hadoop/common/hadoop-0.20.2/hadoop-0.20. 2.tar.gz 
$ tar -xzf hadoop-0.20.2.tar.gz 
$ sudo echo "export HADOOP_HOME=$PWD/hadoop-0.20.2" > /etc/profile.d/ hadoop.sh 
$ sudo echo "PATH=$PATH: $HADOOP_HOME/bin" » /etc/profile.d/hadoop.sh 
$ . /etc/profile

选择本地模式 并测试Hadoop

$ mkdir wc-in 
$ echo "bla bla" > wc-in/a.txt 
$ echo "bla wa wa " > wc-in/b.txt
$ hadoop jar $HADOOP_HOME/hadoop-0.20.2-examples.jar wordcount wc-in 
wc-out
$ ls wc-out/*
$ cat wc-out/*
$ hadoop dfs -cat wc-out/*

安装Hive

$ curl -o http://archive.apache.org/dist/hive/hive-0.9.0/hive-0.9.0-bin. tar.gz 
$ tar -xzf hive-0.9.0.tar.gz 
$ sudo mkdir -p /user/hive/warehouse 
$ sudo chmod a+rwx /user/hive/warehouse

Hive文件说明

$HIVE_HOME/lib 目录下可以发现有众多的JAR 文件 
$HIVE_HOME/bin目录下包含可以执行各种各样Hive服务的可执行文件
$HIVE_HOME/conf目录下存放了配置Hive的配置文件

Thrift服务提供了可远程访问其他进程的功能,也提供使用 JDBC和ODBC访问Hive的功能。
metastoreservice (元数据服务),Hive使用这个服务来 存储表模式信息和其他元数据信息。

启动Hive

$ Cd $ HIVE_HOME 
$ bin/hive 
Hive history file=/tmp/myname/hive_job_log_myname_201201271126_1992326118. txt 

hive> CREATE TABLE x (a INT); 

hive> SELECT * FROM x; 

hive> SELECT * FROM x; 

hive> DROP TABLE x; 

hive> exit;

hadoop本地模式配置

例2-1 本地模式下的hive-site, xml配置文件。 
<?xml version="l.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
<property> 
<name>hive.metastore.warehouse.dir</name> 
<value>/home/me/hive/warehouse</value> 
〈description〉 
Local or HDFS directory where Hive keeps table contents. 
〈/description〉 
</property> 
<property> 
<name>hive.metastore.local</name> 
<value>true</value> 
〈description〉 
Use false if a production metastore server is used. 
〈/description〉 
</property> 
<property> 
<name>j avax.jdo.option.ConnectionURL</name> 
<value>jdbc:derby:;databaseName=/home/me/hive/metastore_db;create=tru e</value> 
〈description〉
The JDBC connection URL. 
</description〉 
</property> 
〈/configuration〉

hadoop伪分布式,集群模式

JDBC连接metastore元数据配置

例2-2 hive-site.xml中的元数据存储数据库配置。 
<?xml version="l.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
〈configuration〉 
<property> 
<name>javax.jdo.option.ConnectionURL</name> 
<value>j dbc:mysql://dbl.mydomain.pvt/hive_db?createDatabaseIfNotExist =true</value> 
</property> 
<property> 
<name>javax.jdo.option.ConnectionDriverName</name> 
<value>com.mysql.jdbc.Driver</value> 
</property> 
<property> 
<name>j avax.jdo.option.ConnectionUserName</name> 
<value>database_user</value> 
</property> 
<property>
<name>j avax.jdo.option.ConnectionPassword</name> 
<value>database_pass</value> 
</property> 
〈/configuration〉

Hive命令

$ bin/hive --help

Hive命令行界面

hive --help --service cli

$ hive -e "SELECT * FROM mytable LIMIT 3"#执行结束后hive CLI立 即退出

$ cat /path/to/file/withqueries.hql 
SELECT x.* FROM src x; 
$ hive 
hive> source /path/to/file/withqueries.hql;
#从文件中执行查询

$ echo "one row" > /tmp/myfile 
$ hive -e "LOAD DATA LOCAL INPATH '/tmp/myfile1 INTO TABLE src;
#至少有一行的数据在源表里面

#使用Tab键自动补全

hive> ! pwd; 
/home/me/hiveplay
#使用!和;开头结尾来切换bash shell脚本


hive> dfs -ls / ;
#执行Hadoop的dfs命令,只需要将hadoop命令中的关键字 hadoop去掉,然后以分号结尾就可以了

--开头的字符串来表示注释

#显示字段名称
hive> set hive.cli.print.header=true; 
hive> SELECT * FROM system—logs LIMIT 3;

相关文章

    暂无相关文章
相关栏目:

用户点评