Hadoop2.9.2+hive2.3.4 windows下安装及报错解决

参考文章

https://blog.csdn.net/csdn_fzs/article/details/78985586

http://www.cnblogs.com/yifengjianbai/p/8260064.html

准备文件

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

下载地址:https://download.csdn.net/download/a1041646584/11011656

环境说明: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下

然后参考下面文档即可安装成功 注意配置文件

 参考:http://www.cnblogs.com/yifengjianbai/p/8260064.html  

hive需要初始化数据库 参考:https://blog.csdn.net/tornadojava/article/details/56835459

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)

  可以忽略不影响使用

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值