1 安装mysql
Linux下使用yum安装MySQL,以及启动、登录和远程访问MySQL数据库。
1、安装
查看有没有安装过:
yum list installed mysql*
rpm -qa | grep mysql*
查看有没有安装包:
yum list mysql*
安装mysql客户端:
yum install mysql
安装mysql 服务器端:
yum install mysql-server
yum install mysql-devel
2、启动&&停止
数据库字符集设置
mysql配置文件/etc/my.cnf中加入default-character-set=utf8
启动mysql服务:
service mysqld start或者/etc/init.d/mysqld start
开机启动:
chkconfig -add mysqld,查看开机启动设置是否成功chkconfig --list | grep mysql*
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
停止:
service mysqld stop
3、登录
创建root管理员:mysqladmin -u root password 123456
登录: mysql -u root -p 输入密码即可。
忘记密码:
1)停止服务: service mysqld stop
2)安全模式启动: mysqld_safe --user=root --skip-grant-tables
3)登录数据库,修改用户即可:
mysql -u root
use mysql
update user set password=password("new_pass") where user="root";
flush privileges;
当安全模式启动后,屏幕会卡住,克隆会话后登录即可。
4、远程访问
开放防火墙的端口号
mysql增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”。
update user set password=password('123456') where user='root';
flush privileges;
5、Linux MySQL的几个重要目录
数据库目录: /var/lib/mysql/
配置文件: /usr/share /mysql(mysql.server命令及配置文件)
相关命令: /usr/bin(mysqladmin mysqldump等命令)
启动脚本: /etc/rc.d/init.d/(启动脚本文件mysql的目录)
6.mysql只要留一个用户即可 mysql 数据库 user表中,其他的匿名用都删除。
localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
2 Hive安装
Hive只在一个节点上安装即可
1.上传tar包
hive-0.9.0.tar.gz
2.解压
tar -zxvf hive-0.9.0.tar.gz -C /cloud/
3.安装mysql数据库
(切换到root用户)(装在哪里没有限制,只有能连通hadoop集群的节点)
mysql安装仅供参考,不同版本mysql有各自的安装流程
rpm -qa | grep mysql
rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm
修改mysql的密码
/usr/bin/mysql_secure_installation
(注意:删除匿名用户,允许用户远程连接)
登陆mysql
mysql -u root -p
4.配置hive
(a)配置HIVE_HOME环境变量 vi conf/hive-env.sh 配置其中的$hadoop_home
(b)配置元数据库信息 vi hive-site.xml (这个文件不存在要新增)
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://mini1:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</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>
5.安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
mysql-connector-java-5.1.35.jar 这个包拷贝到lib目录
如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
mysql -uroot -p
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意删除匿名用户,新建用户重新授权,允许任何ip连接:
delete from mysql.user where user='';
select user,host,password from mysql.user;
insert into mysql.user(Host,User,Password) values("localhost","root",password("123456"));
6. Jline包版本不一致的问题,
需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的
/home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
-- 删除这个jar,把hive中的拷贝到这里。
6.1 启动hive
bin/hive
6.2 当做服务的方式启动
hive也可以启动为一个服务器,来对外提供
启动方式,(假如是在mini1上):
启动为前台:bin/hiveserver2
启动为后台:nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &
启动成功后,可以在别的节点上用beeline去连接
方式(1)
输入:
hive/bin/beeline
进入beeline的命令界面,输入命令连接:
beeline> !connect jdbc:hive2://mini1:10000
用户名输入root 密码为空,回车即可
(mini1是hiveserver2所启动的那台主机名,端口默认是10000)
方式(2)
或者启动就连接:
bin/beeline -u jdbc:hive2://mini1:10000 -n root
接下来就可以做正常sql查询了
7.建表(默认是内部表)
create table trade_detail(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by '\t';
建分区表
create table td_part(id bigint, account string, income double, expenses double, time string) partitioned by (logdate string) row format delimited fields terminated by '\t';
建外部表
create external table td_ext(id bigint, account string, income double, expenses double, time string) row format delimited fields terminated by '\t' location '/td_ext';
8.创建分区表
普通表和分区表区别:有大量数据增加的需要建分区表
create table book (id bigint, name string) partitioned by (pubdate string) row format delimited fields terminated by '\t';
分区表加载数据
load data local inpath './book.txt' overwrite into table book partition (pubdate='2010-08-22');
load data local inpath '/root/data.am' into table beauty partition (nation="USA");
select nation, avg(size) from beauties group by nation order by avg(size);
9.hive笔记
1) 桶表 cluster 和 sort by 不能共存,cluster改成distributed by 即可;
2) 桶表不能直接load数据,只能通过查询另外一个表的方式进行overwrite;
3) 桶表在实际企业中的用途:抽样,高效查询;
4) 集合类型要指定collection terminated by '-',如果是map类型,要加may keys terminated by ':'
5) select * from t_3 不会走mapreduce, select count(*) from t_3则要走mapreduce;
10.hive笔记2
partition 表现为一个table下的不同目录
bucket 根据某个字段hash取值分散在不同的文件中