前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置Hive实验环境(三)远程部署

配置Hive实验环境(三)远程部署

原创
作者头像
esse LL
修改2024-03-15 12:54:41
3820
修改2024-03-15 12:54:41
举报
文章被收录于专栏:操作系统实验

hive setup with remote mysql

1. 设置远程主机和本地主机

准备两台主机,一台作为本地主机,另一台作为远程主机,设置局域网

分别在两台主机上查看局域网地址:

代码语言:bash
复制
ifconfig | grep inet

查出来很多个inet地址,我们要用的是192开头的局域网地址

经过查询,两台主机的地址分别是192.168.56.105192.168.56.106,那么105作为本地,106作为远程

2. 操作远程主机

2.1 下载安装数据库

在远程主机安装MySQL数据库:

代码语言:bash
复制
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
sudo rpm -e --nodeps mariadb-connector-c-config
sudo rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
yum -y install mysql-community-server --nogpgcheck

启动数据库服务:

代码语言:bash
复制
systemctl start mysqld.service

验证是否正常启动:systemctl status mysqld.service,出现绿色的active后按q退出

代码语言:bash
复制
grep "password" /var/log/mysqld.log
mysql -uroot -p # 粘贴上临时密码,按回车继续

2.2 设置密码和连接权限

代码语言:sql
复制
set global validate_password_policy=0;  #修改密码安全策略为低(只校验密码长度,至少8位)
set global validate_password_length=4; #密码最少4位
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; # 修改密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

设置完毕输入quit退出

代码语言:bash
复制
# 输入密码123456登陆
mysql -h 192.168.56.106 -u root -p

可以正常连接后,输入quit退出

至此已经完成了远程主机的设置,接下来的过程全部都在本地主机上完成


3. 操作本地主机

重要 切到本地主机再继续

3.1 测试连接远程MySQL

切到本地主机,测试能否连通远程主机上的mysql服务:

代码语言:bash
复制
ping 192.168.56.106 # 测试后按Ctrl C退出
yum install netcat -y # 可能需要先安装nc程序,有的系统不用
# nc -zv 192.168.56.106 3306
nc -v 192.168.56.106 3306

参考效果:

issue:连接被拒绝

连接被拒绝的情况下可以尝试调整远程主机的防火墙

代码语言:bash
复制
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

然后回到本地主机再次尝试nc命令进行连接,成功连接后退出按Ctrl-C

3.2 程序安装和环境变量

安装JDK和Hadoop,命令和前两次实训有点差别

代码语言:bash
复制
yum -y install java-1.8.0-openjdk-devel
cd ~ # 如果切到别的目录了就先切换到家目录
wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz --no-check-certificate
tar -xzvf ~/hadoop-2.10.2.tar.gz -C /opt
mv /opt/hadoop-2.10.2 /opt/hadoop # 重命名
echo 'export HADOOP_HOME=/opt/hadoop/' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile
source /etc/profile

重要:还剩两行命令,根据所使用的操作系统选好后执行,不能都执行

如果用的是centos:

代码语言:bash
复制
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64" >> /opt/hadoop/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64" >> /opt/hadoop/etc/hadoop/hadoop-env.sh

如果用的是fedora:

代码语言:bash
复制
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-2.fc37.x86_64" >> /opt/hadoop/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-2.fc37.x86_64" >> /opt/hadoop/etc/hadoop/hadoop-env.sh

3.3 配置伪分布Hadoop

修改两个xml配置文件:

代码语言:bash
复制
vi /opt/hadoop/etc/hadoop/core-site.xml
代码语言:xml
复制
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/hadoop/tmp</value>
        <description>location to store temporary files</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
代码语言:bash
复制
vi /opt/hadoop/etc/hadoop/hdfs-site.xml
代码语言:xml
复制
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/hadoop/tmp/dfs/data</value>
    </property>
代码语言:bash
复制
hdfs namenode -format

3.4 配置公钥验证登录

设置公钥验证登陆:

代码语言:bash
复制
ssh-keygen -t rsa
# 按回车,密码留空不用输入
代码语言:bash
复制
passwd # 重置密码,如果记得密码的话可以跳过这个命令
代码语言:bash
复制
ssh-copy-id localhost
# 输入yes进入下一步,输入刚刚设定的密码

