搜索
首页后端开发php教程Hive 1.2.1&Spark&Sqoop安装指南_PHP教程

Hive 1.2.1&Spark&Sqoop安装指南

Hive 1.2.1&Spark&Sqoop安装指南_PHP教程Hive 1.2.1&Spark&Sqoop安装指南.pdf

目录

目录1

1.前言1

2.约定2

3.服务端口2

4.安装MySQL 2

4.1.安装MySQL 2

4.2.创建Hive元数据库 4

5.安装步骤4

5.1.下载Hive1.2.1二进制安装包 4

5.2.安装Hive 5

5.3.安装MySQL-Connector 5

5.4.修改配置5

5.4.1.修改/etc/profile或~/.profile 5

5.4.2.修改其它配置文件5

5.4.2.1.修改hive-env.sh 6

5.4.2.2.修改hive-site.xml 6

5.4.2.3.修改hive-log4j.properties 7

5.4.2.4.修改hive-exec-log4j.properties 7

6.启动运行7

7.远程执行HSQL 8

8.基本命令8

9.单点方案9

10.和Spark集成 9

11.和Sqoop集成 9

11.1.修改sqoop-env.sh 9

11.2.修改sqoop-site.xml 10

11.3.验证测试10

12.常见错误10

13.相关文档14

1.前言

本文的安装参照《Hive0.12.0安装指南》,内容来源于官方的:GettingStarted,将Hive1.2.1安装在Hadoop2.7.1上。本文将Hive配置成Server模式,并且使用MySQL作为元数据数据库,远程连接MySQL。

关于Hadoop2.7.1的安装,请参见《Hadoop-2.7.1分布式安装手册》一文。

2.约定

本文约定Hadoop被安装在/data/hadoop/current,将Hive1.2.1的安装到目录/data/hadoop/hive(实际是指向/data/hadoop/hive-1.2.1-bin的软链接)。将MySQL5.7.10安装到目录/data/mysql。在实际安装部署时,可以指定为其它目录。

3.服务端口

10000

hive.server2.thrift.port,执行hiveserver2时会启动它

9083

hive.metastore.uris,执行hive--servicemetastore时会启动它

4.安装MySQL

由于单台MySQL有单点问题,因此实际中需要配置成主备MySQL方式。

4.1.安装MySQL

本文MySQL被安装在172.25.39.166机器上,Hive用MySQL来存储元数据,因此需要先安装好MySQL。这里安装的是最新的MySQL5.7.10,下载网址为:http://dev.mysql.com/downloads/mysql/,本文选择是的“Linux-Generic”下的“Linux-Generic(glibc2.5)(x86,64-bit),CompressedTARArchive”,它的二进制安装包名为mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz。

将二进制安装包解压后,可看到名为INSTALL-BINARY的文件,该文件有说明如何安装MySQL,本文基本参照它进行的。

由于官方提供的二进制安装包,编译的时候指定的“--prefix”为“/usr/local/mysql”,所以最好将mysql安装在/usr/local目录下,否则安装过程会容易遇到问题。但建立将数据目录指定为一个足够大的分区下的目录。

当然data目录也可以为软链接方式到足够大的分区目录,并且推荐使用软链接方式,否则在使用mysql命令时,经常需要指定参数“--datadir”,比如mysqld、mysqld_safe和mysql_ssl_rsa_setup等都需要指定“--datadir”。

如果不是安装在/usr/local/mysql,则需要为mysqld指定--basedir、--character-sets-dir、--language、--lc-messages-dir、--plugin-dir等众多参数值。

如果不能root用户安装,则还需要为mysqld指定--slow-query-log-file、--socket、--pid-file、--plugin-dir和--general-log-file等参数值。

这些参数的默认值,都可以通过执行MySQL的“bin/mysqld--verbose--help”查看到。

#MySQL安装目录为/usr/local/mysql,数据目录实际为/data/mysql/data

#注意需以root用户安装MySQL,如果不能root用户安装,容易遇到安装麻烦

#并请注意5.7.6之前的版本安装略有不同!

#新建mysql用户组

groupaddmysql

#新建mysql用户,并设置为不能作为linux登录用户

useradd-r-gmysql-s/bin/falsemysql

#进入到mysql安装目录

cd/usr/local

