配置安装:
前提:Hadoop集群正常启动( Hadoop2.7.7安装详细 )、(MySQL在线安装详细) 。
1、安装包请自行下载上传并解压(下载地址: http://mirror.bit.edu.cn/apache/hive/ )。
(解压命令 “ tar -zxvf 目标路径 -C 存放路径 ”)
解压后的第一时间可根据自己意愿选择性重命名
2、配置环境变量:
通过编辑 根( / )目录下 etc 下的 profile 文件进行环境变量的设置(命令 “ vi /etc/profile ”),(为节约时间此步不赘述vi文本等的使用细节)。
添加 如下内置即配置环境变量(每个节点):
export HIVE_HOME=/opt/hive-2.3.4 (注意 /opt/hive-2.3.4 是安装路径如果刚才已选择重命名的童鞋请按照自己命的名和实际路径情况来 )
export PATH=$HIVE_HOME/bin:$PATH
编辑后wq保存退出。
为使得刚编辑的profile文件立即生效可(命令 “ source /etc/profile ”)
。
为确保配置成功进行验证如果显有版本号则以上步骤皆为正常(命令 “ hive --version ”)
3、创建hive所要的hadoop目录:
在依次输入以下命令前请确认hadoop集群是开启状态(hadoop起不来的可直接用 “ mkdir 文件夹名 ” 命令等其他方式创建)。
hadoop fs -mkdir -p /data/hive/warehouse
hadoop fs -mkdir -p /data/hive/tmp
hadoop fs -mkdir -p /data/hive/log
hadoop fs -chmod -R 777 /data/hive/warehouse
hadoop fs -chmod -R 777 /data/hive/tmp
hadoop fs -chmod -R 777 /data/hive/log
查看执行上列六条命令后所创建并修改访问权限的三个文件夹:(命令 “ ’hadoop fs -ls /data/hive ”)
4、需要 修改的 hive 配置文件(将其拖到win桌面修改,完毕后放回到原来的位置):
把 hive-2.3.4/conf 下
hive-default.xml.template 修改成 hive-site.xml 、
hive-env.sh.template 修改成 hive-env.sh 。:
打开 hive-site.xml 修改其中内容(注意不要多出 空格等 ):
用 ctrl+f 键 快速搜索 hive.exec.scratchdir (第38行)而后将其后一行修改成 “ <value>/data/hive/tmp</value> ”(第39行)
,
继续搜索 hive.querylog.location (第1684行)而后将其后一行修改成 “ <value>/data/hive/log/hadoop</value> “(第1685行)
,
继续搜索 <name>javax.jdo.option.ConnectionURL</name> (第544行)而后将其后一行修改成
“ <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value> “(第545行)
,
继续搜索 javax.jdo.option.ConnectionDriverName (第1019行)
而后将其后一行修改成 “ <value>com.mysql.jdbc.Driver</value> “(第1020行)
,
继续搜索 javax.jdo.option.ConnectionUserName (第1044行)而后将其后一行修改成 “ <value>hive</value> “(第1045行)
,
继续搜索 javax.jdo.option.ConnectionPassword (第529行)而后将其后一行修改成 “ <value>hive</value> “(第530行)
,
继续搜索 ${system:java.io.tmpdir} ( 三处 第75行、第80行、第3976行 )直接将 ${system:java.io.tmpdir} 修改成 " /data/hive/tmp "
,
,
。
继续搜索 {system:user.name} ( 两处 第75行、第3976行 )直接将 {system:user.name} 修改成 {user.name}
,
。
打开 hive-env.sh 修改其中内容(注意不要多出 空格 ):
在 49、52、55行添加以下配置:
HADOOP_HOME=/opt/hadoop-2.7.7 (hdoop安装路径)
export HIVE_CONF_DIR=/opt/hive-2.3.4/conf (hive配置文件存放路径)
export HIVE_AUX_JARS_PATH=/opt/hive-2.3.4/lib (hive运行资源库路径)
。
将修改后的两文件 ( hive-site.xml 、 hive-env.sh ) 拖回原来位置 (Linux “ /opt/hive-2.3.4/conf ”) !
。
(需要较大的空间):
5、 安装 wget (命令 “ yum -y install wget ”) 。
6、切换阿里云的yum源:
(1) 备份 “ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ”。
(2) 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ 下
(命令 “ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ”)。
再次输入以下两个命令:“ yum makecache ” 、“ yum update ” 。
7、安装MYSQL(在线):
由于我的机器已经安装过mysql故此步不再一一真实操作而是部分以纯文本叙述!
(1)输入命令 (“ rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm ”)。
(2)下载mysql命令(“ yum -y install mysql-community-server ”)。
(3)设置mysql开机启动(命令 “ systemctl enable mysqld ”)。
(4)启动mysql(命令 “ systemctl start mysqld ”)。
(5)初始化mysql(命令 “ mysql_secure_installation ”) :
停顿第一次:回车
停顿第二次:Y
密码设置:123456(或自定义其他)
重复密码:123456
停顿第三次:Y(或直接回车)
停顿第四次:Y
停顿第五次:Y
停顿第六次:Y
(6)root状态下连接mysql(命令 “ mysql -uroot -p ”),然后输入密码即可。
(7)在mysql状态下创建hive用户(命令 “ GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY 'hive' WITH GRANT OPTION; ”) ,
再输入以下命令即可:“ flush privileges; ” 。
(8)安装jar包:将 mysql-connector-java-5.1.47-bin.jar 用 Xftp 复制到 /opt/hive-2.3.4/lib 路径下。
(9)将以上配置尽数复制到slave1与slave2 :
将以上在 master 节点上 配置好的 hive 整个数据文件夹,复制到slave1,slave2相同的文件夹下使得三台机器从此具有相同配置。
从 master 到 slave1:(命令 “ scp -r /opt/hive-2.3.4/ root@slave1:/opt/ ”) 。
从 master 到 slave2:(命令 “ scp -r /opt/hive-2.3.4/ root@slave2:/opt/ ”) 。
注 : exit 命令 可退出mysql登录!
8、启动
启动hive前先初始化元素数据(命令 “ schematool -dbType mysql -initSchema ”)。
(1)启动WebUI(命令 “ hiveserver2& ”)。
(2)启动hive命令行:
首先用Xshell 另外再 打开 一个 master 窗口,再输入命令:“ hive ” 。
(3)验证是否正确(命令 “ show tables; ”)。
hive的使用:
(命令 “ ”)。
1、在hive命令行下创建内部表:
语法: (create table 表名(列名 类型,列名 类型,......)row format delimited fields terminated by '\t'; ( 一行文本对应表中一条记录)
例如:
create table student(id int,name string,age int,address string)
row format delimited
fields terminated by'\t';
(1)、加载数据到内部表:
首先准备一个桌面student.txt文本输入一些数据,以TAB键分割,
然后用Xftp将桌面 student.txt上传到master电脑的/root目录下,
再创建一个hdfs文件夹名字为hivedata;(命令 “ hadoop fs -mkdir /hivedata ”)。
将student.txt文本上传到hivedata(命令 “ hadoop fs -put student.txt /hivedata ”)。
(2)、在hive命令行下载数据(命令 “ load data inpath'/hivedata/student.txt' into table student; ”)。
(3)、查看数据(命令 “ select * from student; ”)。
2、创建外部表语法:
(1)、新建teacher.txt文本,添加内容后,并用Xftp复制到/root目录下,之后输入命令上传到hivedata文件夹下(命令 “ hadoop fs -put teacher.txt /hivedata ”)。
(2)、创建外部表例子如下:
create external table teacher(id int,name string,age int,address string)
row format delimited
fields terminated by'\t'
location 'hdfs://master:9000/hivedata';
(3)查看数据(命令 “ select * from teacher; ”)
3、分区
(1)先输入一下代码优化:
set hive.exec.mode.local.auto=true;
set hive.exec.mode.local.auto=true;
set hive.exec.mode.local.auto=true;
set mapred.child.java.opts=-Xmx1024m;
set mapreduce.map.java.opts=-Xmx1310m;
set yarn.app.mapreduce.am.command-opts=-Xmx2457m;
set mapreduce.reduce.java.opts=-Xmx2620m;
(2)查看数据库:
show databases;
(3) 创建数据库:
create database tianqu;
create database if not exists tianqu2;
(4)显示数据库信息:
describe database tianqu;
(5)切换数据库:
use tianqu;
(6)创建表:
create table emp3 (id int, name string) partitioned by (city string) row format delimited fields terminated by '\t';
(7)添加数据:
load data local inpath '/root/data.txt' into table emp3 partition(city='shanghai');
(8)查看表的所有分区 :
show partitions emp3;
(9)添加新的分区值:
alter table emp3 add partition (city='tongren');
(10)删除分区:
alter table emp3 drop partition (city='beijing');
/* ------------------- 反爬声明o(*▽*)咻咻咻 --------------------
作者: 杨木发
版权声明:
本文为博主倾情原创文章,整篇转载请附上源文链接!
如果觉得本文对你有所收获,你的请评论点赞 与
合理优质的转发也将是鼓励支持我继续创作的动力,
更多精彩可百度搜索 杨木发 或:
个人网站: www.yangmufa.com ,
开源中国: https://my.oschina.net/yangmufa ,
Gitee: https://gitee.com/yangmufa ,
GitHub: https://github.com/yangmufa 。
坚持创作 善于总结 开源共享 高质进步。
------------------- 反爬声明o(*▽*)咻咻咻 -------------------- */