参考文章



准备文件

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)

  可以忽略不影响使用