欢迎投稿

今日深度:

hive安装,

hive安装,


一、查看需求

安装java 1.6及hadoop 0.20.x
二、安装hive tar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz) 将解压后的hive-0.8.1文件放在系统的/home/hadooptest/中。
在/etc/profile中添加: export HIVE_HOME=/home/hadooptest/hive-0.8.1 export PATH=$HIVE_HOME/bin:$PATH
修改hive-0.8.1目录下/conf/hive-env.sh.template中的HADOOP_HOME为实际的Hadoop安装目录:/home/hadooptest/hadoop-0.20.205.0。
在HDFS中创建/tmp和/user/hive/warehouse并设置权限: $ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp $ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp $ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
将conf/hive-default.xml.template复制两份,分别命名为hive-default.xml(用于保留默认配置)和hive-site.xml(用于个性化配置,可覆盖默认配置
启动hive: $HIVE_HOME/bin/hive
hive> show tables;  OK  Time taken: 3.496 seconds
执行成功。 (可根据https://cwiki.apache.org/confluence/display/Hive/GettingStarted中的指引使用hive自带的数据来建表进行测试) 依据https://cwiki.apache.org/confluence/display/Hive/GettingStarted中的方法建表并进行查询,使用select * from pokes查询成功,但只查询表中某一项时却报错(若查询成功说明你的mapreduce没有问题,可跳过下列的报错分析): hive> select foo from pokes; Total MapReduce jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since there's no reduce operator java.net.ConnectException: Call to namenode/192.168.1.112:8021 failed on connection exception: java.net.ConnectException: Connection refused ......
mapreduce无法执行。于是,退出hive,执行jps查看java进程,发现jobtracker进程挂了。 于是重启hadoop(由于这个hadoop的配置还有些问题,datanode丢失block的比例达到阈值,系统会一直处于安全模式,所以想在HDFS中进行写入或擦除时,必须先执行hadoop dfsadmin -safemode leave来关闭安全模式),执行jps发现所有hadoop进程都正常运行,但是执行关闭安全模式命令后,jobtracker和tasktracker进程便挂了,所以mapreduce无法运行。 执行mapreduce程序时提示无法连接namenode: INFO ipc.Client: Retrying connect to server: namenode/192.168.1.102:8021. Already tried 0 time(s). INFO ipc.Client: Retrying connect to server: namenode/192.168.1.102:8021. Already tried 1 time(s). ......
查看hadoop-hadooptest-jobtracker-tigerchan-VirtualBox.log日志文件,发现错误为: 2012-03-04 21:43:47,919 INFO org.apache.hadoop.mapred.CapacityTaskScheduler: Initializing 'default' queue with cap=100.0, maxCap=-1.0, ulMin=100, ulMinFactor=1.0, supportsPriorities=false, maxJobsToInit=3000, maxJobsToAccept=30000, maxActiveTasks=200000, maxJobsPerUserToInit=3000, maxJobsPerUserToAccept=30000, maxActiveTasksPerUser=100000 2012-03-04 21:43:47,921 FATAL org.apache.hadoop.mapred.JobTracker: java.io.IOException: Queue 'slow' doesn't have configured capacity! at org.apache.hadoop.mapred.CapacityTaskScheduler.parseQueues(CapacityTaskScheduler.java:906) at org.apache.hadoop.mapred.CapacityTaskScheduler.start(CapacityTaskScheduler.java:823) at org.apache.hadoop.mapred.JobTracker.offerService(JobTracker.java:2581) at org.apache.hadoop.mapred.JobTracker.main(JobTracker.java:4979)
2012-03-04 21:43:47,922 INFO org.apache.hadoop.mapred.JobTracker: SHUTDOWN_MSG: 
由此可知,队列slow没有配置容量!!哦,原来是之前我把mapred-site.xml文件中的mapred.queue.names设置为default,slow,fast,却忘记配置slow和fast队列。故,把mapred.queue.names设置为default,或者保留slow,fast,然后正确配置队列即可。重启hadoop便正常运行。上述的查询问题也得以解决。 这个问题可能不是很普遍,可能其他人会遇到其他问题。所以,在使用hive时,一定要先保证hadoop正常运行。若出现问题,则第一时间查看日志分析错误,没法找出错误再上网查找解决方法。此次出现错误,我第一时间上网查找方法,但“无法连接namenode”这样简单的错误会搜索到很多解决方法,但大家遇到的问题都不一样,问题一直没有解决。后来才想起去查看日志,一眼便看出问题。因此,一定要养成出错先看日志的习惯。
三、安装mysql 但是这样安装的元数据保持在内嵌的数据库Derby中,只能允许一个会话连接,如果要支持多用户多会话,则需要一个独立的元数据库,目前比较流行的是使用MySQL,下面进行配置。   1)安装MySQL服务器并启动MySQL服务
2)为Hive建立相应的MySQL帐号,并赋予足够的权限 ①进入root:mysql -uroot -p; ②创建hive数据库:create database hive; ③创建用户hive,它只能从localhost连接到数据库并可以连接到wordpress数据库:grant all on hive.* to hive@localhost identified by '123456'。
3)在Hive的conf目录下修改配置文件hive-site.xml,配置文件修改如下 <property>     <name>javax.jdo.option.ConnectionURL</name>     <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>     <description>JDBC connect string for a JDBC metastore</description>   </property>   <property>     <name>javax.jdo.option.ConnectionDriverName</name>     <value>com.mysql.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>123456</value>     <description>password to use against metastore database</description>   </property>
4)把MySQL的JDBC驱动包(我使用的是mysql-connector-java-5.0.8-bin.jar,从http://downloads.mysql.com/archives/mysql-connector-java-5.0/mysql-connector-java-5.0.8.tar.gz下载并解压后可以找到)复制到Hive的lib目录下。
5)启动Hive shell,执行 show tables; 如果不报错,表明基于独立元数据库的Hive已经安装成功了。 
查看一下元数据的效果。  在Hive上建立数据表: CREATE TABLE my(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'; show tables; select name from my;
然后我们以刚刚建立的hive帐号登录MySQL查看元数据信息。 mysql> use hive  Reading table information for completion of table and column names  You can turn off this feature to get a quicker startup with -A 
Database changed 
mysql> show tables;  +-----------------+  | Tables_in_hive  |  +-----------------+  | BUCKETING_COLS  |  | COLUMNS         |  | DATABASE_PARAMS |  | DBS             |  | PARTITION_KEYS  |  | SDS             |  | SD_PARAMS       |  | SEQUENCE_TABLE  |  | SERDES          |  | SERDE_PARAMS    |  | SORT_COLS       |  | TABLE_PARAMS    |  | TBLS            |  +-----------------+  13 rows in set (0.00 sec) 
mysql> select * from TBLS;  +--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+  | TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER  | RETENTION | SD_ID | TBL_NAME | TBL_TYPE      | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |  +--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+  |      1 |  1319445990 |     1 |                0 | hadoop |         0 |     1 | my       | MANAGED_TABLE | NULL               | NULL               |  +--------+-------------+-------+------------------+--------+-----------+-------+----------+---------------+--------------------+--------------------+  1 row in set (0.00 sec)
在TBLS中可以看到Hive表的元数据。

www.htsjk.Com true http://www.htsjk.com/hive/37368.html NewsArticle hive安装, 一、查看需求 安装java 1.6及hadoop 0.20.x 二、安装hivetar -xf hive-x.y.z.tar.gz(本次安装为hive-0.8.1.tar.gz)将解压后的hive-0.8.1文件放在系统的/home/hadooptest/中。 在/etc/profile中添加:...
相关文章
    暂无相关文章
评论暂时关闭