`
cooler1217
  • 浏览: 364449 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

hive 安装 max key length is 767 bytes

阅读更多

hive安装 ,并使用mysql数据库为元数据库
使用hive-0.8.0
安装hive前,事先安装mysql用于保存元数据,安装ant用于启用HWI
1、在namenode安装hive。下载并解压hive文件后,进入hive/bin/下,配置hive-config.sh文件:
export HADOOP_HOME=/home/hadoop/hadoop-0.20.203.0
export PATH=.:$HADOOP_HOME/bin:$PATH
export HIVE_HOME=/home/hadoop/hive-0.8.0
export PATH=$HIVE_HOME/bin:$PATH
export JAVA_HOME=/usr/java/jdk1.7.0_01
export JRE_HOME=/usr/java/jdk1.7.0_01/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH 
export PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
2、将hive加入到环境变量中:
export HIVE_HOME=/home/hadoop/hive-0.8.0
3、在mysql中创建hadoop的用户,密码也为hadoop,并创建元数据库:
mysql 
mysql> CREATE USER 'hadoop'@'master' IDENTIFIED BY 'hadoop';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'master' WITH GRANT OPTION;
mysql> exit
4、下载文件mysql-connector-java-5.1.15-bin.jar,保存到lib文件目录下。
否则出现错误:
hive> show tables;
FAILED: Error in metadata: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
NestedThrowables:
java.lang.reflect.InvocationTargetException
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
5、在hive/conf/文件夹中,新建hive-site.xml文件,并复制进hive-default.xml.template的全部内容,作以下修改:
(使用mysql为元数据库)
<property> 
  <name>hive.metastore.local</name> 
  <value>true</value> 
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <!--<value>jdbc:derby:;databaseName=metastore_db;create=true</value>-->
  <value>jdbc:mysql://master:3306/metastore</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>hadoop</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hadoop</value>
  <description>password to use against metastore database</description>
</property>
6、在hdfs中创建几个目录
$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
7、启动hive
启动hive:$HIVE_HOME/bin/hive
8、启动hwi界面:
export ANT_LIB=/opt/ant/lib
bin/hive --service hwi
bin/hive --service hwi --help
9、在hive命令行模式下,使用show tables;测试mysql连接是否正确。


用mysql做元数据


alter database hive character set latin1

这样才不会报  max key length is 767 bytes
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

这个异常
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics