0
点赞
收藏
分享

微信扫一扫

伪分布式Hadoop和Hive的安装及配置

三维控件研究 2022-01-05 阅读 209

伪分布式Hadoop和Hive的安装及配置


  • 安装JDK
yum list | grep jdk #查看yum源

yum -y install java-1.8.0-openjdk* #安装jdk

java -version #验证是否成功安装,安装路径一般在/usr/lib/jvm



  • 安装Hadoop

下载地址:https://archive.apache.org/dist/hadoop/core/

tar -zxvf  hadoop-2.9.2.tar.gz #解压

mv /usr/local/hadoop-2.9.2 /usr/local/hadoop #重命名



  • 配置JDK和Hadoop的环境变量
vim /etc/profile

# Add JDK 
export JAVA_HOME=/usr/lib/jvm/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

#Add Hadoop
export HADOOP_HOME=.../hadoop #路径为hadoop的解压路径
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

并使环境变量生效source /etc/profile





  • 配置Hadoop

在…/hadoop目录下新建文件夹tmpmkdir tmp,然后进入配置文件目录 cd .../hadoop/ect/hadoop,复制文件cp mapred-site.xml.template mapred-site.xml,然后进行以下修改

#修改Hadoop启动所需的jdk环境目录
vim hadoop-env.sh
#修改内容为
export JAVA_HOME=/usr/lib/jvm/java


vim core-site.xml 
#修改内容如下
<configuration>
  <property>
    <!--用来指定hdfs的主节点,namenode的地址-->
    <name>fs.defaultFS</name> 
    <value>hdfs://VM-20-12-centos:9005</value>
   </property>
   <property>
     <!--用来指定hadoop运行时产生文件的存放目录-->
   <!--如果不配置,默认放在/tmp目录下,这是一个临时目录,数据>可能会被系统清除-->
     <name>hadoop.tmp.dir</name>
      <value>/..../hadoop/tmp</value>
  </property>
</configuration>

vim hdfs-site.xml 
#修改内容如下
<configuration>
   <property>
              <name>dfs.replication</name>
              <value>1</value>
  </property>
  <property>
          <name>dfs.client.use.datanode.hostname</name>
          <value>true</value>
  </property>
  <property>
          <name>dfs.datanode.use.datanode.hostname</name>
          <value>true</value>
  </property>
  <property>
      <name>dfs.permissions</name>
      <value>false</value>
  </property>
</configuration>


vim mapred-site.xml 
#修改内容如下
<configuration>
      <property>  
             <!--指定mapreduce运行在yarn上-->
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
      </property>
</configuration>

vim yarn-site.xml 
#修改内容如下
<configuration>
         <property>
             <!--指定yarn的resourcemanager的地址-->
             <name>yarn.resourcemanager.hostname</name>
             <value>VM-20-12-centos</value>
         </property>
         <property>
             <!--NodeManager获取数据的方式-->
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
         </property>
</configuration>


vim slaves 
#配置主从节点,因为是伪分布式,只需要配置当前主机名
VM-20-12-centos




  • 格式化namenode存储路径
hadoop namenode -format



  • 启动Hadoop
start-all.sh #启动

jps #查看节点,正常除了jps有5个

stop-all.sh #关闭



  • 安装Hive

下载地址:https://archive.apache.org/dist/hive/

tar -zxvf apache-hive-2.3.7-bin.tar.gz  #解压

mv apache-hive-2.1.1-bin hive #修改名称



  • 配置环境变量
vim /etc/profile

export HIVE_HOME=.../hive #路径为hive的解压路径

export PATH=$PATH:$HIVE_HOME/bin

source /etc.profile #使环境变量生效

hive --version #检查是否安装成功



  • 配置hive
cd .../hive/conf

cp hive-default.xml.template hive-site.xml

vim hive-site.xml 

    <!-- Add -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name> #账号
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name> #密码
        <value>******</value>
    </property>
   <property>
        <name>javax.jdo.option.ConnectionURL</name>      #IP
        <value>jdbc:mysql://localhost:3306/hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name> #驱动名称,由com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>





  • 删除原有配置
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述




  • 下载并复制mysql的驱动程序到hive/lib下面

下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/

cp -p mysql-connector-java-8.0.27.jar .../hive/lib



  • Hive初始化并执行
schematool -dbType mysql -initSchema 初始化

hive #启动hadoop后执行



  • 在过程中可能遇到的问题

问题1:hadoop依赖的jar包和hive依赖的jar包冲突

问题描述:SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/app/Hive/hive/lib/log4j-slf4j-impl-2.6.2.jar!

/org/slf4j/impl/StaticLoggerBinder.class]

/app/Hive/hive/lib/log4j-slf4j-impl-2.6.2.jar

SLF4J: Found binding in [jar:file:/app/hadoop/hadoop/share/hadoop/common/lib/slf

4j-log4j12-1.7.25.jar!

/org/slf4j/impl/StaticLoggerBinder.class]

/app/hadoop/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar

解决方法:删除其中一个jar包



问题2:Metastore元数据库初始化失败

问题描述:java.io.IOException: Schema script failed, errorcode 2

解决方法:1、查看hive-site.xml原有旧配置是否已更新或已删除
2、查看Hadoop配置目录下是否也存在hive-site.xml,若有则进行替换



问题3:路径有误

问题描述:java.net.URISyntaxException: Relative path in absolute URI: KaTeX parse error: Expected '}', got 'EOF' at end of input: …a.io.tmpdir%7D/%7Bsystem:user.name%7D

解决方法:

编辑配置hive文件hive-site.xml#如下命令将"${system:Java.io.tmpdir}“字段全部替换成”/hive/tmp"

sed -i 's#${system:Java.io.tmpdir}#/hive/tmp#g' hive-site.xml


问题4:配置文件中驱动名称有误

解决方法:根据jdbc 版本进行相应的修改



举报

相关推荐

0 条评论