#解压二进制安装包

tarxzfmysql-5.7.10-linux-glibc2.5-x86_64.tar.gz

#建立易记的、与版本无关的短链接

ln-smysql-5.7.10-linux-glibc2.5-x86_64mysql

#进入到mysql目录

cdmysql

#创建数据目录

mkdir-p/data/mysql/data

#建立数据目录软链接,让指向/usr/local/mysql/data指向/data/mysql/data

ln-s/data/mysql/data/usr/local/mysql/data

#设置目录权限

chmod770/data/mysql/data

chown-Rmysql/data/mysql/data

chgrp-Rmysql/data/mysql/data

chown-Rmysql.

chgrp-Rmysql.

#初始化(成功执行完mysqld后,会提供一个临时的root密码,请务必记住)

#另外需要注意临时密码会过期,所以需要尽量修改root密码

#进入MySQLCli后,执行下列命令即可修改成新密码:

#SETPASSWORDFOR'root'@'localhost'=PASSWORD('new_password');

bin/mysqld--initialize--user=mysql--explicit_defaults_for_timestamp

#安装和配置SSL

bin/mysql_ssl_rsa_setup

#重置目录权限

chown-Rroot.

chown-Rmysql/data/mysql/data

#启动mysql

bin/mysqld_safe--user=mysql&

#查看端口是否已起来(不修改配置和不指定参数--port,默认端口号为3306)

netstat-lpnt|grep3306

#停止MySQL

support-files/mysql.serverstop

#设置mysql随着系统自启动

cpsupport-files/mysql.server/etc/init.d/mysql.server

以上使用的都是MySQL默认配置,如果需要定制化,可以通过修改文件my.cnf来达成。MySQL5.7.10不带my.cnf,只有个support-files/my-default.cnf。

通过执行命令“support-files/my-default.cnf”,可以了解到MySQL搜索my.cnf的顺序依次为:/etc/my.cnf/etc/mysql/my.cnf/usr/local/mysql/etc/my.cnf~/.my.cnf,这样可以复制一份my-default.cnf,然后再修改,如:cpsupport-files/my-default.cnf/etc/my.cnf。

4.2.创建Hive元数据库

创建数据库hive:

createdatabaseifnotexistshive;

创建数据库用户hive:

createuserhiveidentifiedby'hive2016';

授权可以访问数据库hive的IP和用户,其中localhost的实际IP为172.25.39.166:

grantallonhive.*to'hive'@'localhost'identifiedby'hive2016';

grantallonhive.*to'hive'@'172.25.39.166'identifiedby'hive2016';

grantallonhive.*to'hive'@'172.25.40.171'identifiedby'hive2016';

进入hive数据库:

1)本机进入:mysql-uhive-phive2016

2)非本机进入:mysql-uhive-h172.25.39.166-phive2016

注意如果配置了MySQL主主同步或其它同步,则如果同步的库不包含mysql,则创建库和用户需要分别在不同的MySQL上操作一次。

5.安装步骤

5.1.下载Hive1.2.1二进制安装包

下载网址:http://hive.apache.org/downloads.html,下载后的包名为:apache-hive-1.2.1-bin.tar.gz,然后将apache-hive-1.2.1-bin.tar.gz上传到/data目录下。

5.2.安装Hive

1)切换到/data目录:cd/data

2)解压二进制安装包:tarxzfapache-hive-1.2.1-bin.tar.gz

3)改个名:mvapache-hive-1.2.1-binhive-1.2.1

4)建立软链接:ln-shive-1.2.1hive

5.3.安装MySQL-Connector

MySQL-Connector下载网址:http://dev.mysql.com/downloads/connector/。

选择“Connector/J”,接着选择“PlatformIndependent”,本文下载的是“mysql-connector-java-5.1.38.tar.gz”。

压缩包“mysql-connector-java-5.1.38.tar.gz”中有个mysql-connector-java-5.1.38-bin.jar,解压后将mysql-connector-java-5.1.38-bin.jar上传到Hive的lib目录下,这个是MySQL的JDBC驱动程序。

5.4.修改配置

5.4.1.修改/etc/profile或~/.profile

设置环境变量HIVE_HOME,并将Hive加入到PATH中:

exportHIVE_HOME=/data/hadoop/hive

