参考文章
准备文件
apache-hive-2.3.4-bin.tar.gz
hadoop-2.9.2.tar.gz
自行官网下载
其他人共享的hadoop和hive在windows下的执行文件
wintuils_hadoop.dll.zip
hive在windows安装bin.zip
下载地址:
环境说明:jdk1.8安装目录最好不要在C盘默认目录 因为有空格 程序不识别
(配置时-如果路径中有“Program Files”,则将Program Files改为 PROGRA~1)
全部解压后
1、hadoop安装
1.1配置Java环境变量
新建变量名:JAVA_HOME
输入路径:D:\Softwares\jdk1.8 (这里是以我的jdk地址为例,请根据自己的jdk地址来设置)
在path中最前面加上:%JAVA_HOME%\bin;
1.2配置Hadoop环境变量
新建变量名:HADOOP_HOME
输入路径:E:\hadoop-2.9.2
在path中最前面加上:%HADOOP_HOME%\bin;
1.3将 wintuils_hadoop.dll.zip里的bin(有说明文档)覆盖替换到 hadoop-2.9.2.tar.gz 的bin下
1.4在hadoop-2.7.3\etc\hadoop找到hadoop-env.cmd
右键用一个文本编辑器打开
找到 set JAVA_HOME=%JAVA_HOME%
将%JAVA_HOME%改成C:\PROGRA~1\Java\jdk1.7.0_67 或 D:\Softwares\jdk1.8(在环境变量设置中JAVA_HOME的值)
(如果路径中有“Program Files”,则将Program Files改为 PROGRA~1 )
不改也行 不报 %JAVA_HOME% 的错误可以不该
1.5win+R 输入cmd打开命令提示符,然后输入hadoop version,按回车,如果出现 hadoop2.9.2.......等说成功
1.6hadoop核心配置文件(参考下方最新的)
在hadoop-2.9.2\etc\hadoop中找到以下几个文件
打开 hadoop-2.9.2/etc/hadoop/core-site.xml, 复制下面内容粘贴到最后并保存
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
打开 hadoop-2.9.2/etc/hadoop/mapred-site.xml, 复制下面内容粘贴到最后并保存
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
打开 hadoop-2.9.2/etc/hadoop/hdfs-site.xml, 复制下面内容粘贴到最后并保存, 请注意需要建立data 文件夹和两个子文件夹,本例子是建立在 HADOOP_HOME的目录里(注意每个人的hadoop的路径不一样,这里要做修改)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/E:/hadoop-2.7.3/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/E:/hadoop-2.7.3/data/datanode</value>
</property>
</configuration>
打开 hadoop-2.7.3/etc/hadoop/yarn-site.xml,复制下面内容粘贴到最后并保存
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
1.7
管理员身份打开命令提示符
输入hdfs namenode -format执行 不识别hdfs的话 cd到hadoop/sbin下执行
namenode文件里会自动生成一个current文件,则格式化成功
无报错说明成功
1、已知报错 %JAVA_HOME% 配置问题
如果路径中有“Program Files”,则将Program Files改为 PROGRA~1
1.8输入start-all.cmd,启动hadoop服务
会出现四个窗口 无报错就成功
已知报错:
1.9输入jps 查看运行的服务
jps不识别 就cd到java安装目录bin下 输入
出现DataNode、ResourceManager、nodeManager、jps的进程说明成功
2hiv安装
2.1将hive在windows安装bin.zip里的bin文件替换覆盖到 hive/bin下
然后参考下面文档即可安装成功 注意配置文件
参考:
hive需要初始化数据库 参考:
hive报错:Required table missing : "DBS`" in Catalog "" Schema "
参考:http://f.dataguru.cn/hadoop-629722-1-1.html
hive报错: "`VERSION`" in Catalog "" Schema "".
hive-site.xml中加上
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
hive报错:Column length too big for column 'PARAM_VALUE' (max = 21845); use BLOB or TEXT instead
原因是编码问题,重新把hive与mysql的关联的数据库编码改成latin1就行了(网上查到hive只支持latin1,没有测试过)
解决方法 数据库表执行
alter database hive character set latin1;
在进行初始化 成功后
在转回UTF-8
alter database hive default character set utf8;
Hadoop启动错误 :datanode.DataNode: Initialization failed for Block pool <registering>
删除namenode datanode 下等的所有文件 重新hdfs namenode -format 格式化
----------------------------大佬给调过的-----最新测试过的 配置文件------------------
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/D:/hadoop/data/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/D:/hadoop/data/dfs/datanode</value>
</property>
</configuration>core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.proxyuser.admin.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.admin.groups</name>
<value>*</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>800</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>800</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx650M</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx650M</value>
</property>
<property>
<name>mapreduce.map.speculative</name>
<value>false</value>
<description>If true, then multiple instances of some map tasks
may be executed in parallel.
</description>
</property><property>
<name>mapreduce.reduce.speculative</name>
<value>false</value>
<description>If true, then multiple instances of some reduce tasks
may be executed in parallel.
</description>
</property>
</configuration>yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>localhost:8088</value>
</property>
-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8000</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>8</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>300</value>
</property>
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>99.5</value>
</property>
</configuration>hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>datanucleus.autoStartMechanism</name>
<value>SchemaTable</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://127.0.0.1:9083</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
<property>
<name>hive.users.in.admin.role</name>
<value>admin</value>
</property>
<property>
<name>hadoop.bin.path</name>
<value>D:\hadoop\hadoop-2.9.2\bin\hadoop.cmd</value>
</property>
<!-- 解决 Required table missing : "DBS`" in Catalog "" Schema "错误-->
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
<description>Auto creates necessary schema on a startup if one doesn't exist. Set this to false, after creating it once.To enable auto create also set hive.metastore.schema.verification=false. Auto creation is not recommended for production use cases, run schematool command instead.</description>
</property>
<!--解决 "`VERSION`" in Catalog "" Schema "". 错误-->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
</configuration>
运行语句
start-all
hive --service metastore
hive --service hiveserver2
//连接语句
beeline -u jdbc:hive2://localhost:10000 -nadmin -padmin
备注:启动 hive --service hiveserver2时 最后报错
Exception in thread "org.apache.hadoop.hive.common.JvmPauseMonitor$Monitor@17229821" java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.elapsed(Ljava/util/concurrent/TimeUnit;)J
at org.apache.hadoop.hive.common.JvmPauseMonitor$Monitor.run(JvmPauseMonitor.java:185)
at java.lang.Thread.run(Thread.java:748)
可以忽略不影响使用