一、Hive
的安装和配置
-
解压
$ tar -zxvf ~/hive-0.13.1-bin.tar.gz -C /opt/cdh5.7.0/
-
创建
hive
仓库和tmp
目录
$ bin/hdfs dfs -mkdir -p /user/hive/warehouse
$ bin/hdfs dfs -mkdir /tmp #不存在就创建
-
修改权限
$ bin/hdfs dfs -chmod g+w /user/hive/warehouse
$ bin/hdfs dfs -chmod g+w /tmp
-
拷贝并修改配置文件
cp conf/hive-default.xml.template conf/hive-site.xml
cp conf/hive-log4j.properties.template conf/hive-log4j.properties
cp conf/hive-env.sh.template conf/hive-env.sh
- 修改
hive-env.sh
JAVA_HOME=/opt/modules/jdk1.7.0_67 HADOOP_HOME=/opt/cdh5.7.0/hadoop-2.5.0 export HIVE_CONF_DIR=/opt/cdh5.7.0/hive-0.13.1/conf # 这个在一定要配,不然后面Hive集成spark-SQL会报错,jdbc驱动用你自己的驱动包版本 export SPARK_CLASSPATH=${HIVE_HOME}/lib/mysql-connector-java-5.1.34-bin.jar
- 修改
hive-site.xml
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://${YOUR_DB_IP}:3306/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>${YOUR_PASSWD}</value> </property> <!-- 打印表时,显示字段名 --> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <!-- 在交互窗口中,显示当前所在库 --> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> </configuration>
- 修改
-
修改
hive-log4j.properties
hive.log.dir=/opt/cdh5.7.0/hive-1.1.0-cdh5.7.0/logs
-
拷贝jdbc驱动
$ cp /opt/software/mysql-connector-java-5.1.34-bin.jar /opt/modules/hive-0.13.1/lib/
-
添加环境变量
$ vi /etc/profile
(普通用户也可以在~/.bash_profile
中修改)
在profile
文件中追加
# 用你自己的Hive路径
export HIVE_HOME=/opt/modules/hive-1.1.0-cdh5.7.0
PATH=${PATH}:${HIVE_HOME}/bin
export PATH
- 连接测试(先启动
hdfs
,yarn
和zkServer
)- 启动hiveserver2
$ nohup hiveserver2 >/dev/null 2&>1 &
- 启动beeline
$ beeline -u jdbc:hive2://${HOSTNAME}:10000 -n ${USERNAME}
- 启动hiveserver2
二、Spark
的安装和配置
2.1 安装Scala
- 解压安装
$ cd /opt/software
$ tar -zxvf scala-2.12.6.tgz -C /opt/modules
- 配置
Scala
的环境变量
$ su
# vi /etc/profile
在文件末尾添加以下内容
export SCALA_HOME=/opt/modules/scala-2.12.6
export PATH=$PATH:$SCALA_HOME/bin
保存退出
# source /etc/profile
# su regina
2.2 安装Spark
-
解压安装
$ cd /opt/cdh5.7.0
$ tar -zxvf spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz -C /opt/cdh5.7.0/
-
修改配置文件
$ cd /opt/cdh5.7.0/spark-2.1.0-bin-2.6.0-cdh5.7.0/conf
$ cp log4j.properties.template log4j.properties
$ cp slaves.template slaves
$ cp spark-defaults.conf.template spark-defaults.conf
$ cp spark-env.sh.template spark-env.sh
2.2.1 spark on localb(本地模式):
- 修改spark-env.sh
JAVA_HOME=/opt/modules/jdk1.8.0_171
SCALA_HOME=/opt/modules/scala-2.12.6
HADOOP_CONF_DIR=/opt/cdh5.7.0/hadoop-2.6.0-cdh5.7.0/etc/hadoop
SPARK_LOCAL_IP=${HOSTNAME}
- linux本地环境测试
- 启动
hdfs
的服务 - 运行run-example
$ bin/run-example SparkPi
$ bin/run-example SparkPi 100
- 官方文档测试
bin/spark-shell
2.2.2 Spark Standalone
(独立运行模式):
>是一种类似Yarn的spark自带的资源管理框架
>Yarn结构
>1) `ResourceManager` 负责集群资源的管理
>2) `NodeManager` 负责当前节点上的资源管理
-
Standalone
结构-
Master
负责管理集群的所有资源 -
Worker
负责当前进程的所有资源
-
-
Standalone
的环境配置:- 前提:
spark
的本地执行环境已经搭建好了 - 修改
conf/spark-env.sh
文件内容SPARK_MASTER_HOST=safari SPARK_MASTER_PORT=7070 SPARK_MASTER_WEBUI_PORT=8080 SPARK_WORKER_CORES=2 ## 给定当前的机器上的一个 worker进程允许分配/管理的cpu核数 SPARK_WORKER_MEMORY=2g ## 给定当前机器上的一个worker进程允许分配/管理的内存大小 SPARK_WORKER_PORT=7071 SPARK_WORKER_WEBUI_PORT=8081 SPARK_WORKER_INSTANCES=2 ## 给定当前机器上允许存在多少个worker进程(启动进程后,jps命令可以看到几个worker)
- 配置
worker
机器列表(slave列表)
cp conf/slaves.template conf/slaves
修改slaves
文件
${SLAVE_NAME}
- 启动
standalone
的服务
sbin/start-master.sh
sbin/start-slaves.sh
sbin/start-slave.sh spark://${HOSTNAME}:7070
sbin/stop-all.sh
==> 关闭所有
sbin/start-all.sh
==> 开启所有
- 前提:
2.2.3 spark-sql
集成Hive
- 将
Hive
的conf
目录下的hive-site.xml
拷贝到spark
的conf
目录下
$ cp ${HIVE_HOME}/conf/hive-site.xml ${SPARK_HOME}/conf
- 启动
Hive
的metastore
(已经启动HDFS
和spark
集群)
$ hive --service metastore
- 确定之前的
hiveserver2
和beeline
都配置成功(确定配置成功,但是一定不要启动hiveserver2
,会占用10000端口号)
$ bin/spark-sql
- 启动
thriftserver
以及beeline
$ sbin/start-thriftserver.sh
$ beeline -u jdbc:hive2://{HOSTNAME}:10000 -n ${USERNMAE}
网友评论