Win10下安装大数据开发环境 spark+hadoop+hive(实测可用)

Win10下安装大数据开发环境 spark+hadoop+hive(实测可用)

  • 基础环境安装
  • spark安装
  • Hadoop安装
  • hive安装
  • 总结
  • 参考博客

基础环境安装

首先,我们需要搭建软件的运行环境,本文中所使用的软件均需要运行在Java环境之上,所以在您的电脑中安装JDK,并设置好环境变量,参考链接:传送门 。( 作者已将相关软件上传网盘:点击下载 提取码:8cmm )

注意事项:

  1. JDK版本建议1.8,1.9会报错
  2. 所有软件的安装路径不能存在空格,特别是Java的安装路径
  3. spark-shell的运行需要scala环境,所以在安装spark前我们需要先安装Scala(先从网盘中下载Scala,然后解压到电脑硬盘中,设置scala环境变量,配置变量名 SCALA_HOME,值为解压的目录地址,然后到PATH中添加路径 %SCALA_HOME%\bin
  4. 启动hive前必须先启动hadoop,才能连接上9000端口

spark安装

下载spark安装软件(网盘中版本为spark-2.4.3-bin-hadoop2.7),将其解压至硬盘中,然后配置环境变量,变量名 SPARK_HOME,变量值为解压的目录地址,最后到PATH中添加路径 %SPARK_HOME%\bin
测试:打开cmd窗口,输入 spark-shell 命令

Hadoop安装

下载Hadoop安装软件(网盘中版本为hadoop-2.8.4.tar),将其解压至硬盘中。其次,下载winutils-master.zip并解压。
接下来按如下操作:

  1. 删除hadoop目录下的bin和etc,将hadooponwindows-master下的bin和etc目录拷贝到hadoop下
  2. 修改etc/hadoop/core-site.xml文件

   
       fs.defaultFS
       hdfs://localhost:9000
   

  1. 修改etc/hadoop/mapred-site.xml文件

   
       mapreduce.framework.name
       yarn
   

  1. 修改etc/hadoop/hdfs-site.xml文件(在Hadoop安装目录下新建data/namenode和data/datanode文件夹)

 
        dfs.replication
        1
    
    
        dfs.namenode.name.dir
        file:/xxx(你的安装目录)/hadoop-2.8.4/data/namenode
    
    
        dfs.datanode.data.dir
        file:/xxx(你的安装目录)/hadoop-2.8.4/data/datanode
    

  1. 修改etc\hadoop\yarn-site.xml文件

    
       yarn.nodemanager.aux-services
       mapreduce_shuffle
    
    
       yarn.nodemanager.aux-services.mapreduce.shuffle.class
       org.apache.hadoop.mapred.ShuffleHandler
    

  1. 修改etc/hadoop/hadoop-env.cmd文件
@rem set JAVA_HOME=%JAVA_HOME%
set JAVA_HOME=xxx(java的安装目录)\jdk1.8.0_111
  1. 配置环境变量,变量名 HADOOP_HOME,变量值为解压的目录地址,最后到PATH中添加路径 %HADOOP_HOME%\bin
  2. 格式化namenode,打开cmd窗口,执行 hdfs namenode -format
  3. 启动Hadoop,打开cmd窗口,进入sbin目录下执行 start-all.cmd,一共启动4个窗口:namenode,datanode,yarn resourcemanager,yarn nodemanager
    此时即代表Hadoop成功运行。

hive安装

下载hive安装软件(网盘中版本为apache-hive-2.1.1-bin.tar),将其解压至硬盘中。配置环境变量,变量名 HIVE_HOME,变量值为解压的目录地址,最后到PATH中添加路径 %HIVE_HOME%\bin
因为Hive需要仓库存储数据,我们需要提前安装MySQL(网盘中版本为mysql-5.6.36-winx64),安装过程参考博客:MySQL-5.6.13免安装版配置方法 。

  1. 复制conf文件夹下的hive-default.xml.template文件,重命名为hive-site.xml,修改关于元数据存储的数据库的配置,每个配置都需要搜索名称(name),然后改成自己的配置(value)。

        javax.jdo.option.ConnectionURL
        jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
        JDBC connect string for a JDBC metastore



      javax.jdo.option.ConnectionDriverName
      com.mysql.jdbc.Driver
      Driver class name for a JDBC metastore



      javax.jdo.option.ConnectionUserName
      root
      username to use against metastore database



      javax.jdo.option.ConnectionPassword
      root
      password to use against metastore database

  1. 接下来,修改类似于 “${system:” 的配置,在hive-site.xml中有很多地方引用了这种形式的变量,但在Windows环境中会报错,所以我们需要一一修改成具体地址。(相关文件夹可创建)
  
    hive.exec.local.scratchdir    
    xxx(hive安装的目录)/scratch_dir
    Local scratch space for Hive jobs
  

  
    hive.downloaded.resources.dir    
    xxx(hive安装的目录)/resources_dir/${hive.session.id}_resources    
    Temporary local directory for added resources in the remote file system.
  

   
    hive.querylog.location
    xxx(hive安装的目录)/querylog_dir
    Location of Hive run time structured log file
  

   
    hive.server2.logging.operation.log.location
    xxx(hive安装的目录)/operation_dir
    Top level directory where operation logs are stored if logging functionality is enabled
  

此外,hive.metastore.warehouse.dir,hive.user.install.directory的地址需要在hdfs中创建。

  1. 将hive-log4j2.properties.template这个文件复制,重命名为hive-log4j2.properties,并更改内容如下
status = INFO
name = HiveLog4j2
packages = org.apache.hadoop.hive.ql.log

# list of properties
property.hive.log.level = INFO
property.hive.root.logger = DRFA
property.hive.log.dir = hive_log
property.hive.log.file = hive.log
property.hive.perflogger.log.level = INFO

# list of all appenders
appenders = console, DRFA

# console appender
appender.console.type = Console
appender.console.name = console
appender.console.target = SYSTEM_ERR
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{ISO8601} %5p [%t] %c{2}: %m%n

# daily rolling file appender
appender.DRFA.type = RollingRandomAccessFile
appender.DRFA.name = DRFA
appender.DRFA.fileName = ${hive.log.dir}/${hive.log.file}
# Use %pid in the filePattern to append @ to the filename if you want separate log files for different CLI session
appender.DRFA.filePattern = ${hive.log.dir}/${hive.log.file}.%d{yyyy-MM-dd}
appender.DRFA.layout.type = PatternLayout
appender.DRFA.layout.pattern = %d{ISO8601} %5p [%t] %c{2}: %m%n
appender.DRFA.policies.type = Policies
appender.DRFA.policies.time.type = TimeBasedTriggeringPolicy
appender.DRFA.policies.time.interval = 1
appender.DRFA.policies.time.modulate = true
appender.DRFA.strategy.type = DefaultRolloverStrategy
appender.DRFA.strategy.max = 30

# list of all loggers
loggers = NIOServerCnxn, ClientCnxnSocketNIO, DataNucleus, Datastore, JPOX, PerfLogger

logger.NIOServerCnxn.name = org.apache.zookeeper.server.NIOServerCnxn
logger.NIOServerCnxn.level = WARN

logger.ClientCnxnSocketNIO.name = org.apache.zookeeper.ClientCnxnSocketNIO
logger.ClientCnxnSocketNIO.level = WARN

logger.DataNucleus.name = DataNucleus
logger.DataNucleus.level = ERROR

logger.Datastore.name = Datastore
logger.Datastore.level = ERROR

logger.JPOX.name = JPOX
logger.JPOX.level = ERROR

logger.PerfLogger.name = org.apache.hadoop.hive.ql.log.PerfLogger
logger.PerfLogger.level = ${hive.perflogger.log.level}

# root logger
rootLogger.level = ${hive.log.level}
rootLogger.appenderRefs = root
rootLogger.appenderRef.root.ref = ${hive.root.logger}
  1. 在mysql创建hive库,并对该库执行scripts\metastore\upgrade\mysql\hive-txn-schema-2.1.0.mysql.sql脚本
  2. 复制mysql驱动jar到$HIVE_HOME/lib下(网盘中版本为mysql-connector-java-5.1.46)
  3. 在Hadoop启动后,打开cmd窗口,执行以下命令启动metastore
hive --service metastore -hiveconf hive.root.logger=DEBUG

接着,新开一个cmd窗口,执行以下命令启动hiveserver

hive --service hiveserver2

最后,可以打开hive客户端

hive --service cli
  1. 执行测试语句
show databases;

总结

至此,spark+Hadoop+hive的Windows伪分布式测试环节已搭建完成,各位有问题欢迎随时交流。

参考博客

  1. windows10 下Spark+Hadoop+hive+pyspark安装 - 简书
  2. Win10不需要Cygwin搭建大数据测试环境(1)-Hadoop
  3. Win10不需要Cygwin搭建大数据测试环境(4)—Hive
  4. MySQL-5.6.13免安装版配置方法

你可能感兴趣的:(Spark,Hadoop,Hive,大数据环境,Windows,spark,hadoop,hive)