Hadoop+Hive+Mysql环境搭建
来源:互联网 发布:儿童听故事软件 编辑:程序博客网 时间:2024/06/07 22:35
1、了解
学习链接:
http://hadoop.apache.org/
http://spark.apache.org/
http://hive.apache.org/
https://github.com/apache/spark/tree/master/examples/src/main/java/org/apache/spark/examples
1、hive是一个数据仓库
2、hive基于hadoop。
总结为:hive是基于hadoop的数据仓库。
Hive是建立在Hadoop文件系统上的数据仓库架构,并对存储在HDFS中的数据进行分析和管理。(即对存储在HDFS中的数据进行分析和管理,我们不想使用手工方式而是建立一个工具,而这个工具就是hive)
Hive定义了一种类似SQL的查询语言HQL,用户可以直接利用Hive来查询数据。其允许熟悉 MapReduce 开发者开发自定义的mappers和reducers来处理内建的mappers和reducers无法完成的复杂分析工作。Hive允许用户编写自定义的函数UDF在查询中使用。Hive中有3种UDF:User Defined Functions(UDF)、User Defined Aggregation Functions(UDAF)、User Defined Table Generating Functions(UDTF)。
Hive是一个成功的Apache项目,很多组织把它用作一个通用的、可伸缩的数据处理平台。Hive和传统的关系型数据库有很大的区别,Hive将外部的任务解析成一个MapReduce可执行计划,而启动MapReduce是一个高延迟的一件事,每次提交任务和执行任务都需要消耗很多时间,这也就决定Hive只能处理一些高延迟的应用(如果你想处理低延迟的应用可以考虑Hbase)。由于设计的目标不一样,Hive目前还不支持事务;不能对表数据进行修改(不能更新、删除、插入;只能通过文件追加数据、重新导入数据);不能对列建立索引(但是Hive支持索引的建立,但是不能提高Hive的查询速度。如果想提高Hive的查询速度,可以学习Hive的分区、桶的应用)。
hbase和hive的对比:
共同点:
1、hbase与hive都是架构在hadoop之上的,都是用hadoop作为底层存储。区别:
2、Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
3、在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。
4、Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。
5、Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。
6、hive借用hadoop的MapReduce来完成一些hive中的命令的执行。
7、hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
8、hbase是列存储。
9、hdfs作为底层存储,hdfs是存放文件的系统,而Hbase负责组织文件。
10、hive需要用到hdfs存储文件,需要用到MapReduce计算框架。
2、Jdk安装
下载地址:http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
3、Hadoop搭建
准备
1、增加新的用户
adduser hadoop//添加一个名为hadoop的用户,该用户随意取 passwd hadoop //修改密码
2、给用户hadoop增加root权限,切换到root下使用命令visudo
在root ALL=(ALL) ALL下面增加hadoop ALL=(ALL) ALL
3、修改主机名
vim /etc/sysconfig/networkNETWORKING=yesHOSTNAME=hadoop
sudo hostname hadoop 让修改生效,无需重启
4、修改主机名和IP的映射关系
vim /etc/hosts192.168.205.132(本机linuxIP地址) hadoop
5、关闭防火墙
查看防火墙状态
service iptables status
关闭防火墙
service iptables stop
下载hadoop
1、使用wget直接下载:
wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-2.7.1.tar.gz
2、解压:
tar -zxvf hadoop-2.7.1.tar.gz
3、修改配置文件:
进入 hadoop2.7.1/etc/hadoop/目录下,hadoop-env.sh、core-site.xml、mapred-site.xml.template、hdfs-site.xml这几个文件需要配置:
a、修改core-site.xml 配置:其中的hadoop.tmp.dir的路径可以根据自己的习惯进行设置。
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>hadoop.tmp.dir</name><value>/home/liqqc/app/hadoop_conf/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>
b、 mapred-site.xml.template配置
<configuration><property><name>mapred.job.tracker</name><value>localhost:9001</value></property></configuration>
c、hdfs-site.xml配置:其中dfs.namenode.name.dir和dfs.datanode.data.dir的路径可以自由设置,最好在hadoop.tmp.dir的目录下面。(注意:如果运行Hadoop的时候发现找不到jdk,可以直接将jdk的路径放置在hadoop-env.sh里面,具体如下export JAVA_HOME=”/usr/java/jdk1.8.0_141/”。
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/home/liqqc/app/hadoop_conf/tmp/dfs</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/liqqc/app/hadoop_conf/tmp/data</value></property></configuration>
运行hadoop
1、进入hadoop-2.7.1/bin目录下,执行命令
bin/hdfs namenode -format
出现如下结果说明初始化执行成功:
17/07/28 19:37:31 INFO namenode.FSImage: Allocated new BlockPoolId: BP-865909897-127.0.0.1-150129585109317/07/28 19:37:31 INFO common.Storage: Storage directory /home/liqqc/app/hadoop_conf/tmp/dfs has been successfully formatted.17/07/28 19:37:31 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 017/07/28 19:37:31 INFO util.ExitUtil: Exiting with status 017/07/28 19:37:31 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1************************************************************/
2、开启 NameNode 和 DataNode 进程
sbin/start-all.sh
执行jps命令查看进程状态:
[root@localhost sbin]# jps3939 ResourceManager3786 SecondaryNameNode4044 NodeManager4252 Jps3501 NameNode
3、查看web界面
在浏览器中输入 http://localhost:50070 ,即可查看相关信息。
4、Hive安装
1、到下载地址http://apache.fayea.com/hive/,下载apache-Hive-2.1.1-bin.tar.gz,解压
tar -xzvf apache-hive-2.1.1-bin.tar.gz
2、配置环境变量,
vi /etc/profile
export HIVE_HOME=/home/liqqc/app/apache-hive-2.1.1-binexport PATH=$PATH:$HIVE_HOME/bin
3、配置hive参数
拷贝模板配置
cp hive-default.xml.template hive-default.xml
cp hive-env.sh.template hive-env.sh
创建hive-site.xml
touch hive-site.xml
配置hive-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_141export HIVE_HOME=/home/liqqc/app/apache-hive-2.1.1-binexport HADOOP_HOME=/home/liqqc/app/hadoop-2.7.1
配置hive-site.xml
创建临时文件:在apache-hive-2.1.1-bin文件夹下创建tmp文件夹
<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost: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></property><property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value></property><property> <name>javax.jdo.option.ConnectionPassword</name> <value>hadoop</value></property><property> <name>hive.querylog.location</name> <value>/home/liqqc/app/apache-hive-2.1.1-bin/tmp</value> </property> <property> <name>hive.exec.local.scratchdir</name> <value>/home/liqqc/app/apache-hive-2.1.1-bin/tmp</value> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/home/liqqc/app/apache-hive-2.1.1-bin/tmp</value> </property><property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value></property></configuration>
4、上传mysql驱动jar
下载mysql驱动文件mysql-connector-java-5.1.7-bin.jar,并上传到到/apache-hive-2.1.1-bin/lib目录下。
5、初始化hive
命令:schematool -initSchema -dbType mysql
最后显示schemaTool completed,没有报错就成功了。
6、启动hive
输入命令:hive
5、mysql安装
安装命令:
yum install mysql-server
安装完成后启动:
service m:ysqld start
进入mysql:
mysql>mysql
如果报错:
mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’
进行如下修改:
use mysql; update user set password=PASSWORD("root")where user="root"; flush privileges; quit service mysqld restart 执行 mysql -uroot –proot 查看是否成功
创建hive数据库:
创建Hive数据库: mysql>create database hive;
6、问题
Ubuntu14.0 下Hadoop启动报Error: JAVA_HOME is not set and could not be found解决办法http://blog.csdn.net/u283056051/article/details/45501983
hiveserver2启动:javax.jdo.JDODataStoreException: Error executing SQL query “select “DB_ID” from “DBS” http://m.blog.csdn.net/quiet_girl/article/details/75209070
hive 部署需要注意的几点以及Version information not found 错误解决办法http://blog.csdn.net/youngqj/article/details/19987727
Hadoop namenode无法启动http://blog.csdn.net/bychjzh/article/details/7830508
启动hadoop 2.6遇到的datanode启动不了http://blog.csdn.net/zhangt85/article/details/42078347
- Hadoop+Hive+Mysql环境搭建
- Hadoop(二)HIVE环境搭建(HIVE连接 MYSQL)
- Hadoop+Hive环境搭建
- linux环境下的hive mysql hadoop环境搭建
- hadoop+hive+fuse环境搭建
- hadoop+hive+fuse环境搭建
- Hadoop+Hive环境的搭建
- hadoop+hive-完全分布式环境搭建
- hadoop-企业版环境搭建(五)-安装Hive
- Hadoop和Hive单机环境搭建
- Ubuntu 下 Hadoop/Hive 环境搭建
- hadoop+spark+hive+mysql集群搭建过程
- 《Programming Hive》读书笔记(一)Hadoop和hive环境搭建
- 记hadoop hive mysql环境配置
- HIVE+MYSQL+HADOOP环境配置(用于学习)
- HIVE+mysql环境搭建及简单应用
- Hive 本地环境搭建(mysql)
- Ubuntu16.04中Mysql&Hive环境搭建
- 棋盘问题
- linux下FTP拒绝(ftp: connect: Connection refused)
- react-navigation中修改navigation Options所对应的属性
- H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
- 列表的常用操作
- Hadoop+Hive+Mysql环境搭建
- python中Image类处理图像 缩放、旋转与翻转
- 开端
- 共享内存使用方法
- 字幕批量翻译 字体定制
- CentOS下VMware用桥接模式,静态ip上外网
- Android如何获得当前应用显示的Activity
- JavaScript定时任务
- Cardiologist-Level Arrhythmia Detection with Convolutional Neural Networks2017