(一)hive远程模式搭建
一.集群规划
Name | Master | Slave1 | Slave2 |
IP | 192.168.2.98 | 192.168.2.99 | 192.168.2.100 |
Jdk版本 | 1.8.0.171 | 1.8.0.171 | 1.8.0.171 |
Hadoop版本 | 2.7.3 | 2.7.3 | 2.7.3 |
Hive版本 | 2.1.1(客户端) | 2.1.1(服务端) | N |
Mysql版本 | N | N | 5.7.18(数据库) |
二.安装部署Mysql
2.1.安装MySQL(离线安装)
在Hadoop集群启动成功下执行。tar包链接: https://pan.baidu.com/s/1hwLPI0eUwkpGmP5ROqM6Lw 提取码: k7m3
如果没有搭建Hadoop集群,可移至Hadoop全分布式进行搭建。
在主节点Master上执行。 # scp -r /opt/soft/mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar root@slave2:/usr/ 发安装包 转至子节点slave2操作 # rpm -qa|grep mariadb 检查:这是离线包安装方式所以要检查并且卸载mariadb # rpm -qa|grep mariadb|xargs rpm -e --nodeps 卸载 # mkdir /usr/mysql 建立MySQL目录 # tar -xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C /usr/mysql 解压 # cd /usr/mysql 进入MySQL目录下依次执行安装 # rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm # rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm # rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm # rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm # rpm -ivh mysql-community-devel-5.7.18-1.el7.x86_64.rpm # rpm -ivh mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm # systemctl start mysqld 启动MySQL服务 # systemctl enable mysqld 开机自启 # grep "temporary p" /var/log/mysqld.log 获取MySQL的临时密码复制密码 # mysql -uroot -p临时密码 # set global validate_password_policy=0; 修改密码强度为最低 # set global validate_password_length=4; 修改密码的长度为4 # alter user root@"localhost" identified by "master"; 修改root的密码为master # use mysql; 切换到MySQL数据库下 # update user set host="%" where user="root"; 修改host为%表示让所有结点机器能连接 # flush privileges; 刷新 # \q 退出
三.安装Hive(客户端、服务端)
3.1.客户端(Master)
节点master执行 # mkdir /usr/hive # tar -zxvf /opt/soft/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/ 解压 # cp /opt/soft/mysql-connector-java-5.1.47-bin.jar /usr/hive/apache-hive-2.1.1-bin/lib/ # vim /etc/profile 添加hive环境变量 export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin export PATH=$PATH:$HIVE_HOME/bin # source /etc/profile 生效环境变量 # hive --version 验证hive显示版本则已安装 # cd /usr/hive/apache-hive-2.1.1-bin/bin/ 进入 # vim hive-config.sh 配置1添加 – 保存退出 export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3 hadoop安装路径 export JAVA_HOME=/usr/java/jdk1.8.0_171 jdk安装路径 export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin hive的安装路径 # scp -r /usr/hive root@slave1:/usr/ 分发hive至节点slave1用作hive服务端配置) # scp -r /etc/profile root@slave1:/etc/ 将环境变量也分发往节点1(hive服务端)覆盖 # cd /usr/hive/apache-hive-2.1.1-bin/conf/ 客户端(Master)进入 # cp hive-default.xml.template hive-site.xml & vim hive-site.xml 配置1 客户端(Master)添加如下 <!-- 设置hive是否显示数据库名称 -->
<property> <name>hive.cli.print.current.db</name> <value>false</value> </property>
<!-- 设置hive是否显示表头 --> <property> <name>hive.cli.print.header</name> <value>true</value>
</property> <property>
<!-- 设置关闭本地metastore --> <name>hive.metastore.local</name> <value>false</value> </property>
<!-- hive服务端地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://192.168.2.99:9083</value> </property>
3.2.服务端(slave1)
转至于服务端(Slave1)
# cp hive-default.xml.template hive-site.xml & vim hive-site.xml 配置2 slave1(服务端) 在<configuration> </configuration> 间添入 <!-- 配置连接Mysql地址 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> </property> <!-- 配置驱动 --> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <!-- Mysql用户名 --> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>Username to use against metastore database</description> </property> <!-- Mysql用户密码 --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>master</value> <description>password to use against metastore database</description> </property> <!-- Hive暂存目录 --> <property> <name>hive.exec.local.scratchdir</name> <value>/usr/hive/apache-hive-2.1.1-bin/tmp</value> <description>Local scratch space for Hive jobs</description> </property> <!-- Hive数据目录 --> <property> <name>hive.downloaded.resources.dir</name> <value>/usr/hive/apache-hive-2.1.1-bin/tmp</value> <description>Temporary local directory for added resources in the remote file system.</description> </property> <!-- Hive日志目录 --> <property> <name>hive.server2.logging.operation.log.location</name> <value>/usr/hive/apache-hive-2.1.1-bin/tmp</value> <description>Top level directory where operation logs are stored if logging functionality is enabled</description> </property> <!-- 关闭版本验证 --> <property> <name>hive.metastore.schema.verification</name> <value>true</value> </property>
3.3.最后启动
# source /etc/profile 刷新客户端(Master)和服务端(Slave1)的环境变量 # schematool -dbType mysql --initSchema Slave1(服务端执行初始化) conf下输hive进 # hive --service metastore & 服务端(Slave1)启动metastore服务。过程会卡住不动注意这不是报错。回车可退出卡动。 # jps 执行jps查看服务 # hive 主结点master(客户端)成功远程登陆Mysql