Windows平台Hadoop、Hive环境搭建
Hadoop搭建
安装配置
-
开源镜像仓库下载:
- http://mirrors.tools.huawei.com/apache/hadoop/common/
- 目前实际使用的版本:hadoop-2.9.2,下面配置是2.10.0
- 解压可能有链接报错,忽略掉即可
-
hadoop-xxx/etc/hadoop/core-site.xml
1<configuration> 2<property> 3<name>fs.defaultFS</name> 4<value>hdfs://localhost:9000</value> 5</property> 6<property> 7<name>hadoop.tmp.dir</name> 8<value>file:/D:/hadoop-2.10.0/tmp</value> 9</property> 10</configuration> -
hadoop-xxx/etc/hadoop/mapred-site.xml
- 文章的配置有问题,提交hadoop任务会卡住,如下配置没有问题
1<configuration> 2<property> 3<name>mapreduce.job.tracker</name> 4<value>hdfs://localhost:8001</value> 5<final>true</final> 6</property> 7</configuration> -
hadoop-xxx/etc/hadoop/hdfs-site.xml
1<configuration> 2<property> 3<name>dfs.replication</name> 4<value>1</value> 5</property> 6<property> 7<name>dfs.namenode.name.dir</name> 8<value>/d:/doc/localBigDataEnv/jar/hadoop-2.9.2/data/namenode</value> 9</property> 10<property> 11<name>dfs.datanode.data.dir</name> 12<value>/d:/doc/localBigDataEnv/jar/hadoop-2.9.2/data/datanode</value> 13</property> 14</configuration> -
hadoop-xxx/etc/hadoop/yarn-site.xml
- 与上面网页上的不同
1<configuration> 2<!-- Site specific YARN configuration properties --> 3<property> 4<name>yarn.resourcemanager.hostname</name> 5<value>0.0.0.0</value> 6</property> 7<property> 8<name>yarn.nodemanager.local-dirs</name> 9<value>D:\hadoop_data\tmp-nm</value> 10</property> 11<property> 12<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name> 13<value>98.5</value> 14</property> 15</configuration>
§ 启动
-
添加
HADOOP_HOME环境变量,HADOOP_HOME为D:\doc\localBigDataEnv\jar\hadoop-2.9.2,path添加%HADOOP_HOME%\bin -
在
bin目录下输入-
hadoop namenode -format- 首次运行需要格式化,之后直接启动hadoop就可
-
-
在
sbin目录下输入start-all,以管理员方式运行-
会启动4个窗口,其中3个启动成功就可以了,报错的一个可以忽略
-
服务启动起来窗口不要关闭
-
报错
-
缺少 winutils.exe
- windows上缺少包:https://github.com/steveloughran/winutils/
-
namenode启动失败,缺少 hadoop.dll
-
-
-
jps查看相应的进程
-
http://localhost:50070/dfshealth.html#tab-overview
-
可以查看存放hd
-
§ 命令
-
创建文件夹
- hadoop fs -mkdir /input
-
put数据
- hadoop fs -put xxx /input
-
测试word count 例子
-
hadoop jar D:\hadoop-2.10.0\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.10.0.jar wordcount /input /output
执行结果写入到hdfs output文件夹下
-
-
windows文件夹权限
-
Hive搭建
§ 安装配置
-
hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 sql 查询功能,可以将 sql 语句转换为 MapReduce 任务进行运行。
-
下载:
- http://mirrors.tools.huawei.com/apache/hive/
- 我之前使用的版本apache-hive-2.3.6有问题,现在使用 apache-hive-3.1.2-bin
-
-
添加HADOOP_HOME 和 HIVE_HOME
-
-
apache-hive-2.3.6\conf\hive-site.xml
-
注意这里配置了mysql的驱动,需要安装mysql,我之前已经装过了
-
建立表hive
![]()
-
配置用户名密码
-
将mysql连接驱动拷贝到D:\apache-hive-2.3.6-bin\lib下,注意mysql的版本
- mysql -V 查看mysql的版本
-
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 3<configuration> 4<property> 5<name>hive.metastore.warehouse.dir</name> 6<value>/user/hive/warehouse</value> 7<description>hive的数据存储目录,指定的位置在hdfs上的目录</description> 8</property> 9<property> 10<name>hive.exec.scratchdir</name> 11<value>c:/temp</value> 12<description>hive的临时数据目录,指定的位置在hdfs上的目录</description> 13</property> 14<property> 15<name>hive.exec.local.scratchdir</name> 16<value>D:/hivedata/iotmp</value> 17<description></description> 18</property> 19<property> 20<name>hive.downloaded.resources.dir</name> 21<value>D:/hivedata/iotmp</value> 22<description></description> 23</property> 24<property> 25<name>hive.querylog.location</name> 26<value>D:/hivedata/iotmp</value> 27<description></description> 28</property> 29<property> 30<name>hive.server2.logging.operation.log.location</name> 31<value>D:/hivedata/logs</value> 32<description></description> 33</property> 34<!--mysql--> 35<property> 36<name>javax.jdo.option.ConnectionURL</name> 37<value>jdbc:mysql://localhost:3306/hive?serverTimezone=GMT</value> 38</property> 39<property> 40<name>javax.jdo.option.ConnectionDriverName</name> 41<value>com.mysql.jdbc.Driver</value> 42</property> 43<property> 44<name>javax.jdo.option.ConnectionUserName</name> 45<value>root</value> 46</property> 47<property> 48<name>javax.jdo.option.ConnectionPassword</name> 49<value>root</value> 50</property> 51<property> 52<name>datanucleus.autoCreateSchema</name> 53<value>true</value> 54</property> 55<property> 56<name>datanucleus.autoCreateTables</name> 57<value>true</value> 58</property> 59<property> 60<name>datanucleus.autoCreateColumns</name> 61<value>true</value> 62</property> 63<property> 64<name>hive.metastore.schema.verification</name> 65<value>false</value> 66<description/> 67</property> 68</configuration> -
§ 启动
-
hdfs上创建hive数据仓库地址:
- hdfs dfs -mkdir -p /user/hive/warehouse
- hdfs dfs -mkdir -p /tmp/hive
- hdfs dfs -chmod -R 777 /
-
初始化元数据
- hive --service schematool -initSchema -dbType mysql --verbose
- 注意mysql中要创建hive配置中对应的数据库,比如上面是hive
- hive 2.3.6版本是没有windows上的启动脚本的,这里进行下载
- hive --service schematool -initSchema -dbType mysql --verbose
-
方式一:hive.cmd运行 (以管理员方式运行)
- 方式二:hive 安装路径:D:\doc\localBigDataEnv\jar\apache-hive-3.1.2-bin,红色部分配置到环境变量path中,图下图运行即可
![]()
-
-
创建数据库
-
create database biwarehouse;
-
会在hdfs上创建对应的存储目录,以
.db结尾 -
创建表会在
biwarehouse.db下创建同名的目录
-
-
-
§ 问题
-
1、如果你的
hive表里使用了map数据结构,hive执行select操作是可能报错:java.lang.IncompatibleClassChangeError: Class com.google.common.collect.ImmutableSortedMap does not implement the requested interface java.util.NavigableMap-
原因:
hadoop里面使用的guava版本太低,保持hive和hadoop的guava版本一致
-
解决方法
-
停止
hadoop和hive, 把hive中的guava包 拷贝到hadoop的share\hadoop\common\lib的目录下,即可正常运行
-
-
-



浙公网安备 33010602011771号