exportPATH=$HIVE_HOME/bin:$PATH

5.4.2.修改其它配置文件

进入/data/hadoop/hive/conf目录,可以看到如下:

hadoop@VM-40-171-sles10-64:~/hive/conf>ls

hive-default.xml.templatehive-exec-log4j.properties.template

hive-env.sh.templatehive-log4j.properties.template

可以看到4个模板文件,复制并重命名成配置文件:

cphive-env.sh.templatehive-env.sh

cphive-default.xml.templatehive-site.xml

cphive-log4j.properties.templatehive-log4j.properties

cphive-exec-log4j.properties.templatehive-exec-log4j.properties

5.4.2.1.修改hive-env.sh

如果之前没有设置好HADOOP_HOME环境变量,则可在hive-env.sh中,进行设置:

HADOOP_HOME=/data/hadoop/current

5.4.2.2.修改hive-site.xml

1)修改javax.jdo.option.ConnectionURL

将值设置为:

jdbc:mysql://172.25.39.166:3306/hive?useSSL=false,

注意加上“useSSL=false”,另外还有诸于参数characterEncoding=UTF-8等。

2)修改javax.jdo.option.ConnectionDriverName

将值设置为:com.mysql.jdbc.Driver。

3)修改javax.jdo.option.ConnectionUserName

将值设置为访问hive数据库的用户名hive:hive

4)修改javax.jdo.option.ConnectionPassword

将值设置为访问hive数据库的密码:hive2016

5)修改hive.metastore.schema.verification

该值试情况进行修改。

6)修改hive.zookeeper.quorum

将值设置为:10.12.154.77,10.12.154.78,10.12.154.79,ZooKeeper被安装在这三台机器上。建议使用机器名,而不是IP,因为机器退役可能导致IP变换。

7)修改hive.metastore.uris

将值设置为:thrift://172.25.40.171:9083,9083为Hive元数据的RPC服务端口。

8)修改hive.metastore.warehouse.dir

将值设置为:/data/hadoop/hive/warehouse,注意启动前,需要创建好该目录(mkdir/data/hadoop/hive/warehouse)。

9)修改hive.server2.thrift.bind.host

该值默认为localhost,如果需要在其它机器远程访问Hive,则需要将它改成IP地址,本文将它改成172.25.40.171,可以考虑为0.0.0.0。

10)修改hive.exec.scratchdir

这一步可选,可直接使用默认值/tmp/hive。设置为:/data/hadoop/hive/tmp或其它,并创建好目录。

11)修改hive.exec.local.scratchdir

设置为:/data/hadoop/hive/tmp/scratch或其它,并创建好目录。

12)修改hive.downloaded.resources.dir

设置为:/data/hadoop/hive/tmp/resources或其它,并创建好目录。

13)修改hive.querylog.location

设置为:/data/hadoop/hive/tmp/querylog或其它,并创建好目录。

14)修改hive.server2.logging.operation.log.location

设置为:/data/hadoop/hive/tmp/operation或其它,并创建好目录。

5.4.2.3.修改hive-log4j.properties

修改日志文件存放目录,将日志目录由/tmp/${user.name}改为/data/hadoop/hive/logs:

hive.log.dir=/data/hadoop/hive/logs

然后创建好目录/data/hadoop/hive/logs。

5.4.2.4.修改hive-exec-log4j.properties

修改日志文件存放目录,将日志目录由默认的/tmp/${user.name}改为/data/hadoop/hive/logs/exec:

hive.log.dir=/data/hadoop/hive/logs/exec

然后创建好目录/data/hadoop/hive/logs/exec。

6.启动运行

1)初始化metastore

安装配置好后,在启动Hive服务端之前,需要在服务端执行一次“schematool-dbTypemysql-initSchema”,以完成对metastore的初始化。

如果配置了MySQL主主同步,则只需要一台hive机器上执行,重复执行会报错。

2)启动metastore

执行命令:hive--servicemetastore&

3)启动Hive服务

执行:hiveserver2&。

4)进入Hive命令行操作界面(类似于mysql)

执行:hive

除了使用hive命令行操作界面之外,hiveserver2还提供了beeline(hive是用户名,hive2016是密码,可以从HiveServer2+Clients获得更多信息):

hadoop@VM-40-171-sles10-64:~/hive/bin>./beeline

