windows10 搭建最新的 hadoop 3.1.3 和 hbase 2.2.2 测试环境

一、环境准备

1、JDK

2、Hadoop安装包 

官网 :https://archive.apache.org/dist/hadoop/common/

https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.3/

https://www-eu.apache.org/dist/hadoop/common/hadoop-3.1.3/

3、hadooponwindows-master

下载地址 :https://github.com/cdarlint/winutils

https://github.com/steveloughran/winutils

选择3.1.3使用

如果不想配置和下载直接用我的文件覆盖

https://download.youkuaiyun.com/download/liutietuo/12113221

4、hbase安装包 

官网 :http://archive.apache.org/dist/hbase/

http://archive.apache.org/dist/hbase/2.2.2/

二 版本对应关系 

1 Hadoop与Hbase对应的版本

2 Hbase与Jdk对应的版本

三 开始安装

1 解压各个目录

2 设置环境变量

我的电脑 --> 属性 --> 高级系统设置 --> 高级 --> 环境变量,新建HADOOP_HOME,

然后将%HADOOP_HOME%\bin添加到Path中。

3 修改配置文件

如果不想配置和下载直接用我的文件覆盖

https://download.youkuaiyun.com/download/liutietuo/12113221

主要修改这些文件

原则上,只需要修改下面的文件地址即可.<加粗部分>. 同时如果没有文件夹,最好创建一个workplace

core-site.xml

<configuration>

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020/hbase</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/D:/soft/hadoop/hadoop-3.1.3/workplace/tmp</value>
    </property>
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>

</configuration>
 

hdfs-site.xml

<configuration>
 <!-- 这个参数设置为1,因为是单机版hadoop -->
  
     <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property> 
        <name>dfs.permissions.enabled</name> 
        <value>false</value> 
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/D:/soft/hadoop/hadoop-3.1.3/workplace/data/namenode</value>
    </property>
    <property>
        <name>fs.checkpoint.dir</name>
        <value>/D:/soft/hadoop/hadoop-3.1.3/workplace/data/snn</value>
    </property>
    <property>
        <name>fs.checkpoint.edits.dir</name>
        <value>/D:/soft/hadoop/hadoop-3.1.3/workplace/data/snn</value>
    </property>
        <property>
        <name>dfs.datanode.data.dir</name>
        <value>/D:/soft/hadoop/hadoop-3.1.3/workplace/data/datanode</value>
    </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.nodemanager.aux-services.mapreduce.shuffle.class</name>
       <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>

 

mapred-site.xml

<configuration>
 <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
    </property>
    <property>
       <name>mapred.job.tracker</name>
       <value>hdfs://localhost:9001</value>
    </property>
</configuration>

hadoop-env.cmd

修改

@rem set JAVA_HOME=%JAVA_HOME%

set JAVA_HOME=D:\PROGRA~1\Java\jdk1.8.0_201

注意:这里PROGRA~1 有的电脑可能是PROGRA~2 .具体了解dos的8.3命名规则

4 使用winutils-master 覆盖

下载的文件包没有3.1.3 .我们使用3.1.2. 差一个版本问题不大,如果能找到匹配的最好了.

复制这些文件到

覆盖替换原文件即可

5 启动格式化HDFS

首先,hadoop version,查看是否能正常运行

执行 hdfs namenode -format

6 尝试运行hadoop

进入sbin目录 不是bin

运行 start-all

启动后没保存 表示正常

7 测试hadoop启动是否正常

进入hdfs管理页面

 http://localhost:9870/

进入资源调度管理(yarn)

访问地址 :http://localhost:8088/

hadoop启动完成 我们配置hbase

四 配置hbase

1 修改配置文件

 hbase-site.xml

<configuration>

    <property>  
        <name>hbase.rootdir</name>  
        <value>hdfs://localhost:8020/hbase</value>  
    </property>  
    <property>  
        <name>hbase.tmp.dir</name>  
        <value>D:/soft/hadoop/hbase-2.2.2/workplace/tem</value>  
    </property>  
    <property>  
        <name>hbase.zookeeper.quorum</name>  
        <value>127.0.0.1</value>  
    </property>  
    <property>  
        <name>hbase.zookeeper.property.dataDir</name>  
        <value>D:/soft/hadoop/hbase-2.2.2/workplace/zoo</value>  
    </property>  
    <property>  
        <name>hbase.cluster.distributed</name>  
        <value>false</value>  
    </property>  
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
</configuration>

 hbase-env.cmd

最后添加三行

set HBASE_MANAGES_ZK=false
set JAVA_HOME=D:\PROGRA~2\Java\jdk1.8.0_201
set HBASE_CLASSPATH=D:\soft\hadoop\hbase-2.2.2\conf

2 尝试启动

start-hbase

启动无报错

3 测试网址

http://localhost:16010/master-status

就此 配置完成

