连接mysql数据库--hive2.1.1+hadoop2.7.3+mysql5.7.18

注意版本一定要对!

1、环境的基本说明

本文使用的安装unbuntu18.04(64位)环境,机器名为hadoop。

hadoop2.7.3 : 安装配置

第1步:验证JAVA安装

在Hive安装之前,Java必须在系统上已经安装。使用下面的命令来验证是否已经安装Java:

$ java –version

如果Java已经安装在系统上,就可以看到如下回应:

java version "1.7.0_71"

Java(TM) SE Runtime Environment (build 1.7.0_71-b13)

Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)

如果Java尚未安装在系统中,那按照下面给出安装Java的步骤。

安装 Java

第(1)步:

sudo apt-get isntall openjdk-8-jdk}

查看安装路径:dpkg -L openjdk-8-jdk 我的路径为:/usr/lib/jvm/java-8-openjdk-amd64

第(2)步:

设置PATH和JAVA_HOME变量,添加以下命令到〜/.bashrc文件。

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

现在使用java-version命令从终端验证如上所述的安装。

第2步:验证Hadoop的安装

Hadoop必须在安装Hive之前安装。使用下面的命令来验证Hadoop的安装:

$ hadoop version

如果Hadoop已经安装在系统上,那么会得到以下回应:

Hadoop 2.7.3 Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768

Compiled by hortonmu on 2013-10-07T06:28Z

Compiled with protoc 2.5.0

From source with checksum 79e53ce7994d1628b240f09af91e1af4

如果在系统上还未安装Hadoop,然后继续进行下面的安装步骤:

下载Hadoop

从Apache软件基金会下载并使用下面的命令提取Hadoop2.4.1。

# tar xzf hadoop-2.7.3.tar.gz

# mv hadoop-2.7.3/ hadoop/

# exit

在伪分布式模式安装Hadoop

下列步骤用于在伪分布式模式下安装Hadoop2.7.3。

步骤I:设置Hadoop

可以通过附加下面的命令来设置Hadoop环境变量在〜/ .bashrc文件中。

export HADOOP_HOME=/usr/local/hadoop
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

现在,应用所有更改到当前正在运行的系统。

$ source ~/.bashrc

步骤II:Hadoop配置

可以找到位置“$HADOOP_HOME/etc/hadoop”所有Hadoop配置文件。需要根据Hadoop基础架构作出适当的修改这些配置文件。

$ cd $HADOOP_HOME/etc/hadoop

为了使用java开发Hadoop的项目,必须用java在系统的位置替换JAVA_HOME值重置hadoop-env.sh文件中的java环境变量。

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

下面给出的是编辑配置Hadoop的文件列表。

core-site.xml

core-site.xml文件中包含的信息,如使用Hadoop实例分配给文件系统的存储器,用于存储数据的内存限制的端口号,以及读/写缓冲器的大小。

打开core-site.xml文件并在,标签之间添加以下属性。

fs.default.name

hdfs://localhost:9000

hdfs-site.xml

hdfs-site.xml 文件中包含的信息,如复制数据的值,名称节点的路径,本地文件系统的数据节点的路径。

我们假定有以下数据。