3.5 启动HDFS进程

代码语言:bash
复制
start-dfs.sh
代码语言:bash
复制
jps
代码语言:bash
复制
hadoop fs -mkdir       /tmp
hadoop fs -mkdir -p    /user/hive/warehouse
hadoop fs -chmod g+w   /tmp
hadoop fs -chmod g+w   /user/hive/warehouse

3.6 安装Hive程序

代码语言:bash
复制
wget https://mirrors.bfsu.edu.cn/apache/hive/hive-2.3.9/apache-hive-2.3.9-bin.tar.gz --no-check-certificate
tar -xzvf apache-hive-2.3.9-bin.tar.gz -C /opt/
mv /opt/apache-hive-2.3.9-bin/ /opt/hive
echo 'export HIVE_HOME=/opt/hive/' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile

如果用的是centos:

代码语言:bash
复制
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64" >> /opt/hive/conf/hive-env.sh

如果用的是fedora:

代码语言:bash
复制
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-2.fc37.x86_64" >> /opt/hive/conf/hive-env.sh

3.7 配置Hive参数

代码语言:bash
复制
cd /opt/hive
# 这里不用本地部署中的拷贝操作,而是建一个新的文件使用
vi conf/hive-site.xml
代码语言:xml
复制
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.56.106:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</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.local</name>
        <value>false</value> 
    </property>
    <property>  
        <name>hive.server2.thrift.port</name>  
        <value>10000</value>  
    </property>  
    <property>  
        <name>hive.server2.thrift.bind.host</name>  
        <value>127.0.0.1</value>  
    </property>
    <property>  
        <name>hive.metastore.uris</name>
        <value>thrift://127.0.0.1:9083</value> 
    </property>
    <!-- 具体参考课本32-33页 -->
</configuration>

在配置文件中设置远程主机的IP地址:

3.8 配置JDBC连接

代码语言:bash
复制
cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7-x86_64/mysql-connector-java-8.0.30-1.el7.noarch.rpm  --no-check-certificate
rpm2cpio mysql-connector-java-8.0.30-1.el7.noarch.rpm | cpio -idmv
cp ./usr/share/java/mysql-connector-java.jar $HIVE_HOME/lib

3.9 使用远程MySQL初始化元数据库

代码语言:bash
复制
# 初始化元数据库:
schematool -initSchema -dbType mysql

参考效果:

3.10 启动Hive的两个进程

启动hive服务:

代码语言:bash
复制
hive --service metastore & # 使进程在后台运行
# 课本33页截图是在前台运行

前一个命令需要几秒钟的时间就绪,稍后再执行第二个命令:

代码语言:bash
复制
hive --service hiveserver2 &

查看后台任务:

代码语言:bash
复制
jobs

参考效果:后台有两个任务,而且都在运行中

4. 连接HIve

新建连接:

代码语言:bash
复制
hive
代码语言:sql
复制
show databases;

测试建库建表:

代码语言:sql
复制
create database if not exists z3;
create table if not exists z3.client(
    id int,
    name string,
    phone_number string,
    vip_rank int,
    balance int
) comment '张三的客户表,用来存在张三的网站上充了会员的账户,有手机号码、会员等级、账户余额等信息'
row format delimited
fields terminated by ',';
use z3;
desc client;

退出输入quit;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hive setup with remote mysql
    • 1. 设置远程主机和本地主机
      • 2. 操作远程主机
        • 2.1 下载安装数据库
        • 2.2 设置密码和连接权限
      • 3. 操作本地主机
        • 3.1 测试连接远程MySQL
        • 3.2 程序安装和环境变量
        • 3.3 配置伪分布Hadoop
        • 3.4 配置公钥验证登录
        • 3.5 启动HDFS进程
        • 3.6 安装Hive程序
        • 3.7 配置Hive参数
        • 3.8 配置JDBC连接
        • 3.9 使用远程MySQL初始化元数据库
        • 3.10 启动Hive的两个进程
      • 4. 连接HIve
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档