前置准备

CentOS7、jdk1.8、hive-2.3.9、hadoop-2.7.7、spark-2.0.0-bin-hadoop2-without-hive

首先先配置maven

Index of /dist/maven/maven-3

下载maven我下的是3.6.0版本

至少要3.1.3以上才能编译

同样解压到soft目录下

 配置环境变量

spark底层用的还是scala代码 所以顺便装上了scala 后来好像用不到scala所以可以不用装

vi /etc/profile

#meven enviroment
export MAVEN_HOME=/opt/soft/maven360
export PATH=$PATH:$MAVEN_HOME/bin

 source /etc/profile

先创建本地仓库目录maven_repository 这里为了方便放在opt/soft目录下

mkdir maven_repository

 修改Maven目录下conf目录的settings.xml文件

放在mirrors里边

<!-- 阿里云仓库 -->
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

 

 

<!-- Java的JDK版本 -->
<profile>    
    <id>jdk-1.8</id>
    <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
    </activation>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
</profile>

 千万不要放错位置 放错位置神也救不了你

输入mvn -version,如果能打印出版本信息,说明安装成功:

hadoop 的安装

对应版本即可

 大家可以对应版本进行安装

安装之前大家可以先配置好ssh

 首先创建公匙

 

 然后开始解压文件

tar -zxvf hadoop-2.7.7.tar.gz

mv hadoop-2.7.7 /opt/soft/hadoop277

vim /etc/pforile

#hadoop environment
export HADOOP_HOME=/opt/soft/hadoop277
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME

source /etc/profile

cd /opt/soft/hadoop277/etc/hadoop

编辑 hadoop-env.sh 目录 添加你的jdk文件目录 我的jdk文件 解压好放在soft目录下 

 

 修改这两个路径

core-site.xml

<configuration>
 <!--默认文件系统的名称 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.80.185:9000</value>
        </property>
        <!--指定HDFS执行时的临时目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/soft/hadoop277/tmp</value>
        </property>
</configuration>

vi hdfs-site.xml 

<configuration>
        <property>
                <!--指定hdfs保存数据副本的数量,包括自己,默认为3-->
                <!--伪分布式模式,此值必须为1-->
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <!--namenode文件存放位置,可以指定多个目录实现容错,用逗号分隔-->
                <name>dfs.name.dir</name>
                <value>file:///opt/soft/hadoop277/dfs/namenode_data</value>
        </property>
        <property>
                <!--datanode文件存放位置-->
                <name>dfs.datanode.data.dir</name>
                <value>file:///opt/soft/hadoop277/dfs/datanode_data</value>
        </property>
        <property>
                <!--设置hdfs操作权限,false表示任何用户都可以在hdfs上操作文件-->
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
</configuration>

cp mapred-site.xml.template mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

 vi yarn-site.xml

<configuration>
       <property>
                <!--指定yarn的老大resourcemanager的地址-->
                <name>yarn.resourcemanager.hostname</name>
                <value>localhost</value>
        </property>
        <property>
                <!--NodeManager获取数据的方式-->
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

 到bin目录下执行格式化文件

hadoop namenode -format

到sbin下  这个可以在全路径下执行 

start-hds.sh

start-yarn.sh

 出现这5个文件代表安装成功  少的话自己去日志文件下寻找

2.接下来安装hive

vi /etc/profile

#hive environment
export HIVE_HOME=/opt/soft/hive239
export PATH=$PATH:$HIVE_HOME/bin

 source /etc/profile

tar -zxf apache-hive-2.3.9-bin.tar.gz
mv apache-hive-2.3.9-bin /opt/soft/hive239
cd soft/hive239/conf/

cp hive-env.sh.template hive-env.sh

cp hive-log4j2.properties.template hive-log4j.properties

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

修改 hive-env.sh,指定 Hadoop 的安装路径和 Hive 配置文件路径:

2. hive-log4j.properties

修改日志文件存储路径,有助于以后排查错误

 

3. hive-site.xml

对于 hive-default.xml 这个关键配置文件我们一般不做修改,这里我们对关键配置文件的副本 hive-site.xml 文件进行相应的配置(默认情况下没有 hive-site.xml 这个文件,需要自己新建),内容如下,主要是配置存放元数据的 MySQL 的地址、驱动、用户名和密码等信息:

这个是手动创建的

vi hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
     <!-- 查询数据时 显示出列的名字 -->
     <name>hive.cli.print.header</name>
     <value>true</value>
  </property>
  <property>
     <!-- 在命令行中显示当前所使用的数据库 -->
     <name>hive.cli.print.current.db</name>
     <value>true</value>
  </property>
  <property>
     <!-- 默认数据仓库存储的位置,该位置为HDFS上的路径 -->
     <name>hive.metastore.warehouse.dir</name>
     <value>/hive239/warehouse</value>
  </property>
  <!-- 5.x -->
  <property>
            <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:mysql://192.168.80.185:3306/hive_metastore?createDatabaseIfNotExist=true</value>
  </property>
  <!-- 8.x -->
  <!--<property>
            <name>javax.jdo.option.ConnectionURL</name>
     <value>jdbc:mysql://192.168.80.185:3306/hive_metastore?createDatabaseIfNotExist=true&amp;useSSL=false&amp;serverTimezone=GMT</value>
  </property>-->
  <!-- 5.x -->
  <property>
     <name>javax.jdo.option.ConnectionDriverName</name>
     <value>com.mysql.jdbc.Driver</value>
  </property>
  <!-- 8.x -->
 <!--<property>
     <name>javax.jdo.option.ConnectionDriverName</name>
     <value>com.mysql.cj.jdbc.Driver</value>
  </property>-->
  <property>
     <name>javax.jdo.option.ConnectionUserName</name>
     <value>root</value>
  </property>
  <property>
     <name>javax.jdo.option.ConnectionPassword</name>
     <value>okok</value>
  </property>