Beelineversion1.2.1byApacheHive

beeline>!connectjdbc:hive2://172.25.40.171:10000hivehive2016org.apache.hive.jdbc.HiveDriver

Connectingtojdbc:hive2://172.25.40.171:10000

SLF4J:ClasspathcontainsmultipleSLF4Jbindings.

SLF4J:Foundbindingin[jar:file:/data/hadoop/hadoop-2.7.1/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J:Foundbindingin[jar:file:/data/hadoop/hive-1.2.1-bin/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J:Seehttp://www.slf4j.org/codes.html#multiple_bindingsforanexplanation.

SLF4J:Actualbindingisoftype[org.slf4j.impl.Log4jLoggerFactory]

Connectedto:Hive(version1.2.1)

Driver:Hive(version1.2.1)

Transactionisolation:TRANSACTION_REPEATABLE_READ

0:jdbc:hive2://172.25.40.171:10000>select*frominviteslimit2;

+------+----------+-------+

|foo|bar|ds|

+------+----------+-------+

|474|val_475|2014|

|281|val_282|2014|

+------+----------+-------+

2rowsselected(1.779seconds)

0:jdbc:hive2://172.25.40.171:10000>

7.远程执行HSQL

将hive/bin、hive/lib、hive/conf和hive/examples打包,如:tarczfhive-bin.tar.gzhive/binhive/libhive/confhive/examples。

然后将hive-bin.tar.gz上传到其它机器,借助beeline即可远程执行HSQL(用hive可能会遇到问题,本文在操作时,使用hive,在执行HSQL时总会卡住,日志也没有记录特别原因,暂未去定位)。

8.基本命令

以下内容来自官网(GettingStarted),注意命令不区分大小写:

CREATETABLEpokes(fooINT,barSTRING);

CREATETABLEinvites(fooINT,barSTRING)PARTITIONEDBY(dsSTRING);

SHOWTABLES;

SHOWTABLES'.*s';

DESCRIBEinvites;

DROPTABLEpokes;

Hive的安装目录下有个examples子目录,存储了示例用到的数据文件等。测试往表invites中加载数据,将文件../examples/files/kv2.txt加载到表invites中:

LOADDATALOCALINPATH'../examples/files/kv2.txt'OVERWRITEINTOTABLEinvitesPARTITION(ds='2014');

可以通过“select*frominvites;”来检验加载情况,或者执行“selectcount(1)frominvites;”。

9.单点方案

可通过部署两个hive来解决单点,元数据库采用MySQL,MySQL和hive部署在相同机器上,两个MySQL配置成主主同步。

hive为一主一热备的方式,最好保证同一时刻只有一个hive提供服务,虽然很多情况下,两个hive都提供服务也能正常工作。

10.和Spark集成

Spark集成Hive非常简单,只需以下几步:

1)在spark-env.sh中加入HIVE_HOME,如:exportHIVE_HOME=/data/hadoop/hive

2)将Hive的hive-site.xml和hive-log4j.properties两个文件复制到Spark的conf目录下。

完成后,再次执行spark-sql进入Spark的SQLCli,运行命令showtables即可看到在Hive中创建的表。

示例:

./spark-sql--masteryarn--driver-class-path/data/hadoop/hive/lib/mysql-connector-java-5.1.38-bin.jar

11.和Sqoop集成

以sqoop-1.4.6.bin__hadoop-2.0.4-alpha为例,支持增量导入,不但可以将数据导入到Hive中,还可以往HBase导数据,也可以将数据从DB导入到HDFS存储。总之,Sqoop功能十分强大,但这里仅简单介绍。

从Sqoop的官网(下载网址:http://www.apache.org/dyn/closer.lua/sqoop/1.4.6)下载sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz。

解压,然后进入Sqoop的conf目录,完成以下修改即可:

11.1.修改sqoop-env.sh

复制一份sqoop-env-template.sh,命名为sqoop-env.sh。在sqoop-env.sh中设置以下环境变量:

1)HADOOP_COMMON_HOME

值为Hadoop的安装目录,示例:exportHADOOP_COMMON_HOME=/data/hadoop

2)HADOOP_MAPRED_HOME

值为hadoop-common-*.tar文件所在目录,位于Hadoop安装目录之下。

