Hive
一,Hive的概念
1,hive是什么:
hive相当于mysql,可以用来在Hadoop中进行增删改查,但其容量比MySQL大很多
2.hive本质:
将HQL转化位Mapreduce的程序
1)Hive处理的数据存储在HDFS
2)Hive分析数据底层的实现是MapReduce
3)执行程序运行在Yarn上
所以,打开hive前,一般要打开Hadoop集群以及MySQL
3.hive的优缺点
优点:
- 适合处理大数据
- 支持用户自定义函数
- 使用sql语法
缺点:
二,Hive安装
2.1 hive下载安装
hive官网:http://hive.apache.org/
同样是下载,解压,更改名字
tar -zxvf apache-hive-2.2.0-bin.tar.gz -c /Hadoop/hive 解压hive到/Hadoop的hive目录下(hive目录是我自己建立的)
cd /Hadoop/hive 进入到hive目录下
mv apache-hive-2.2.0-bin/ hive2.2 在hive的当前目录下更改hive的文件名为hive2.2
2.2 hive的配置
1.修改目录名:
mv hive-env.sh.template hive-env.sh 修改hive2.2下面的conf目录下的hive-env.sh.template名称为hive-env.sh
注:一般更改目录文件都是在conf下面
进入hive中的conf目录下进行配置
2.配置hive-env.sh文件:
HADOOP_HOME=/Hadoop/hadoop-2.6.0-cdh5.5.5:配置HADOOP_HOME路径
export HIVE_CONF_DIR=/Hadoop/hive/hive2.2/conf:配置HIVE_CONF_DIR路径
注:使用自己的Hadoop以及hive的路径哦
注:hive的路径是在conf下面的
注:要把注释去掉
3.启动jps节点:
在Hadoop中的sbin目录下启动节点
(cd Hadoop/hadoop-2.6.0-cdh5.5.5/sbin/)
./start-all.sh 启动所有节点的命令
./start-dfs.sh 启动namenode和datanode
./start-yarn.sh 启动yarn节点
4.关闭jps节点:
./stop-all.sh 关闭所有节点
2.3 Hadoop集群配置:
- 前提:
必须启动hdfs和yarn - 操作:
bin/hadoop fs -mkdir /tmp 在Hadoop集群下的根目录下创建tmp文件
可以进入自己的Hadoop集群localhost:50070下查看文件是否创建成功
注:一般开头出翔exception,error这种单词,表示报错
但是,如果出现wane(警告)这种单词,程序依旧可以向下执行的
3.启动hive
打开Hadoop集群
.\start:在当前目录下直接启动
bin/start:在bin文件下的start
执行start-all.sh
在hadoop的sbin目录下输入命令:./start-all.sh
查看是否有六个进程
问题:
节点问题:
1,namenode无法启动
2,datanode无法启动
原因:多次格式化
解决办法:进入logs文件删除原来的文件,再重新格式化
进入logs目录,输入命令,删掉logs下所有文件
回到Hadoop目录下的sbin目录下,关闭服务,然后再格式化
注意查看关键词,最后出现successfully才算正是格式化成功
2.hadoop无法访问50070端口
https://blog.csdn.net/Neone__u/article/details/53741786
补充:
1.后缀名:
后缀名为.cmd:windows中用
后缀名为.sh:Linux中用
2,启动命令:
sh/start+其他内容:启动东西
sbin/start-all.sh于 ./start-all.sh的区别:
sbin/start-all.sh表示在当前目录的sbin目录下启动所有进程
./start-all.sh表示在当前目录下启动所有进程
其实没有什么差别 [笑哭][笑哭]
比如,需要在Hadoop目录下的sbin目录中启动节点
可以在Hadoop目录下输入sbin/start-all.sh命令
也可以在Hadoop的sbin目录下输入./start-all.sh命令
3.杀掉进程
4.最后操作:
当最后退出虚拟机的时候,记得关闭进程(namenode,yarn那种,而且最好反着关)
然后再退出虚拟机