hadoop spark hive 集群配置(五)hive-mysql centos7

本文详细介绍了一种将Hive与MySQL集成的部署方案,包括修改hosts文件、配置Zookeeper集群、安装与配置Hadoop、MySQL及Hive,以及设置远程数据库连接、环境变量和分发软件包等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hive-------------mysql

master:

1. 修改hosts

vim /etc/hosts


 
  1. xxx.xxx.xxx.xxx master master.root
  2. xxx.xxx.xxx.xxx slave1 slave1.root
  3. 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 #登录


 
  1. set global validate_password_policy=0; #强度降级
  2. set global validate_password_length=4; #密码长度
  3. alter user 'root'@'localhost' identified by '123456';
  4. \q #退出

设置远程登录

mysql -uroot -p123456


 
  1. create user 'root'@'%' identified by '123456';
  2. grant all privileges on *.* to 'root'@'%' with grant option;
  3. 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


 
  1. #set hive
  2. export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
  3. 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


 
  1. HADOOP_HOME=/usr/hadoop/hadoop-2.7.3

vim hive-site.xml


 
  1. <configuration>
  2. <!-- Hive产生的元数据存放位置-->
  3. <property>
  4. <name>hive.metastore.warehouse.dir</name>
  5. <value>/user/hive_remote/warehouse</value>
  6. </property>
  7. <!-- 数据库连接JDBC的URL地址-->
  8. <property>
  9. <name>javax.jdo.option.ConnectionURL</name>
  10. <value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true</value> #连接MySQL所在的ip(主机名)及端口
  11. </property>
  12. <!-- 数据库连接driver,即MySQL驱动-->
  13. <property>
  14. <name>javax.jdo.option.ConnectionDriverName</name>
  15. <value>com.mysql.jdbc.Driver</value>
  16. </property>
  17. <!-- MySQL数据库用户名-->
  18. <property>
  19. <name>javax.jdo.option.ConnectionUserName</name>
  20. <value>root</value>
  21. </property>
  22. <!-- MySQL数据库密码-->
  23. <property>
  24. <name>javax.jdo.option.ConnectionPassword</name>
  25. <value>123456</value>
  26. </property>
  27. <property>
  28. <name>hive.metastore.schema.verification</name>
  29. <value>false</value>
  30. </property>
  31. <property>
  32. <name>datanucleus.schema.autoCreateAll</name>
  33. <value>true</value>
  34. </property>
  35. </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


 
  1. HADOOP_HOME=/usr/hadoop/hadoop-2.7.3

vim hive-site.xml


 
  1. <configuration>
  2. <!-- Hive产生的元数据存放位置-->
  3. <property>
  4. <name>hive.metastore.warehouse.dir</name>
  5. <value>/user/hive_remote/warehouse</value>
  6. </property>
  7.  
  8. <!--- 使用本地服务连接Hive,默认为true-->
  9. <property>
  10. <name>hive.metastore.local</name>
  11. <value>false</value>
  12. </property>
  13.  
  14. <!-- 连接服务器-->
  15. <property>
  16. <name>hive.metastore.uris</name>
  17. <value>thrift://slave1:9083</value> #hive客户端通过thrift服务器服务连接MySQL数据库,这里的thrift服务器就是slave1的ip(主机名)
  18. </property>
  19. </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

