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

伪分布式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 
#修改内容如下

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

vim hdfs-site.xml 
#修改内容如下

   
              dfs.replication</name>
              1</value>
  </property>
  
          dfs.client.use.datanode.hostname</name>
          true</value>
  </property>
  
          dfs.datanode.use.datanode.hostname</name>
          true</value>
  </property>
  
      dfs.permissions</name>
      false</value>
  </property>
</configuration>


vim mapred-site.xml 
#修改内容如下

        
             <!--指定mapreduce运行在yarn上-->
             mapreduce.framework.name</name>
             yarn</value>
      </property>
</configuration>

vim yarn-site.xml 
#修改内容如下

         
             <!--指定yarn的resourcemanager的地址-->
             yarn.resourcemanager.hostname</name>
             VM-20-12-centos</value>
         </property>
         
             <!--NodeManager获取数据的方式-->
             yarn.nodemanager.aux-services</name>
             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 -->
    
        javax.jdo.option.ConnectionUserName</name> #账号
        root</value>
    </property>
    
        javax.jdo.option.ConnectionPassword</name> #密码
        ******</value>
    </property>
   
        javax.jdo.option.ConnectionURL</name>      #IP
        jdbc:mysql://localhost:3306/hive</value>
    </property>
    
        javax.jdo.option.ConnectionDriverName</name> #驱动名称,由com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver
        com.mysql.cj.jdbc.Driver</value>
    </property>





  • 删除原有配置
    伪分布式Hadoop和Hive的安装及配置_第1张图片在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述




  • 下载并复制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:配置文件中驱动名称有误

com.mysql.jdbc.Driver驱动是mysql-connector-java 5中的

com.mysql.cj.jdbc.Driver驱动是mysql-connector-java 6以上版本的

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



参考文章
https://blog.csdn.net/weixin_43861175/article/details/90372513
https://blog.csdn.net/mayunyun1987100/article/details/51154056
https://blog.csdn.net/weixin_39839162/article/details/114871504

你可能感兴趣的:(大数据,hadoop,hive,分布式)