hive-------------mysql
master:
1. 修改hosts
vim /etc/hosts
xxx.xxx.xxx.xxx master master.root
xxx.xxx.xxx.xxx slave1 slave1.root
xxx.xxx.xxx.xxx slave2 slave2.root
分发给slave1 slave2
scp /etc/hosts root@slave1:/etc/hosts
scp /etc/hosts root@slave2:/etc/hosts
master /slave1 /slave2:
2. 三台机器全部开zookeeper
/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
/usr/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
master:
3. master打开hadoop
实验中我们选用hive的远程模式,slave2安装mysql server用于存放元数据,slave1作为hive server作为thrift 服务器,master作为client客户端进行操作
/usr/hadoop/hadoop-2.7.3/sbin/start-all.sh
slave2:
4. slave2 配置mysql
yum -y install mysql-community-server #安装SQL
systemctl daemon-reload #重载配置文件
systemctl start mysqld #启动
systemctl enable mysqld #开机自启
grep "temporary password" /var/log/mysqld.log #获取随机生成密码
mysql -uroot -p #登录
set global validate_password_policy=0; #强度降级
set global validate_password_length=4; #密码长度
alter user 'root'@'localhost' identified by '123456';
\q #退出
设置远程登录
mysql -uroot -p123456
create user 'root'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
5. master和slave1配置并分发hive
master:
解压安装hive
cd /opt/soft
mkdir -p /usr/hive
tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/
配置环境变量
vim /etc/profile
#set hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile
分发软件包
scp -r /usr/hive root@slave1:/usr/
scp -r /etc/profile root@slave1:/etc/
slave1:
source /etc/profile
6. slave2 复制sql的一个包到slave1 ,为了通讯方便
slave2:
ls /lib
scp /lib/mysql-connector-java-5.1.5-bin.jar root@slave1:/usr/hive/apache-hive-2.1.1-bin/lib
7. 配置slave1的hive
slave1:
cd $HIVE_HOME/conf
ls
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
vim hive-site.xml
<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!-- 数据库连接JDBC的URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value> #连接MySQL所在的ip(主机名)及端口
</property>
<!-- 数据库连接driver,即MySQL驱动-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- MySQL数据库用户名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- MySQL数据库密码-->
<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>
</configuration>
8. 复制master的包到slave1(用于hadoop和hive通讯),配置master的hive
master:
cd $HIVE_HOME/conf
cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
vim hive-site.xml
<configuration>
<!-- Hive产生的元数据存放位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<!--- 使用本地服务连接Hive,默认为true-->
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<!-- 连接服务器-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://slave1:9083</value> #hive客户端通过thrift服务器服务连接MySQL数据库,这里的thrift服务器就是slave1的ip(主机名)
</property>
</configuration>
slave1:
9. 开启hive server
进入软件主目录
cd /usr/hive/apache-hive-2.1.1-bin
bin/hive --service metastore
master:
进入软件主目录
cd /usr/hive/apache-hive-2.1.1-bin
客户端启动hive
bin/hive
show databases;
复制master
jps