示例:exportHADOOP_MAPRED_HOME=/data/hadoop/share/hadoop/common

3)HBASE_HOME

值为HBase的安装目录,示例:exportHBASE_HOME=/data/hbase

4)HIVE_HOME

值为Hive的安装目录,示例:exportHIVE_HOME=/data/hive

5)ZOOCFGDIR

值为Zookeeper的配置目录,示例:exportZOOCFGDIR=/data/zookeeper/conf

11.2.修改sqoop-site.xml

复制一份sqoop-site-template.xml,命名为sqoop-site.xml,可不做任何修改。

11.3.验证测试

1)列出MySQL数据库

./sqooplist-databases--connectjdbc:mysql://127.0.0.1:3306/--usernamezhangsan--passwordzhangsan2016

2)根据MySQL表创建Hive表

./sqoopcreate-hive-table--connectjdbc:mysql://127.0.0.1:3306/test--usernamezhangsan--passwordzhangsan2016--tablet_test--hive-tablet_test_2016

如果Hive表需要分区,可以通过参数--hive-partition-key和--hive-partition-value来指定。

如果需覆盖已存在的Hive表,加上参数“--hive-overwrite”即可。“--hive-partition-key”值为分区名,默认为string型,“–hive-partition-value”为分区的值。

3)将数据从MySQL导入到Hive

./sqoopimport--connectjdbc:mysql://127.0.0.1:3306/test--usernamezhangsan--password'zhangsan2016'--tablet_test--hive-import-m6--hive-tablet_test_2016--direct

建议带上参数“--direct”,表示使用快速模式,比如它会利用MySQL的工具mysqldump导出数据。

“-m”表示启用多少个map并行导入数据,默认是4个,最好不要将数字设置为高于集群的最大Map数。

“–table”用来指定要导入的DB表名,“--hive-import”表示从DB导入数据到Hive。还可以借助参数“--query”使用SQL有条件的从DB中导出。

如果需要指定字符集,使用参数“--default-character-set”,如:--default-character-setUTF-8。

12.常见错误

1)TIMESTAMPwithimplicitDEFAULTvalueisdeprecated

执行MySQL的“bin/mysqld--initialize--user=mysql”时报的错误。

原因是从MySQL5.6版本开始,timestamp的默认值已被标为deprecated,即如果类型为timestamp的字段,如果没有明确声明默认值为NULL,则默认为NOTNULL。如果设置timestamp字段为NULL,则自动存储当前的timestamp。

2)Can'tfinderror-messagefile'/usr/local/mysql/share/errmsg.sys'

执行MySQL的“bin/mysqld--initialize--user=mysql--explicit_defaults_for_timestamp”时报的错误。

这可能是因为之前有执行过,导致data目录不为空,通过“bin/mysqld--verbose--help|grepdatadir”可以查看到默认的数据目录为/var/lib/mysql/。需要保证/var/lib/mysql/目录为空。或者通过指定参数--datadir改变数据目录,如“bin/mysqld--initialize--user=mysql--explicit_defaults_for_timestamp--datadir=/data/mysql/data”。

3)Can'tfinderror-messagefile'/usr/local/mysql/share/errmsg.sys'

对于错误:

Can'tfinderror-messagefile'/usr/local/mysql/share/errmsg.sys'.Checkerror-messagefilelocationand'lc-messages-dir'configurationdirective.

从官网下载的MySQL默认安装目录为/usr/local/mysql,如果实际为其它目录,则建议通过参数--basedir指定,否则会遇到不少安装问题。通过执行“bin/mysqld--verbose--help|grepbasedir”即可看到“--basedir”的默认值为/usr/local/mysql/。

4)FailedtoconnecttotheMetaStoreServer

如果运行hiveserver2,遇到下列错误后,推荐打开DEBUG日志级别,以更查看更详细的信息,将日志配置文件hive-log4j.properties中的“hive.root.logger=WARN,DRFA”改成“hive.root.logger=DEBUG,WARN,DRFA”即可。

2014-04-2306:00:04,169WARNhive.metastore(HiveMetaStoreClient.java:open(291))-FailedtoconnecttotheMetaStoreServer...

2014-04-2306:00:05,173WARNhive.metastore(HiveMetaStoreClient.java:open(291))-FailedtoconnecttotheMetaStoreServer...