<think>我们正在CentOS7上部署一个包含Hadoop集群HiveSpark集群MySQL的集成环境。以下是分步指南:注意:以下步骤假设使用root用户或具有sudo权限的用户操作。建议使用普通用户(如hadoop)操作,但需要配置sudo权限。总体步骤:1.系统准备(包括创建用户、安装Java等)2.安装Hadoop集群(包括配置和启动)3.安装MySQL(作为Hive的元数据存储)4.安装Hive配置使用MySQL存储元数据)5.安装Spark集群配置集成到Hadoop)引用说明:我们将参考提供的引用片段,并适当引用。详细步骤:##1.系统准备###1.1创建用户(可选但推荐)创建一个专门的用户(如hadoop)来运行这些服务,避免使用root。引用[2]中提到:useraddhadooppasswdhadoop#设置密码然后给这个用户配置sudo权限(如果需要):visudo添加:`hadoopALL=(ALL)ALL`###1.2安装JavaHadoopHiveSpark都需要Java环境。这里安装OpenJDK1.8(或OracleJDK1.8)。引用[2]中提到安装OpenJDK1.8:#查看Java版本java-version如果未安装,则安装:yuminstall-yjava-1.8.0-openjdkjava-1.8.0-openjdk-devel设置环境变量(在/etc/profile或用户profile中):exportJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexportPATH=$PATH:$JAVA_HOME/bin然后执行:`source/etc/profile`###1.3配置主机名和hosts文件确保集群中每个节点有唯一的主机名,并在所有节点的/etc/hosts文件中配置IP和主机名的映射。例如,在master节点上:hostnamectlset-hostnamemaster在slave1节点上:hostnamectlset-hostnameslave1编辑所有节点的/etc/hosts文件:<master-ip>master<slave1-ip>slave1...###1.4配置SSH免密登录在master节点上生成密钥,并将公钥复制到所有节点(包括自己):ssh-keygen-trsassh-copy-idhadoop@masterssh-copy-idhadoop@slave1...##2.安装Hadoop集群###2.1下载并解压Hadoop引用[2]中下载Hadoop3.3.6:wgethttps://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gztar-zxvfhadoop-3.3.6.tar.gzmvhadoop-3.3.6/opt/hadoop#可以移动到目标目录,这里假设/opt/hadoop###2.2配置环境变量在hadoop用户的~/.bashrc(或/etc/profile)中添加:exportHADOOP_HOME=/opt/hadoopexportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin同时,引用[4]中提到,需要将JAVA_HOME配置Hadoop配置文件中:编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加:exportJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk#根据实际路径调整同样,编辑$HADOOP_HOME/etc/hadoop/yarn-env.sh,添加:exportJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk###2.3配置Hadoop修改以下配置文件(在$HADOOP_HOME/etc/hadoop目录下):(1)core-site.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><property><name>hadoop.tmp.dir</name><value>/opt/hadoop/tmp</value></property></configuration>(2)hdfs-site.xml<configuration><property><name>dfs.replication</name><value>2</value><!--副本数,根据节点数调整--></property><property><name>dfs.namenode.name.dir</name><value>/opt/hadoop/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/opt/hadoop/dfs/data</value></property></configuration>(3)mapred-site.xml<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>(4)yarn-site.xml<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>master</value></property></configuration>(5)workers文件(在Hadoop3.x中,该文件名为workers)将所有的数据节点主机名写入:slave1slave2###2.4启动Hadoop集群在master节点上:hdfsnamenode-format#格式化(首次启动)start-dfs.shstart-yarn.sh验证:jps命令在master上应看到NameNode,ResourceManager等,在slave上应看到DataNode,NodeManager。##3.安装MySQL我们将安装MySQL5.7(或8.0)作为Hive的元数据存储。###3.1安装MySQL引用[3]中安装MySQL5.7(使用rpm包),但我们可以使用yum安装:#下载并安装MySQL官方的YumRepositorywgethttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmrpm-ivhmysql57-community-release-el7-11.noarch.rpmyuminstall-ymysql-community-server#启动MySQL服务systemctlstartmysqldsystemctlenablemysqld###3.2配置MySQL获取初始密码:grep'temporarypassword'/var/log/mysqld.log运行安全设置:mysql_secure_installation登录MySQLmysql-uroot-p创建Hive的元数据库和用户:CREATEDATABASEmetastore;CREATEUSER'hive'@'%'IDENTIFIEDBY'your_password';GRANTALLPRIVILEGESONmetastore.*TO'hive'@'%';FLUSHPRIVILEGES;注意:如果Hive运行在远程主机,需使用'%',如果本地则用'localhost'。##4.安装Hive###4.1下载并解压Hive下载Hive(例如3.1.2):wgethttps://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gztar-zxvfapache-hive-3.1.2-bin.tar.gzmvapache-hive-3.1.2-bin/opt/hive配置环境变量:exportHIVE_HOME=/opt/hiveexportPATH=$PATH:$HIVE_HOME/bin###4.2配置Hive进入$HIVE_HOME/conf目录:(1)创建hive-site.xml,内容如下(根据你的MySQL配置修改):<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master:3306/metastore?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>hive</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>your_password</value></property></configuration>(2)MySQL驱动包(mysql-connector-java-5.1.49.jar)复制到$HIVE_HOME/lib目录下。###4.3初始化元数据库运行:schematool-dbTypemysql-initSchema###4.4启动Hive运行hive命令即可进入CLI。##5.安装Spark集群注意:Spark需要运行在Hadoop集群之上。###5.1下载并解压Spark下载Spark(例如2.4.4,与引用[1]中的版本一致):wgethttps://archive.apache.org/dist/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgztar-zxvfspark-2.4.4-bin-hadoop2.7.tgzmvspark-2.4.4-bin-hadoop2.7/opt/spark配置环境变量:exportSPARK_HOME=/opt/sparkexportPATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin###5.2配置Spark进入$SPARK_HOME/conf目录:(1)复制模板:cpspark-env.sh.templatespark-env.shcpslaves.templateslaves(2)配置spark-env.sh(添加):exportJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexportSPARK_MASTER_HOST=master#设置master节点(3)配置slaves文件(添加所有worker节点):slave1slave2###5.3启动Spark集群sbin/start-all.sh#这会启动Master和Worker验证:访问master:8080查看Spark集群状态。###5.4集成Hive为了让Spark能够访问Hive的元数据,需要将Hive配置文件hive-site.xml复制到$SPARK_HOME/conf/目录下。然后重启Spark集群。现在,你可以通过spark-sql或pyspark访问Hive表。注意:以上步骤为基本部署流程,实际环境中可能需根据具体需求调整配置(如内存、路径等)。##总结完成以上步骤后,我们搭建了一个包含Hadoop集群(HDFS+YARN)、Hive(使用MySQL存储元数据)、Spark集群(Standalone模式)的集成环境。注意:在生产环境中,还需要考虑安全性、性能调优、高可用等。§§相关问题§§1.Hadoop集群部署中常见问题有哪些?2.Hive如何配置使用远程MySQL数据库?3.Spark如何集成Hive以实现数据仓库操作?4.如何验证整个集成环境的正确性?</think>### CentOS 7 集成环境部署指南:Hadoop集群 + Hive + Spark集群 + MySQL 以下是分步部署教程,包含关键配置和注意事项: --- #### **1. 系统准备** **1.1 创建专用用户** ```bash useradd hadoop # 创建用户 passwd hadoop # 设置密码 usermod -aG wheel hadoop # 添加sudo权限 ``` **1.2 安装Java环境** ```bash yum install -y java-1.8.0-openjdk-devel echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> /etc/profile source /etc/profile # 验证:java -version ``` **1.3 配置SSH免密登录** ```bash ssh-keygen -t rsa ssh-copy-id localhost # 所有节点互信 ssh-copy-id slave1 ssh-copy-id slave2 ``` --- #### **2. Hadoop集群部署** **2.1 下载安装Hadoop 3.3.6** ```bash wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz tar -zxvf hadoop-3.3.6.tar.gz -C /opt/ mv /opt/hadoop-3.3.6 /opt/hadoop ``` **2.2 核心配置** 编辑 `$HADOOP_HOME/etc/hadoop/` 下的文件: - **core-site.xml**: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> ``` - **hdfs-site.xml**: ```xml <property> <name>dfs.replication</name> <value>2</value> <!-- 副本数 --> </property> ``` - **workers文件**: ``` slave1 slave2 ``` **2.3 集成Java环境** ```bash echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" >> $HADOOP_HOME/etc/hadoop/yarn-env.sh ``` **2.4 启动集群** ```bash hdfs namenode -format # 首次需格式化 start-dfs.sh && start-yarn.sh ``` --- #### **3. MySQL安装Hive元数据库)** **3.1 安装MySQL 5.7** ```bash wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm rpm -ivh mysql57-community-release-el7-11.noarch.rpm yum install -y mysql-community-server systemctl start mysqld ``` **3.2 创建Hive元数据库** ```sql CREATE DATABASE metastore; CREATE USER 'hive'@'%' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%'; FLUSH PRIVILEGES; ``` --- #### **4. Hive安装配置** **4.1 下载Hive 3.1.2** ```bash wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/ ``` **4.2 配置hive-site.xml** ```xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/metastore?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>hive</value> </property> </configuration> ``` **4.3 初始化元数据库** ```bash $HIVE_HOME/bin/schematool -dbType mysql -initSchema ``` --- #### **5. Spark集群部署** **5.1 安装Spark 2.4.4** ```bash wget https://archive.apache.org/dist/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz tar -zxvf spark-2.4.4-bin-hadoop2.7.tgz -C /opt/ ``` **5.2 关键配置** - **spark-env.sh**: ```bash export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop ``` - **slaves文件**: ``` slave1 slave2 ``` **5.3 启动Spark集群** ```bash /opt/spark/sbin/start-all.sh ``` --- #### **6. 环境验证** 1. **Hadoop**:访问 `http://master:9870` 查看HDFS状态 2. **Spark**:运行示例任务: ```bash /opt/spark/bin/spark-submit --class org.apache.spark.examples.SparkPi \ /opt/spark/examples/jars/spark-examples_2.11-2.4.4.jar 10 ``` 3. **Hive**:执行 `hive -e "SHOW DATABASES;"` --- #### **关键注意事项** 1. **防火墙配置**:开放端口 9000(HDFS)、8080(Spark)、3306(MySQL) 2. **路径权限**:确保 `/opt` 目录属主为 `hadoop` 用户 3. **版本兼容性**:Hadoop 3.3.6 + Spark 2.4.4 + Hive 3.1.2 已验证兼容 4. **元数据备份**:定期备份MySQL中的 `metastore` 数据库 > 部署问题定位:查看日志目录 > - Hadoop: `$HADOOP_HOME/logs/` > - Spark: `$SPARK_HOME/logs/` > - Hive: `/tmp/hive.log`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值