安装hive(我的hadoop版本3.1.2)
安装hive之前要先安装下mysql,选择了mysql-5.7.x版本
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
下载在当前目录下,并在当前目录下执行命令
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
为了方便,把/usr/local下mysql的文件名重命名下
mv /usr/local/mysql-xx.. /usr/local/mysql/
创建目录data mkdir -p /usr/local/mysql/data
据说,为mysql创建专门的用户名以及用户组会比较好
groupadd mysql
useradd -r -g mysql mysql
//-r Create a system account
修改mysql目录所属
chown -R mysql:mysql /usr/local/mysql/
//应该是这个,只要保证文件所有者跟组变成mysql即可
修改服务
vi /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
修改my.conf
配置:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
看到文件里面有其他的配置前面没加#,加上#注释掉!!!
配置:/etc/profile 为了能全局使用
#mysql environment
export MYSQL_HOME=/usr/local/mysql
安装依赖包
yum -y install numactl.x86_64
yum -y install libaio
开启mysql服务
service mysql start
永久开启:systemctl start mysql
关闭
service mysql stop
systemctl stop mysql
初始化进入mysql:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
会生成随机密码,在提示最后面...for root@...: xxxxx(就是这个xxxxx)
进入mysql: mysql -u root -p
Enter password: xxxxx
修改密码:set password = password('新密码');//不要空密码,不要空密码,不要空密码
或者 set password for 'root'@'localhost' =password('password');
创建数据库
create database hive;
退出:quit
据说mysql5.7.6以后的版本已经没有user表中password字段和password()方法
密码改完要记得,忘记了的话,https://blog.csdn.net/wen_z_j/article/details/80729489
装hive:官网下载hive 3.1.1
https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.1/
选bin的压缩包吧
下完压缩包去linux所在目录 tar -zxvf apache-hive-3.1.1-bin.tar.gz -C /usr/local/
同理,文件名要是太长太难记了就改吧,不改问题也不大
/etc/profile
#hive environment
export HIVE_HOME=/usr/local/apache-hive-3.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
在/usr/local/apache-hive-3.1.1-bin/conf下有个 hive-env.sh.template
cp hive-env.sh.template hive-env.sh
vi hive-env.sh //找到以下地方配置
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/hadoop-3.1.2
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/usr/local/apache-hive-3.1.1-bin/conf
# Folder containing extra libraries required for hive compilation/execution can be controlled by:
# export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-3.1.1-bin/lib
vi hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>你的mysql密码</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
</configuration>
下载驱动:
https://dev.mysql.com/downloads/connector/j/
Select Operating System: Platform Independent (pick 它!!)
tar -zxvf mysql-connector-java-8.0.15.tar.gz -C /usr/local/
cp mysql-connector-java-8.0.15.jar /usr/local/apache-hive-3.1.1/lib
删除slf4j-log4j:不删除会报错,告诉你haddoop有一个,hive又有一个
rm -rf /usr/local/apache-hive-3.1.1-bin/lib/slf4j-log4j.....jar好像是这样,[tab]补全下
然后去mysql -u root -p
- mysql> grant all on *.* to root@localhost identified by '你mysql的密码'; #将所有数据库的所有表的所有权限赋给用户
- mysql> flush privileges; #刷新mysql系统权限关系表
- 退出:quit
linux 命令行:schematool -dbType mysql -initSchema
启动hadoop: start-all.sh
启动hive:hive
hive> show databases;
OK
default
hive>create database student;
成功创建,应该没什么大问题了
-----------------------------------------------------------------------------------------------
mongodb :大部分按照这位博主的https://www.cnblogs.com/saryli/p/9822819.html
记得创建相应目录
在创建用户的时候:
>use admin
switched to db admin
> db.createUser({user:"dba",pwd:"dba",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
如果报了错,no authorized之类的
>quit();
vi /usr/local/mongodb/bin,将其中的auth = true暂时改成false
然后再去添加用户
>use admin
switched to db admin
> db.createUser({user:"dba",pwd:"dba",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
>db.auth('dba','dba')
然后再把auth改成true即可
续:19.04.17
现在发现这样子还没能show collections,在以下博客中找到解决方法