2014-04-2306:00:06,177WARNhive.metastore(HiveMetaStoreClient.java:open(291))-FailedtoconnecttotheMetaStoreServer...

2014-04-2306:00:07,181WARNhive.metastore(HiveMetaStoreClient.java:open(291))-FailedtoconnecttotheMetaStoreServer...

2014-04-2306:00:08,185WARNhive.metastore(HiveMetaStoreClient.java:open(291))-FailedtoconnecttotheMetaStoreServer...

2014-04-2306:00:09,194ERRORservice.CompositeService(CompositeService.java:start(74))-ErrorstartingservicesHiveServer2

org.apache.hive.service.ServiceException:UnabletoconnecttoMetaStore!

atorg.apache.hive.service.cli.CLIService.start(CLIService.java:85)

atorg.apache.hive.service.CompositeService.start(CompositeService.java:70)

atorg.apache.hive.service.server.HiveServer2.start(HiveServer2.java:73)

atorg.apache.hive.service.server.HiveServer2.main(HiveServer2.java:103)

atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)

atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

atjava.lang.reflect.Method.invoke(Method.java:483)

atorg.apache.hadoop.util.RunJar.main(RunJar.java:212)

修改后,再次运行hiveserver2,日志变详细了,猜测是metastore没有起来,可以通过执行“hive--servicemetastore”来启动metastore。

2014-04-2306:04:27,053INFOhive.metastore(HiveMetaStoreClient.java:open(244))-TryingtoconnecttometastorewithURIthrift://172.25.40.171:9083

2014-04-2306:04:27,085WARNhive.metastore(HiveMetaStoreClient.java:open(288))-FailedtoconnecttotheMetaStoreServer...

org.apache.thrift.transport.TTransportException:java.net.ConnectException:拒绝连接

atorg.apache.thrift.transport.TSocket.open(TSocket.java:185)

atorg.apache.hadoop.hive.metastore.HiveMetaStoreClient.open(HiveMetaStoreClient.java:283)

atorg.apache.hadoop.hive.metastore.HiveMetaStoreClient.(HiveMetaStoreClient.java:164)

atorg.apache.hadoop.hive.metastore.HiveMetaStoreClient.(HiveMetaStoreClient.java:104)

atorg.apache.hive.service.cli.CLIService.start(CLIService.java:82)

atorg.apache.hive.service.CompositeService.start(CompositeService.java:70)

atorg.apache.hive.service.server.HiveServer2.start(HiveServer2.java:73)

atorg.apache.hive.service.server.HiveServer2.main(HiveServer2.java:103)

atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)

atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

atjava.lang.reflect.Method.invoke(Method.java:483)

atorg.apache.hadoop.util.RunJar.main(RunJar.java:212)

5)Versioninformationnotfoundinmetastore

执行“./hive--servicemetastore”报下面这样的错误原因是未对metastore进行初始化,需要执行一次“schematool-dbTypemysql-initSchema”。

SLF4J:Actualbindingisoftype[org.slf4j.impl.Log4jLoggerFactory]

MetaException(message:Versioninformationnotfoundinmetastore.)

atorg.apache.hadoop.hive.metastore.ObjectStore.checkSchema(ObjectStore.java:5638)

atorg.apache.hadoop.hive.metastore.ObjectStore.verifySchema(ObjectStore.java:5622)

atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)

atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

atjava.lang.reflect.Method.invoke(Method.java:483)

atorg.apache.hadoop.hive.metastore.RetryingRawStore.invoke(RetryingRawStore.java:124)

atcom.sun.proxy.$Proxy2.verifySchema(UnknownSource)

atorg.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.getMS(HiveMetaStore.java:403)

atorg.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.createDefaultDB(HiveMetaStore.java:441)

atorg.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.init(HiveMetaStore.java:326)

atorg.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.(HiveMetaStore.java:286)

atorg.apache.hadoop.hive.metastore.RetryingHMSHandler.(RetryingHMSHandler.java:54)

atorg.apache.hadoop.hive.metastore.RetryingHMSHandler.getProxy(RetryingHMSHandler.java:59)

atorg.apache.hadoop.hive.metastore.HiveMetaStore.newHMSHandler(HiveMetaStore.java:4060)

