您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > hiveContext不能使用的问题解决
关于spark中hiveContext不能使用的问题(hive远程连接MySQL)这两天一直在配置spark中的hive。主要碰到的问题有:1:hive安装不能启动2:hive安装能够启动,但是spark-sql不能启动3:hive安装能够启动,但是hiveContext不能使用针对这几个问题,我来总结一下我的解决方法:我的环境:Master:10.2.2.132sparker001sparkerSlave1:10.2.2.133sparker002sparkerSlave2:10.2.2.134sparker003sparker①:需要安装MySQL,对于MySQL的安装,有一点需要提醒,就是需要使用root权限,就是在root用户下安装。我们在10.2.2.132机器上安装。②:下载安装hive,我的hive-site.xml的配置如下:?xml-stylesheettype=text/xslhref=configuration.xsl?configurationpropertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://10.2.2.132:3306/hive?createDatabaseIfNotExist=true/valuedescriptionJDBCconnectstringforaJDBCmetastore/description/propertypropertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/valuedescriptionDriverclassnameforaJDBCmetastore/description/propertypropertynamejavax.jdo.option.ConnectionUserName/namevalueroot/valuedescriptionusernametouseagainstmetastoredatabase/description/propertypropertynamejavax.jdo.option.ConnectionPassword/namevalueroot123/valuedescriptionpasswordtouseagainstmetastoredatabase/description/property/configuration这里我们用的MySQL作为我们的数据库。而hive中有两种MySQL的连接方式:本地和远程。对于hiveContext需要使用的是远程。③:hive-env.sh的配置exportHIVE_AUX_JARS_PATH=/home/sparker/hive/libexportHADOOP_HOME=/home/sparker/hadoop-2.5.2exportHIVE_CONF_DIR=/home/sparker/hive/conf④:拷贝my-sqlconnector到hive/lib下mysql-connector-java-5.1.26-bin.jar⑤:拷贝一份hive-site.xml到Hadoop的conf目录下,然后将其中的内容修改如下:?xml-stylesheettype=text/xslhref=configuration.xsl?configurationpropertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://10.2.2.132:3306/saledata?createDatabaseIfNotExist=true/valuedescriptionJDBCconnectstringforaJDBCmetastore/description/propertypropertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/valuedescriptionDriverclassnameforaJDBCmetastore/description/propertypropertynamejavax.jdo.option.ConnectionUserName/namevalueroot/valuedescriptionusernametouseagainstmetastoredatabase/description/propertypropertynamejavax.jdo.option.ConnectionPassword/namevalueroot123/valuedescriptionpasswordtouseagainstmetastoredatabase/description/propertypropertynamehive.metastore.uris/namevaluethrift://10.2.2.132:9083/value/property/configuration通过这里,我们使用10.2.2.132作为服务器,所以,我们只有在132的机器上设置该文件。其他的机器上只需要在hive/conf/hive-site.xml上设置相关内容即可。⑥:启动metadata服务器端这里会卡住。等待其他的客户端连接。⑦:启动客户端:。。。这里可能会有权限不足的问题,因为我们使用的是非root用户。所以我们需要在MySQL中给用户赋予权限:Eg:Causedby:java.sql.SQLException:Accessdeniedforuser'root'@'sparker002'(usingpassword:YES)grantallprivilegeson*.*tosparker@'sparker002'identifiedbysparkerwithgrantoption;flushprivileges;sparker@'sparker002':这个是用户名和机器名称sparker:后面的是密码问题:Causedby:org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException:Thespecifieddatastoredriver(com.mysql.jdbc.Driver)wasnotfoundintheCLASSPATH.PleasecheckyourCLASSPATHspecification,andthenameofthedriver.atorg.datanucleus.store.rdbms.connectionpool.AbstractConnectionPoolFactory.loadDriver(AbstractConnectionPoolFactory.java:58)atorg.datanucleus.store.rdbms.connectionpool.DBCPBuiltinConnectionPoolFactory.createConnectionPool(DBCPBuiltinConnectionPoolFactory.java:49)atorg.datanucleus.store.rdbms.ConnectionFactoryImpl.generateDataSources(ConnectionFactoryImpl.java:238)...110more需要在spark/conf下的spark-env.sh中添加包,如下:ExportSPARK_CLASSPATH=$SPARK_CLASSPATH:/home/sparker/hive/lib/mysql-connector-java-5.1.26-bin.jar最后终于成功了。。。李晓燕574605698@qq.com
本文标题:hiveContext不能使用的问题解决
链接地址:https://www.777doc.com/doc-2876362 .html