大数据平台hive原生搭建教程
环境准备
centos 7.1系统
需要三台云主机:
master(8) 作为 client 客户端 slave1(9) 作为 hive server 服务器端 slave2(10) 安装 mysql server
安装包使用的是官网下载的
将hive上传到master ,mysql上传到lib
搭建开始
slave2节点执行:
0x1.安装 EPEL 源:
yum -y install epel-release
0x2.安装 MySQL server 包,下载源安装包:
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
注意如果报错没找到命令就先安装wget命令
0x3安装源:
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
查看是否安装成功:cd /etc/yum.repos.d
0x4启动mysql
重载所有修改过的配置文件:systemctl daemon-reload
开启服务:systemctl start mysqld
开机自启:systemctl enable mysqld
获取初密码:grep password /var/log/mysqld.log
登陆 MySQL:mysql -uroot -p
0x5更改数据库安全策略
设置密码强度为低级:set global validate_password_policy= 0;
设置密码长度:set global validate_password_length=4;
修改本地密码:alter user 'root'@'localhost' identified by '123456';
退出:exit
ps:密码强度分级如下: 0 为 low 级别,只检查长度; 1 为 medium 级别(默认),符合长度为 8,且必须含有数字,大小写,特殊 字符; 2 为 strong 级别,密码难度更大一些,需要包括字典文件。 密码长度最低长为 4,当设置长度为 1、2、3 时,其长度依然为 4。
0x6 设置远程登录
以新密码登陆 MySQL:mysql -uroot -p123456
创建用户:create user 'root'@'%' identified by '123456';
允许远程连接:grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限:flush privileges;
0x7Slave1 上安装 hive
master 中操作如下:
mkdir -p /usr/hive
tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/
然后再slave1节点也创建hive文件夹
scp -r /usr/hive/apache-hive-2.1.1-bin [email protected]:/usr/hive/
0x8修改环境变量
修改/etc/profile 文件设置 hive 环境变量。(master 和 slave1 都执 )。
vi /etc/profile
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
0x9修改配置文件
将上传到lib的mysql-connector-java-5.1.5-bin.jar分发到slave1
scp /lib/mysql-connector-java-5.1.5-bin.jar [email protected]:/usr/hive/apache-hive-2.1.1-bin/lib
然后修改slave1 的配置文件--hive-env.sh(在/usr/hive/apache-hive-2.1.1-bin/conf文件)
生成配置文件
cp hive-env.sh.template hive-env.sh
在配置文件添加:HADOOP_HOME=/usr/hadoop/hadoop-2.7.3(根据自己设置来)
创建hive-site.xml文件
[[email protected] conf]# vi hive-site.xml
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value>
</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>123456</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
在master节点配置客户端
由于客户端需要和 Hadoop 通信,所以需要更改 Hadoop 中 jline 的版本。即 保留一个高版本的 jline jar 包,从 hive 的 lib 包中拷贝到 Hadoop 中 lib 位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。
cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
同样修改 hive-env.sh
[[email protected] conf]# vi hive-site.xml
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value>
</property>
</configuration>
0x10 启动hive
在slave1节点输入bin/hive(在/usr/hive/apache-hive-2.1.1-bin输入)
成功运行就一直是这个界面
同样在master输入 bin/hive
成功运行会显示
测试 hive 是否启动成功: hive>show databases;
输入jps显示这个