atorg.apache.hadoop.hive.metastore.HiveMetaStore.startMetaStore(HiveMetaStore.java:4263)

atorg.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:4197)

atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)

atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

atjava.lang.reflect.Method.invoke(Method.java:483)

atorg.apache.hadoop.util.RunJar.main(RunJar.java:212)

6)java.net.URISyntaxException:RelativepathinabsoluteURI:${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

解决办法:将hive-site.xml中所有的system:java.io.tmpdir都换成绝对路径,hive-1.2.1共有4处。

7)EstablishingSSLconnectionwithoutserver'sidentityverificationisnotrecommended

问题现象:

WedFeb1710:39:37CST2016WARN:EstablishingSSLconnectionwithoutserver'sidentityverificationisnotrecommended.AccordingtoMySQL5.5.45+,5.6.26+and5.7.6+requirementsSSLconnectionmustbeestablishedbydefaultifexplicitoptionisn'tset.ForcompliancewithexistingapplicationsnotusingSSLtheverifyServerCertificatepropertyissetto'false'.YouneedeithertoexplicitlydisableSSLbysettinguseSSL=false,orsetuseSSL=trueandprovidetruststoreforservercertificateverification.

解决办法是hive-site.xml中的配置项javax.jdo.option.ConnectionURL值需要加上“useSSL=false”,如:

jdbc:mysql://127.0.0.1:3306/hive?characterEncoding=UTF-8;useSSL=false。

8)SPARK_CLASSPATHwasdetected

SPARK_CLASSPATHwasdetected(setto'/data/hadoop/hive/lib/mysql-connector-java-5.1.38-bin.jar:').

ThisisdeprecatedinSpark1.0+.

Pleaseinsteaduse:

-./spark-submitwith--driver-class-pathtoaugmentthedriverclasspath

-spark.executor.extraClassPathtoaugmenttheexecutorclasspath

意思是不推荐在spark-env.sh中设置环境变量SPARK_CLASSPATH,可以改成如下推荐的方式:

./spark-sql--masteryarn--driver-class-path/data/hadoop/hive/lib/mysql-connector-java-5.1.38-bin.jar

13.相关文档

《HBase-0.98.0分布式安装指南》

《Hive1.2.1安装指南》

《ZooKeeper-3.4.6分布式安装指南》

《Hadoop2.3.0源码反向工程》

《在Linux上编译Hadoop-2.7.1》

《Accumulo-1.5.1安装指南》

《Drill1.0.0安装指南》

《Shark0.9.1安装指南》

更多,敬请关注技术博客:http://aquester.cublog.cn。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1103192.htmlTechArticleHive 1.2.1Sqoop安装指南 Hive 1.2.1SparkSqoop安装指南.pdf 目录 目录1 1.前言1 2.约定2 3.服务端口2 4.安装MySQL 2 4.1.安装MySQL 2 4.2.创建Hive元数据库 4 5...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
超越炒作:评估当今PHP的角色超越炒作:评估当今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

PHP中的弱参考是什么?什么时候有用?PHP中的弱参考是什么?什么时候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

解释PHP中的__ Invoke Magic方法。解释PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。

解释PHP 8.1中的纤维以进行并发。解释PHP 8.1中的纤维以进行并发。Apr 12, 2025 am 12:05 AM

Fibers在PHP8.1中引入,提升了并发处理能力。1)Fibers是一种轻量级的并发模型,类似于协程。2)它们允许开发者手动控制任务的执行流,适合处理I/O密集型任务。3)使用Fibers可以编写更高效、响应性更强的代码。

PHP社区:资源,支持和发展PHP社区:资源,支持和发展Apr 12, 2025 am 12:04 AM

PHP社区提供了丰富的资源和支持,帮助开发者成长。1)资源包括官方文档、教程、博客和开源项目如Laravel和Symfony。2)支持可以通过StackOverflow、Reddit和Slack频道获得。3)开发动态可以通过关注RFC了解。4)融入社区可以通过积极参与、贡献代码和学习分享来实现。

PHP与Python:了解差异PHP与Python:了解差异Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

php:死亡还是简单地适应?php:死亡还是简单地适应?Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来:改编和创新PHP的未来:改编和创新Apr 11, 2025 am 12:01 AM

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具