Linux下安装hive1.2.1+mysql5.1.7
Linux下安装hive1.2.1+mysql5.1.7
前提环境:
已安装hadoop和yarn,并配置了环境变量
mysql
先检查有没有mysql的安装包
rpm -aq |grep mysql
删除该依赖包
sudo rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64
安装
mysql客户端
sudo yum install mysql
mysql服务
sudo yum install -y mysql-server
启动
sudo service mysqld server
设置root用户密码
当重启mysql服务上面会有类似如下的提示,提示我们怎么设置mysql用户名和密码
mysqladmin -u root password '123456'
这里我测试了用自己设置的密码登录,看是否能进入,如图进入了,表示设置正确
设置开机启动
sudo chkconfig mysqld on
这里我查看了mysql是否开机启动,其中2,3,4,5为on则表示开机启动
配置用户的访问权限
添加权限
先进入mysql
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION;
补充:
显示数据库名:注意databases后面加;
删除其他的授权
先查看有哪些授权
SELECT User, Host, Password FROM mysql.user;
画红线的是我们刚刚添加的授权,我们等下要删除的是上面四个
分别删除其他的授权
-
delete from mysql.user where Host='localhost';
-
-
delete from mysql.user where Host='bigdata-hpsk01.huadian.com' ;
-
-
delete from mysql.user where Host='127.0.0.1';
-
-
delete from mysql.user where Host='bigdata-hpsk01.huadian.com';
刷新权限
flush privileges;
重启服务
sudo service mysqld restart
远程连接
我用的是Navicat,之所以可以远程连接,是有在Windows下配置过ip与主机名的映射,这里不详细说。
Hive 安装+环境变量配置
开启hadoop的相关进程
-
sbin/hadoop-daemon.sh start namenode
-
-
sbin/hadoop-daemon.sh start datanode
-
-
sbin/yarn-daemon.sh start resourcemanager
-
-
sbin/yarn-daemon.sh start nodemanager
-
-
sbin/mr-jobhistory-daemon.sh start historyserver
检查进程
安装hive1.2.1
到该路径下找hive对应的版本号:http://archive.apache.org/dist/
解压,重命名
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/modules/
mv apache-hive-1.2.1-bin/ hive-1.2.1
配置*.env.sh文件中的环境变量
复制hive-env.sh.tmplate文件重命名为hive-env.sh
cp hive-env.sh.template hive-env.sh
修改hive-env.sh里面的配置,将下面两行的注释去掉,路径换成自己hadoop和conf的路径
修改环境变量文件
sudo vi /etc/profile
在最下面添加如下配置
-
# HIVE HOME
-
export HIVE_HOME=/opt/modules/hive-1.2.1
-
export PATH=${PATH}:$HIVE_HOME/bin:$HIVE_HOME/conf
使配置文件生效
source /etc/profile
启动hive
到hive的安装目录下执行下面命令
bin/hive
如图,进入到了hive内
基本使用
到hive官网:http://hive.apache.org/查看官方文档
创建文件夹
到该https://cwiki.apache.org/confluence/display/Hive/GettingStarted路径下,看到如下图:
红框前面的命令都比较老了,我们注意的是红框内的
到hadoop的安装路径分别执行以下命令:
-
bin/hdfs dfs -mkdir /tmp
-
-
bin/hdfs dfs -mkdir -p /user/hive/warehouse
-
-
bin/hdfs dfs -chmod g+w /tmp
-
-
bin/hdfs dfs -chmod g+w /user/hive/warehouse
打开http://bigdata-hpsk01.huadian.com:50070/,到Utilities下可以看到我们刚刚创建的文件夹
创建数据库
创建表
-
create table db_hive.tb_word(
-
id INT,
-
word STRING)
-
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' //字段之间以“\t”分隔
导入数据
源文件内容:
LOAD DATA LOCAL INPATH '/opt/modules/hadoop-2.7.3/data/word.data' INTO TABLE db_hive.tb_word
实现业务
select word,count(word) from db_hive.tb_word group by word
更改Derby默认数据库为mysql
在conf目录下新建hive.site.xml
touch hive-site.xml
将hive-default.xml.template里面的约束复制到hive-default.xml内
到https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties找配置文件中需要添加的属性
-
<configuration>
-
-
<property>
-
<name>javax.jdo.option.ConnectionURL</name>
-
<value>jdbc:mysql://bigdata-hpsk01.huadian.com/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>123456</value>
-
</property>
-
-
-
-
</configuration>
删除文件/文件夹
删除红框内的文件/文件夹
rm derby.log
rm -rf metastore_db
导包
将mysql-connector-java-5.1.7-bin.jar驱动包导入到hive的lib内
测试
重新进入hive
方法一:多了个数据库
方法二:可同时登陆多个hive会话
方法三:Derby.log he metastore_db不存在与hive安装目录下
PS:如果出现如下错误
Linux下连接Mysql出现:Access denied for user 'root'@'localhost' (using password:YES)
参考:https://blog.csdn.net/money9sun/article/details/52290396