</configuration>

 8.x代表的意思是8版本的mysql 这里我已经注释掉了 后续如果要用到8.x版本可以释放出来
然后导入mysql的jar包导lib目录下

当使用的 hive 是 2.x 版本时,必须手动初始化元数据库。初始化命令:

如果是1.x的话可以不用

schematool -dbType mysql -initSchema

然后就可以启动hive

直接输入hive

 show databases;可以看一下

上边少打了个s所以会报错

 没有报错代表安装成功 去小企鹅下也能找到hive

spark on hive 开始 spark编译流程

cd /opt/soft/spark200/dev

./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided"

执行编译程序

 代表编译成功

在原有的配置基础上增加以下配置:

hive-site.xml

 <property>
    <name>hive.execution.engine</name>
    <value>spark</value>
  </property>
  <property>
    <name>hive.enable.spark.execution.engine</name>
    <value>true</value>
  </property>
  <property>
    <name>spark.home</name>
    <value>/opt/software/spark-2.0.0</value>
  </property>
  <property>
    <name>spark.master</name>
    <value>yarn</value>
  </property>
  <property>
    <name>spark.eventLog.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>spark.eventLog.dir</name>
    <value>hdfs://192.168.80.185:8020/spark-hive-jobhistory</value>
  </property>
  <property>
    <name>spark.executor.memory</name>
    <value>512m</value>
  </property>
  <property>
    <name>spark.driver.memory</name>
    <value>512m</value>
  </property>
  <property>
    <name>spark.serializer</name>
    <value>org.apache.spark.serializer.KryoSerializer</value>
  </property>
  <property>
    <name>spark.yarn.jars</name>
    <value>hdfs://192.168.80.185:8020/spark-jars/*</value>
  </property>
  <property>
    <name>hive.spark.client.server.connect.timeout</name>
    <value>300000</value>
  </property>

spark-env.sh

export JAVA_HOME=/opt/soft/jdk180
export SCALA_HOME=/opt/soft/scala2118
export HADOOP_HOME=/opt/soft/hadoop277
export HADOOP_CONF_DIR=/opt/soft/hadoop277/etc/hadoop
export HADOOP_YARN_CONF_DIR=/opt/soft/hadoop/etc/hadoop
export SPARK_HOME=/opt/soft/spark-2.0.0
export SPARK_WORKER_MEMORY=512m
export SPARK_EXECUTOR_MEMORY=512m
export SPARK_DRIVER_MEMORY=512m
export SPARK_MASTER_WEBUI_PORT=8888
export SPARK_DIST_CLASSPATH=$(/opt/soft/hadoop277/bin/hadoop classpath)

 拷贝jar包和xml文件

cp hive-beeline-2.3.9.jar hive-cli-2.3.9.jar hive-exec-2.3.9.jar hive-jdbc-2.3.9.jar hive-metastore-2.3.9.jar /opt/soft/spark-2.0.0/jars/

将Spark的jars目录下的指定jar包拷贝到Hive的lib目录下:

 cp spark-network-common_2.11-2.0.0.jar spark-core_2.11-2.0.0.jar scala-library-2.11.8.jar chill-java-0.8.0.jar chill_2.11-0.8.0.jar jackson-module-paranamer-2.6.5.jar jackson-module-scala_2.11-2.6.5.jar jersey-container-servlet-core-2.22.2.jar jersey-server-2.22.2.jar json4s-ast_2.11-3.2.11.jar kryo-shaded-3.0.3.jar minlog-1.3.0.jar scala-xml_2.11-1.0.2.jar spark-launcher_2.11-2.0.0.jar spark-network-shuffle_2.11-2.0.0.jar spark-unsafe_2.11-2.0.0.jar xbean-asm5-shaded-4.4.jar /opt/soft/hive239/lib/

将hadoop中的yarn-site.xml、hdfs-site.xml以及Hive的hive-site.xml放入spark的conf中

cp yarn-site.xml hdfs-site.xml /opt/soft/hive239/conf/hive-site.xml /opt/soft/spark-2.0.0/conf/

为了使各个节点都能够使用 Spark 引擎进行计算,需要将Spark的jars目录下所有依赖包上传至HDFS

hdfs dfs -mkdir /spark-jars

hdfs dfs -mkdir /spark-hive-jobhistory

hdfs dfs -put /opt/software/spark-2.0.0/jars/*.jar /spark-jars

# 启动hiveserver2服务

好像正常的hive --service hiveserver2 起动不起来
nohup hiveserver2 >/dev/null 2>&1 &

 Yarn界面如下图所示:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