前提:
安装jdk
无密互通
安装zookeeper
安装hadoop
安装mysql
yum安装
mysql是做为元数据库,mysql安装在mater主机上
sudo yum install -y mysql mysql-server
sudo service mysqld start
sudo mysql
编译安装mysql
先下载mysql二进制安装包,版本随便挑
mysql安装包下载地址:http://mirrors.sohu.com/mysql/
参考文档:http://blog.csdn.net/t1dmzks/article/details/71374740
#创建数据存放目录 #解压文件 tar axf mysql-boost-5.7.18.tar.gz -C /usr/local/ #编译安装 cd mysql-5.7.18 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql / -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 / -DWITH_BOOST=boost -DDEFAULT_COLLATION=utf8_general_ci / -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 / -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb / -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1 #安装 make && make install && echo $? #修改权限 chown -R mysql.mysql /data/mysqldb chown -R mysql.mysql /usr/local/mysql 初始化mysql数据库 cd /usr/local/mysql ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql
注意框起来的那部分,是你的用户密码,现在mysql初始是有密码的
如果要重新初始化数据库就删除掉/data/mysqldb下的所有文件
rm -rf /data/mysqldb
修改
环境变量
在path中添加mysql的bin目录
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin |
source /etc/profile
查看mysql版本信息
mysql -V
修改my.cnf主配置文件
[mysqld] datadir=/data/mysqldb socket=/usr/local/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
复制启动脚本
cd /usr/local/mysql cp support-files/mysql.server /etc/init.d/mysqld |
启动mysql
service mysqld start |
设置开机启动
chkconfig –level 2345 mysqld on |
设置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
登录mysql并修改密码(登录密码在初始化数据的时候有提示)
mysql -uroot -p'8XeyEBg_yLj6' grant不能用 |
mysql> SET PASSWORD = PASSWORD('mysql'); |
ok,重新登录 |
mysql -uroot -pmysql |
没有password字段了 |
查看表结构 |
mysql> desc mysql.user; |
查看 select HOst,User,authentication_string from mysql.user; |
mysql.sys用户貌似是新添的mysql的system用户,密码*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE,翻译过来差不多就是没有设置密码,需要设置 |
通过support-files/mysqld_multi.server 可以轻松实现mysql多实例 参考:http://blog.csdn.net/miyatang/article/details/56846283 |
创建hive数据库
创建hive数据库
创建hadoop用户,并访问数据库授权(这里权限给高的,应该只给hive库的权限)
下载、安装hive
如果下载报错请用浏览器查看 http://mirror.bit.edu.cn/apache/hive下版本是否发生变更
mkdir /data
cd /data
wget http://mirrors.hust.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz
tar axf apache-hive-1.2.2-bin.tar.gz
修改环境变量
vim /etc/profile
export HIVE_HOME=/data/apache-hive-1.2.2-bin export PATH=$PATH:${HIVE_HOME}/bin |
source /etc/profile
chown –R hadoop:hadoop /data/apache-hive-1.2.2-bin
create database hive;
为hive创建相应的mysql账户,并赋予权限(上面弄了)
创建hive专用的元数据库(用上面的hadoop用户)
生成hive-site.xml主配置文件
cp hive-default.xml.template hive-site.xml
修改其中数据库连接参数
<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.ConnectionURL</name> <value>jdbc:mysql://192.168.3.58:3306/hive?characterEncoding=UTF-8</value> <description>JDBC connect string for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hadoop</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hadoop</value> <description>password to use against metastore database</description> </property> |
创建IO文件临时存放目录
mkdir ${HIVE_HOME}/iotmp
修改hive-site.xml中的参数
<property> <name>hive.querylog.location</name> <value>/data/apache-hive-1.2.2-bin/iotmp</value> <description>Location of Hive run time structured log file</description> </property> <property> <name>hive.exec.local.scratchdir</name> <value>/data/apache-hive-1.2.2-bin/iotmp</value> <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>/data/apache-hive-1.2.2-bin/iotmp</value> <description>Temporary local directory for added resources in the remote file system.</description> </property> |
将mysql-connector-java-5.1.21.jar驱动包,拷贝到 $HIVE_HOME/lib 目录下。
mysql-connector-java下载地址
http://mvnrepository.com/artifact/mysql/mysql-connector-java
启动hadoop集群(需要datanode和namenode)
启动mysql
启动hive
Logging initialized using configuration in jar:file:/data/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.properties是初始化日志模块,需要创建hive-log4j.properties文件
cd ${HIVE_HOME}/conf
cp hive-log4j.properties.template hive-log4j.properties
cp hive-exec-log4j.properties.template hive-exec-log4j.properties
修改 hive-log4j.properties文件指定log存放路径
vim hive-log4j.properties
hive.log.dir=/data/apache-hive-1.2.2-bin/log |
创建目录
mkdir /data/apache-hive-1.2.2-bin/log
多节点hive构建
hive是将数据存储在mysql和hdfs中,只需要使用相同的元数据
先安装单节点的hive
初始化hive元数据
schematool -dbType mysql -initSchema
cd ${HIVE_HOME}/conf
cp hive-env.sh.template hive-env.sh
在hive-env.sh中指定JAVA_HOME、HADOOP_HOME、HIVE_HOME和HIVE_CONF_DIR
# Set HADOOP_HOME to point to a specific hadoop install directory # HADOOP_HOME=${bin}/../../hadoop HADOOP_HOME=/data/hadoop JAVA_HOME=/usr/local/jdk HIVE_HOME=/data/apache-hive-1.2.2-bin # Hive Configuration Directory can be controlled by: # export HIVE_CONF_DIR= export HIVE_CONF_DIR=$HIVE_HOME/con |
将文件文件复制到其他的机器上
[hadoop@master data]$ scp -r apache-hive-1.2.2-bin slave1:/data
[hadoop@master data]$ scp -r apache-hive-1.2.2-bin slave2:/data
其他节点也需要修改/etc/profile文件
[root@master hadoop]# scp -r /etc/profile slave1:/etc/
[root@master hadoop]# scp -r /etc/profile slave2:/etc/
节点一启动metastore服务(会占用窗口,可用nohup)
[hadoop@master data]$ hive –service metastore
节点二启动metastore服务
[hadoop@slave1 /]$ source /etc/profile
[hadoop@slave1 /]$ hive –service metastore
节点三启动metastore服务
[hadoop@slave1 /]$ source /etc/profile
[hadoop@slave1 /]$ hive –service metastore
访问测试
创建一个测试表
create table test_hive (id bigint, name string) row format delimited fields terminated by '/t';
未完待续
参考文档:
hive安装与使用(推荐):http://www.cnblogs.com/zlslch/p/6039901.html
hive安装与部署:http://www.cnblogs.com/zlslch/p/6700695.html
Hive最新数据操作详解(超级详细):http://blog.csdn.net/yhao2014/article/details/46312469
Hive之import和export使用详解:http://www.cnblogs.com/wcwen1990/p/6845850.html
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/186743.html