在安装Hive前必须确保Hadoop已经安装成功,同样在安装Hive时要注意Hive的版本号和Hadoop的版本号是否兼容。
一、安装包的准备
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用。相对的Hive自己并不是数据库,所以需要安装一个数据库。
mysql 链接:https://dev.mysql.com/downloads/connector/j/
网盘 链接:https://pan.baidu.com/s/14Wjck-sOcMdVWt33yuqQlw 提取码:qzhc
Hive 链接:http://mirror.bit.edu.cn/apache/hive/hive-2.3.4/
网盘 链接:https://pan.baidu.com/s/142zGZXAf4kCFxFDOhXfl9w 提取码:547e
spark 网盘链接:https://pan.baidu.com/s/1Zp-3jVfkZad12t6QfJgAgw 提取码:4nn0
二、Mysql安装
2.1、安装mysql
命令
yum install -y mysql57-community-release-el7-10.noarch
yum -y install mysql-server #安装mysql服务
然后后面会有提示y/n,一路y就可以了
2.2、修改用户密码
启动mysql服务,在安装mysql目录下
service mysqld restart
因为在安装mysql时我们一般没有设置密码,在Consto7之前的版本直接回车就可以进去,但是在Consto7之后会每次随机生成一个密码,在/var/log/mysqld.log文件里,因此我们需要获取这个密码
grep "password" /var/log/mysqld.log #获取随机密码
sglvB!fNu8nu就是这次的密码
登录
mysql -h localhost -u root -p
#或者:
mysql -u root -p
下面有password,将得到的密码数据就可以了
在更改密码之前,mysql所有的操作都是无效的
更改密码
alter user 'root'@'localhost' identified by 'Sxy!521426'; #''里面是你的密码,字符数据特殊符号,
flush privileges; #刷新权限,这样就可以操作了
三、hive安装
3.1、安装
将下载好的hive解压到/home/software中
tar -zxf apache-hive-2.3.4-bin.tar.gz -C /home/software/
3.2、环境配置
在/etc/profile中添加下面内容
export HIVE_HOME=/home/software/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin
#别忘了source /etc/profile
更改/home/software/apache-hive-2.3.4/conf下的两个文件名
mv hive-env.sh.template hive-env.sh
mv hive-default.xml.template hive-default.xml
在hive-env.sh文件中添加
export JAVA_HOME=/usr/java/jdk1.8.0_51
export HIVE_HOME=/home/software/apache-hive-2.3.4-bin
export PATH=/usr/local/hadoop
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=$HIVE_HOME/lib/*
修改hadoop目录下的/etc/hadoop/hadoop-env.sh,添加
export HADOOP_CLASSPATH=.$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
将hive数据库下的所有表的全部权限赋给root用户(如果hadoop安装在hadoop用户下,则赋给hadoop用户),并配置hive-site.xml中配置的密码,刷新权限关系表
CREATE USER 'root'@'%' IDENTIFIED BY 'Sxy521426!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
flush privileges; #刷新权限列表
更改密码使密码变得简单一些,在mysql中使用下面的SQL语句
update mysql.user set authentication_string=password('新密码') where user='root' ;
flush privileges;
在hive的bin中建立hive-site.xml文件,并将下面的内容根据自己的需要修改添加下面内容
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop02:3306/hive_metastore_233?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
<!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost -->
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
</configuration>
在apache-hive-2.3.4中加入mysql-connector-java-5.1.40-bin.jar驱动包
链接: https://pan.baidu.com/s/1vCyXvTTehhnqa5JG6obLRg 提取码 iu8z
3.3、启动hive
在确保Hadoop和MySQL正常的情况下启动hive,或者使用hive --help验证,如果说hive命令找不到,那么在再~/.bashrc中配置一下hive的路径就可以了
初始化数据库
在使用hive2.x版本之前可以不用初始化数据库,,hive的第一次启动会自动初始化,但是在hive2.x之后,必须手动启动。如果不初始化会出现下面的错误
初始化命令
schematool -dbType mysql -initSchema
四、spark安装
1、安装scala
#解压
tar -xvf scala-2.12.8.tgz -C /usr/local
#配置环境变量
vim /etc/profile
export SCALA_HOME=/usr/scala-2.12.8
export PATH=$PATH:$SCALA_HOME/bin
2、将下载好的spark安装包解压到/usr/local/目录下
tar -zvxf spark-2.3.1-bin-hadoop2.7 -C /usr/local
3、配置环境变量
3.1、在/etc/profile中添加
export SPARK_HOME=/usr/local/spark-2.3.1-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
3.2、将/usr/local/spark-2.3.1-bin-hadoop2.7/conf下的spark-env.sh.template改成spark-env.sh并添加
cp conf/spark-env.sh.template conf /spark-env.sh #复制并重命名
#下面的添加到spark-env.sh中,因为我配置的是伪分布式,不存在其他节点,配置的比较简单
export JAVA_HOME=/usr/java/jdk1.8.0_151
export HADOOP_HOME=/usr/local/hadoop-3.1.1
export SCALA_HOME=/usr/local/scala-2.12.8
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=2g
export HADOOP_CONF_DIR=/usr/local/hadoop-3.1.1/etc/hadoop
也可以参考下面的进行自己配置
- JAVA_HOME:Java安装目录
- SCALA_HOME:Scala安装目录
- HADOOP_HOME:hadoop安装目录
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录
- SPARK_MASTER_IP:spark集群的Master节点的ip地址
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目
3.3、使用spark-shell启动spark的Scala
使用pyspark启动spark的python
验证安装的spark是否可以使用
bin/spark-submit examples/src/main/python/ml/kmeans_example.py#这是spark中自带的一个python的例子
如果出来这个就说明安装成功了!
在spark上运行py文件
命令
spark-submit --driver-memory 1g --master local[*] sparkshiyan.py
如果使用上面的命令出现没有找到/bin/python或者/bin/ipython的错误就需要检查一下下面两个文件里面有没有配置下面的地址
在spark-env.sh配置中添加:
export PYTHON_HOME=/root/anaconda3
export IPYTHON_HOME=/root/anaconda3
export PATH=$PYTHON_HOME/bin:$PATH
export PATH=$IPYTHON_HOME/bin:$PATH
在~/.bashrc中添加:
export PYSPARK_DRIVER_PYTHON=$ANACONDA_PATH/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_PATH/bin/python
export ANACONDA_PATH=/root/anaconda3
export PATH=/root/anaconda3/bin:$PATH
最后别忘了source ~/.bashrc,生效一下
看一下运行的结果
参考链接:
https://blog.csdn.net/weixin_36394852/article/details/76030317