一.下载安装
mysql的安装
在这里我选择了hadoop的版本是hadoop-2.7.4.tar.gz,hive的版本是apache-hive-2.2.0-bin.tar.gz
下载完成之后通过命令进行解压
tar -zxvf xxx.tar.gz
然后配置在根目录下的.bashrc文件中
export HADOOP_HOME=/root/hadoop/hadoop
export PATH=${HADOOP_HOME}/bin:$PATH
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HIVE_HOME=/root/hadoop/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/root/hadoop/hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/root/hadoop/hive/lib/*:.
二.修改hadoop的配置文件
1.首先修改hadoop中etc下hadoop下的hadoop-env.sh的配置文件,在里面导入java的安装路径
export JAVA_HOME=/usr/lib/java/jdk
2.修改hdfs-site.xml配置文件,加上下面配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
3.修改core-site.xml的配置文件,加上下面配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> 端口
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/data</value> 数据存放路径
</property>
<property>
<name>hadoop.proxyuser.lcc.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.lcc.hosts</name>
<value>*</value>
</property>
</configuration>
hadoop.tmp.dir 必须配置,而且每次格式化,要清空,否则datanode会无法启动
后面两个配置是hive连接必须配置
4.免密要配置
cd ~/.ssh
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
ssh-keygen -t rsa -P “”
cat /Users/lcc/.ssh/id_rsa.pub >> /Users/lcc/.ssh/authorized_keys
5.格式化(只需要格式化一次)
bin/hdfs namenode -format
6.启动
./start-all.sh
7.检查是否启动成功
输入jps显示上面红框里面的东西就表示启动成功!
三.修改hive的配置文件
1.进入到hive中的conf文件夹中,找到hive-site.xml如果没有通过以下命令通过模板复制一个
cp hive-default.xml.template hive-site.xml
2.修改配置文件hive-site.xml
首先在配置文件property配置项的前面加上以下关于mysql数据库的配置
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop000:3306/hiveDB?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</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>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
一定要放在hive.exec.script.wrapper配置项的上面
3. 拷贝mysql的驱动jar到hive的lib目录下,一定要用这个服务器中maven仓库中有的mysql驱动jar。我用的是
mysql-connector-java-5.1.43.jarmysql-connector-java-5.1.43.jar
4.由于在上面的配置文件中连接了mysql数据库,并且创建了一个新的数据库在mysql中,因此要初始化
进入到hive的bin目录下执行下面的命令:
schematool -dbType mysql -initSchema
可能出现下面错误
如果出现这种错误就是因为没有按照我上面的配置加在配置文件中,配置文件中的最后一行就是解决这个问题的。
5.启动hive
输入hive命令即可:
可能会出现下面这个错误,就算启动的时候但是操作hive数据库的时候也会失败。
解决方法:
在安装的hive的根目录下创建一个tmp文件夹,通过pwd命令找到所在目录,然后修改配置文件hive-site.xml
找到下面这几个标签项的配置,然后做一下修改:
hive.querylog.location
hive.exec.local.scratchdir
hive.downloaded.resources.dir
将所有的
s
y
s
t
e
m
:
j
a
v
a
.
i
o
.
t
m
p
d
i
r
修
改
为
t
m
p
所
在
的
目
录
我
的
是
/
r
o
o
t
/
h
a
d
o
o
p
/
h
i
v
e
/
t
m
p
将
所
有
的
{system:java.io.tmpdir} 修改为tmp所在的目录我的是/root/hadoop/hive/tmp 将所有的
system:java.io.tmpdir修改为tmp所在的目录我的是/root/hadoop/hive/tmp将所有的{system:user.name} 修改为${user.name}
至此,配置就完成了
四.成功的操作
1.在mysql数据库中会创建成功在hive配置文件中指定的数据库hiveDB
2.可以在hive命令行中进行创建表的一些操作:
3.同时会在hdfs中也会显示创建成功,因为会有相应的数据同步,证明可以通过hive操作hadoop了,输入一下命令进行查看
hadoop fs -lsr /
显示结果如下:
4.那么可以看下mysql下的hiveDB有什么变化:
在增加数据库的时候同样数据也可以在mysql中查到
到这里真正完成了mysql和hadoop以及hive关系的创建和联系。