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)

  可以忽略不影響使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章