如有报错, 观察端口会不会被别的占用了. 比如iis,自己的服务等

<think>好的,我现在需要解决HadoopHBase之间的JAR包冲突问题。首先,我应该回忆一下用户提供的引用内容,看看有哪些解决方案已经被提及。根据引用[2],问题可能出在slf4j-log4j12这个JAR包的不同版本上。HBase 2.2.2Hadoop 3.1.3可能各自使用了不同版本的该JAR包,导致冲突。解决方案是找到HBase中的这个JAR包,重命名或删除它。 接下来,引用[4]提到错误信息显示无效变量名找不到主类,这可能是HadoopHBase的包冲突导致的。解决方案可能涉及检查环境变量或类路径设置。此外,引用[5]提到Maven中的JAR包冲突,可以通过排除依赖或使用依赖管理来解决。不过用户这里的环境是HadoopHBase,可能不涉及Maven,但类似思路可以借鉴,比如排除冲突的JAR包。 用户之前的尝试包括复制HBase的JAR到Hadoop的lib目录,但没用。这说明可能需要更直接的处理冲突的JAR包,而不是简单地移动文件。根据引用[2]的具体路径,需要定位到HBase下的client-facing-thirdparty目录中的slf4j-log4j12-1.7.25.jar,重命名或删除它。同时,引用[3]提到重装HBase可能解决某些冲突,但可能比较麻烦,作为最后的手段。 另外,需要检查HadoopHBase版本兼容性,确保它们相互支持。比如HBase 2.x是否兼容Hadoop 3.x。如果版本不匹配,可能需要升级或降级其中一个组件。此外,查看启动日志中的具体错误信息,确定冲突的具体JAR包,然后处理对应的文件。 总结可能的步骤:1. 定位冲突的JAR包;2. 删除或重命名HBase中的冲突JAR;3. 检查环境变量类路径;4. 确认版本兼容性;5. 考虑使用类隔离机制,如Hadoop的classpath隔离设置。同时,参考引用[2]的具体操作,处理slf4j-log4j12包。</think>### HadoopHBase的JAR包冲突解决方案 #### **1. 定位冲突的JAR包** 首先需要确定具体冲突的JAR文件。常见的冲突来源包括日志框架(如`slf4j-log4j12`)或工具类库(如`guava`)。通过以下步骤定位: - **查看错误日志**:启动HBase时,若报错包含类似`ClassNotFoundException`或`NoSuchMethodError`,通常指向具体的冲突类,例如: ``` java.lang.NoSuchMethodError: org.slf4j.Logger.debug(Ljava/lang/String;Ljava/lang/Object;)V ``` 此类错误可能由`slf4j`版本不一致导致[^2][^5]。 - **对比HadoopHBase的依赖**:检查两者的`lib`目录下同名但版本不同的JAR,例如: - Hadoop 3.1.3可能包含`slf4j-log4j12-1.7.25.jar` - HBase 2.2.2也可能包含同名但不同版本的JAR。 --- #### **2. 删除或重命名冲突JAR** 针对已确认的冲突文件,例如`slf4j-log4j12`: - **操作步骤**: 1. 进入HBase的依赖目录: ```bash cd $HBASE_HOME/lib/client-facing-thirdparty/ ``` 2. 重命名或删除冲突JAR: ```bash mv slf4j-log4j12-1.7.25.jar slf4j-log4j12-1.7.25.jar.bak # 重命名 # 或直接删除 rm slf4j-log4j12-1.7.25.jar ``` 此操作可强制HBase使用Hadoop提供的版本[^5]。 --- #### **3. 调整类加载路径** 通过修改HBase启动配置,优先加载Hadoop的JAR: - **修改`hbase-env.sh`**: ```bash export HBASE_CLASSPATH=/path/to/hadoop/share/hadoop/common/*:/path/to/hadoop/share/hadoop/hdfs/* ``` 确保HBase优先使用Hadoop的依赖[^4]。 --- #### **4. 检查版本兼容性** HBaseHadoop版本需严格匹配。例如: - HBase 2.2.x 官方兼容Hadoop 3.1.x - 若版本不匹配(如HBase 1.x + Hadoop 3.x),需升级或降级组件。 --- #### **5. 使用类隔离机制** 在Hadoop中启用类加载隔离: - **修改`hadoop-env.sh`**: ```bash export HADOOP_USER_CLASSPATH_FIRST=true export HADOOP_CLASSPATH=/path/to/hbase/lib/* ``` 此配置可避免HadoopHBase的类路径混用。 --- #### **6. 重装或替换依赖(终极方案)** 若冲突难以解决: - **重装HBase**:参考引用[3],重新安装HBase并确保其依赖与Hadoop兼容。 - **统一依赖版本**:手动替换冲突JAR为同一版本(如统一使用Hadoop的`slf4j-log4j12`)。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值