dfs.replication (data replication value) = 1
(In the following path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode
(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode

打开这个文件,并在此文件中的标签之间添加以下属性。

dfs.replication

1

dfs.name.dir

file:///home/hadoop/hadoopinfra/hdfs/namenode

dfs.data.dir

file:///home/hadoop/hadoopinfra/hdfs/datanode

注:在上面的文件,所有的属性值是用户定义的,可以根据自己的Hadoop基础架构进行更改。

yarn-site.xml

此文件用于配置yarn到Hadoop。打开yarn-site.xml文件,并在此文件中的标签之间添加以下属性。

yarn.nodemanager.aux-services

mapreduce_shuffle

mapred-site.xml

此文件用于指定我们正在使用的MapReduce框架。缺省情况下,包含 yarn-site.xml模板。缺省情况下,包含yarn-site.xml模板。首先,需要将文件从mapred-site.xml复制。模板mapred-site.xml文件使用以下命令。

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

打开mapred-site.xml文件,并在在此文件中的标签之间添加以下属性。

mapreduce.framework.name

yarn

验证Hadoop的安装

下面的步骤被用来验证Hadoop的安装。

步骤I:名称节点设置

使用命令“hdfs namenode -format”设置名称节点如下。

$ cd ~

$ hdfs namenode -format

预期的结果如下。

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/

步骤 II: 验证Hadoop dfs

下面的命令用来启动dfs。执行这个命令将开始启动Hadoop文件系统。

$ start-dfs.sh

期望的输出如下所示:

10/24/14 21:37:56

Starting namenodes on [localhost]

localhost: starting namenode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-namenode-localhost.out

localhost: starting datanode, logging to /home/hadoop/hadoop-2.4.1/logs/hadoop-hadoop-datanode-localhost.out

Starting secondary namenodes [0.0.0.0]

步骤 III : 验证Yarn脚本

下面的命令用来启动yarn脚本。执行此命令将启动yarn守护进程。

$ start-yarn.sh

期望的输出如下所示:

starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop-2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop-2.4.1/logs/yarn-hadoop-nodemanager-localhost.out

步骤 IV:在浏览器访问Hadoop

访问Hadoop的默认端口号为50070.使用以下网址,以获取浏览器Hadoop服务。

http://localhost:50070/

步骤 V: 验证集群的所有应用程序

访问集群中的所有应用程序的默认端口号为8088。使用以下URL访问该服务。

http://localhost:8088/

第3步:下载Hive

我们在本教程中使用hive-0.14.0。可以通过访问以下链接下载 http://apache.petsads.us/hive/hive-0.14.0/. 假设它下载到/Downloads目录。在这里,我们下载一个名为“apache-hive-0.14.0-bin.tar.gz”的Hive存档。下面的命令用来验证的下载:

安装hive

1. 下载并解压hive源程序

Hive下载地址sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local # 解压到/usr/local中

cd /usr/local/

sudo mv apache-hive-1.2.1-bin hive # 将文件夹名改为hive

sudo chown -R dblab:dblab hive # 修改文件权限

Shell 命令

2. 配置环境变量

为了方便使用,我们把hive命令加入到环境变量中去,编辑~/.bashrc文件vim ~/.bashrc,在最前面一行添加:

export HIVE_HOME=/usr/local/hive

export PATH=$PATH:$HIVE_HOME/bin

保存退出后,运行source ~/.bashrc使配置立即生效。

3. 修改/usr/local/hive/conf下的hive-site.xml

将hive-default.xml.template重命名为hive-default.xml;新建一个文件touch hive-site.xml,并在hive-site.xml中粘贴如下配置信息:

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
hive
username to use against metastore database
javax.jdo.option.ConnectionPassword
hive
password to use against metastore database

二、安装并配置mysql

1.Ubuntu下mysql的安装请参考:Ubuntu安装MySQL

2.下载mysql jdbc 包,下载地址tar -zxvf mysql-connector-java-5.1.40.tar.gz #解压

cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib #将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

Shell 命令

3. 启动并登陆mysql shellservice mysql start #启动mysql服务

mysql -u root -p #登陆shell界面

Shell 命令

4. 新建hive数据库。mysql> create database hive; #这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

mysql

5. 配置mysql允许hive接入:mysql> grant all on *.* to hive@localhost identified by 'hive'; #将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码

mysql> flush privileges; #刷新mysql系统权限关系表

mysql

6. 启动hive

启动hive之前,请先启动hadoop集群。start-all.sh #启动hadoop

hive #启动hive

Shell 命令

使用mysql作为元数据库时登陆

解决Hive启动,Hive metastore database is not initialized的错误。出错原因:重新安装Hive和MySQL,导致版本、配置不一致。在终端执行如下命令:schematool -dbType mysql -initSchema

Shell 命令

Hive 分布现在包含一个用于 Hive Metastore 架构操控的脱机工具,名为 schematool.此工具可用于初始化当前 Hive 版本的 Metastore 架构。此外,其还可处理从较旧版本到新版本的架构升级。