当前位置:   article > 正文

大数据三大组件(spark,hadoop,hive)的安装之hive之伪分布式_sudo chown -r dblab:dblab hive

sudo chown -r dblab:dblab hive

相关文件材料

链接:https://pan.baidu.com/s/17240ITPR14vcRku6_P0kug?pwd=me15 
提取码:me15

1、用下面命令解压文件并赋予权限

sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local/
sudo mv apache-hive-3.1.2-bin hive       # 将文件夹名改为hive
sudo chown -R dblab:dblab hive            # 修改文件权限

2、用下面这个命令配置hive-default.xml文件,可以顺便设置远程连接

cd /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml

3、在hive-default.xml配置如下内容

  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- JDBC配置 -->
  5. <property>
  6. <name>javax.jdo.option.ConnectionURL</name>
  7. <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;userSSL=false</value>
  8. <description>JDBC连接字符串,用于连接JDBC元存储</description>
  9. </property>
  10. <property>
  11. <name>javax.jdo.option.ConnectionDriverName</name>
  12. <value>com.mysql.jdbc.Driver</value>
  13. <description>JDBC元存储的驱动类名</description>
  14. </property>
  15. <property>
  16. <name>javax.jdo.option.ConnectionUserName</name>
  17. <value>hive</value>
  18. <description>用于连接元存储数据库的用户名</description>
  19. </property>
  20. <property>
  21. <name>javax.jdo.option.ConnectionPassword</name>
  22. <value>hive</value>
  23. <description>用于连接元存储数据库的密码</description>
  24. </property>
  25. <property>
  26. <name>hive.metastore.warehouse.dir</name>
  27. <value>/usr/local/hadoop/tmp/dfs/data</value>
  28. <description>Hive元数据仓库目录</description>
  29. </property>
  30. <!-- Hive元数据配置 -->
  31. <property>
  32. <name>hive.metastore.schema.verification</name>
  33. <value>false</value>
  34. <description>是否验证Hive元数据模式</description>
  35. </property>
  36. <property>
  37. <name>hive.metastore.event.db.notification.api.auth</name>
  38. <value>false</value>
  39. <description>是否启用Hive元数据事件通知API身份验证</description>
  40. </property>
  41. <property>
  42. <name>hive.cli.print.header</name>
  43. <value>true</value>
  44. <description>是否在CLI中打印表头</description>
  45. </property>
  46. <property>
  47. <name>hive.cli.print.current.db</name>
  48. <value>true</value>
  49. <description>是否在CLI中打印当前数据库</description>
  50. </property>
  51. <property>
  52. <name>datanucleus.schema.autoCreateAll</name>
  53. <value>true</value>
  54. <description>是否自动创建所有DataNucleus模式</description>
  55. </property>
  56. <property>
  57. <name>hive.metastore.uris</name>
  58. <value>thrift://localhost:9083</value>
  59. <description>Hive元数据服务URI</description>
  60. </property>
  61. <!-- Hive执行引擎配置 -->
  62. <property>
  63. <name>hive.execution.engine</name>
  64. <value>mr</value>
  65. <description>Hive执行引擎</description>
  66. </property>
  67. <!-- 连接超时时间配置 -->
  68. <property>
  69. <name>hive.spark.client.connect.timeout</name>
  70. <value>300000ms</value>
  71. <description>Hive Spark客户端连接超时时间</description>
  72. </property>
  73. <property>
  74. <name>hive.spark.client.server.connect.timeout</name>
  75. <value>300000ms</value>
  76. <description>Hive Spark客户端与服务器连接超时时间</description>
  77. </property>
  78. <!-- HiveServer2配置 -->
  79. <property>
  80. <name>hive.server2.thrift.port</name>
  81. <value>10000</value>
  82. <description>HiveServer2的Thrift端口号</description>
  83. </property>
  84. <property>
  85. <name>hive.server2.thrift.http.port</name>
  86. <value>10001</value>
  87. <description>HiveServer2的Thrift HTTP端口号</description>
  88. </property>
  89. <property>
  90. <name>metastore.catalog.default</name>
  91. <value>hive</value>
  92. <description>默认的元存储目录</description>
  93. </property>
  94. <property>
  95. <name>hive.server2.thrift.bind.host</name>
  96. <value>0.0.0.0</value>
  97. <description>HiveServer2的Thrift绑定主机</description>
  98. </property>
  99. <property>
  100. <name>hive.server2.thrift.client.user</name>
  101. <value>hadoop</value>
  102. <description>用于Thrift客户端的用户名</description>
  103. </property>
  104. <property>
  105. <name>hive.server2.thrift.client.password</name>
  106. <value>123456</value>
  107. <description>用于Thrift客户端的密码</description>
  108. </property>
  109. <!-- 其他配置 -->
  110. <property>
  111. <name>hive.support.concurrency</name>
  112. <value>true</value>
  113. <description>是否支持并发</description>
  114. </property>
  115. <property>
  116. <name>hive.enforce.bucketing</name>
  117. <value>true</value>
  118. <description>是否强制执行分桶</description>
  119. </property>
  120. <property>
  121. <name>hive.exec.dynamic.partition.mode</name>
  122. <value>nonstrict</value>
  123. <description>Hive动态分区模式</description>
  124. </property>
  125. <property>
  126. <name>hive.txn.manager</name>
  127. <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
  128. <description>Hive事务管理器</description>
  129. </property>
  130. <property>
  131. <name>hive.compactor.initiator.on</name>
  132. <value>true</value>
  133. <description>是否启用Hive压缩器初始化</description>
  134. </property>
  135. <property>
  136. <name>hive.compactor.worker.threads</name>
  137. <value>1</value>
  138. <description>Hive压缩器工作线程数</description>
  139. </property>
  140. <property>
  141. <name>hive.metastore.disallow.incompatible.col.type.changes</name>
  142. <value>false</value>
  143. <description>是否禁止不兼容列类型更改</description>
  144. </property>
  145. </configuration>

4、安装mysql作为元数据存储库

sudo apt-get update  #更新软件源
sudo apt-get install mysql-server  #安装mysql

5、把这个mysql的jar包解压到目录下

tar -zxvf mysql-connector-java-5.1.40.tar.gz   #解压
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar  /usr/local/hive/lib #将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

6、登录mysql,创建hive数据库并赋予权限

create database hive;

grant all on *.* to hive@localhost identified by 'hive';#将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码

flush privileges; #刷新mysql系统权限关系表

7、启动hive

cd /usr/local/hadoop #进入Hadoop安装目录
./sbin/start-dfs.sh
cd /usr/local/hive
./bin/hive

8、可能出现的错误及解决方法

启动Hive过程中,可能出现的错误和解决方案如下:

【错误1】
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
【原因】
com.google.common.base.Preconditions.checkArgument 这是因为hive内依赖的guava.jar和hadoop内的版本不一致造成的。
【解决方法】
1.查看hadoop安装目录下share/hadoop/common/lib内guava.jar版本
2.查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决!

【错误2】org.datanucleus.store.rdbms.exceptions.MissingTableException: Required table missing : “VERSION” in Catalog “” Schema “”. DataNucleus requires this table to perform its persistence operations.

【解决方案】
进入hive安装目录(比如/usr/local/hive),执行如下命令:./bin/schematool -dbType mysql -initSchema

9、到hive的bin的目录下执行下面命令
hive --service metastore
hive --service hiveserver2 #需要出现四个id

netstat -ntulp |grep 10000#查看hive是不是

在beeline下连接,如果可以就可以用其他工具连接了。账户密码都可以默认空
!connect jdbc:hive2://localhost:10000

可以了,

下一篇spark

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号