1. 前言今天我在Linux CentOS系统中搭建了一个个人博客网站用于存放我的学习笔记和文章。这个网站使用了HTML、CSS、JavaScript和PHP技术栈。同时我还按照教程在虚拟机上安装了Hive元数据库。本文将记录这两个项目的实践过程分享从零开始搭建个人网站和配置大数据环境的关键步骤。2. 个人博客网站搭建2.1 环境准备首先确保CentOS系统已安装必要的Web服务组件# 更新系统 sudo yum update -y 安装Apache Web服务器 sudo yum install httpd -y 安装PHP sudo yum install php php-mysqlnd php-gd php-xml -y 安装MySQL/MariaDB数据库 sudo yum install mariadb-server mariadb -y 启动服务并设置开机自启 sudo systemctl start httpd sudo systemctl start mariadb sudo systemctl enable httpd sudo systemctl enable mariadb2.2 网站目录结构在Apache的默认网站目录下创建博客网站# 进入网站根目录 cd /var/www/html 创建博客目录结构 mkdir -p myblog/{css,js,images,posts} touch myblog/index.php touch myblog/css/style.css touch myblog/js/main.js2.3 前端页面设计创建基本的HTML结构和CSS样式!-- index.php -- !DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title我的个人博客/title link relstylesheet hrefcss/style.css link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css /head body header h1i classfas fa-blog/i 我的技术博客/h1 nav a hrefindex.php首页/a a hrefposts/文章列表/a a hrefabout.php关于我/a /nav /header lt;maingt; lt;section classwelcomegt; lt;h2gt;欢迎来到我的博客lt;/h2gt; lt;pgt;这里记录我的学习笔记和技术分享lt;/pgt; lt;/sectiongt; amp;lt;section classrecent-postsamp;gt; amp;lt;h3amp;gt;amp;lt;i classfas fa-newspaperamp;gt;amp;lt;/iamp;gt; 最新文章amp;lt;/h3amp;gt; amp;lt;?php include get_posts.php; ?amp;gt; amp;lt;/sectionamp;gt; lt;/maingt; lt;footergt; lt;pgt;copy; 2025 我的博客 | 使用PHP MySQL构建lt;/pgt; lt;/footergt; lt;script srcjs/main.jsgt;lt;/scriptgt; /body /html2.4 CSS样式设计/* style.css */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Segoe UI, Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; background-color: #f5f5f5; } header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 2rem; text-align: center; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } nav { margin-top: 1rem; } nav a { color: white; text-decoration: none; margin: 0 1rem; padding: 0.5rem 1rem; border-radius: 4px; transition: background-color 0.3s; } nav a:hover { background-color: rgba(255,255,255,0.2); } main { max-width: 1200px; margin: 2rem auto; padding: 0 1rem; } .welcome { background: white; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); margin-bottom: 2rem; } .recent-posts { background: white; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } footer { text-align: center; padding: 1.5rem; background: #333; color: white; margin-top: 2rem; }2.5 PHP后端功能创建简单的文章管理系统?php // get_posts.php $servername localhost; $username blog_user; $password your_password; $dbname myblog_db; // 创建连接 $conn new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn-connect_error) { die(连接失败: . $conn-connect_error); } // 查询最新文章 $sql SELECT id, title, created_at, excerpt FROM posts ORDER BY created_at DESC LIMIT 5; $result $conn-query($sql); if ($result-num_rows 0) { echo ul classpost-list; while($row $result-fetch_assoc()) { echo li; echo h4a hrefposts/post.php?id . $row[id] . . $row[title] . /a/h4; echo p . $row[excerpt] . /p; echo small发布时间: . $row[created_at] . /small; echo /li; } echo /ul; } else { echo p暂无文章/p; } $conn-close(); ?2.6 JavaScript交互功能// main.js document.addEventListener(DOMContentLoaded, function() { // 暗色模式切换 const darkModeToggle document.createElement(button); darkModeToggle.textContent 暗色模式; darkModeToggle.style.position fixed; darkModeToggle.style.top 20px; darkModeToggle.style.right 20px; darkModeToggle.style.padding 10px 15px; darkModeToggle.style.borderRadius 5px; darkModeToggle.style.border none; darkModeToggle.style.cursor pointer; darkModeToggle.style.backgroundColor #667eea; darkModeToggle.style.color white; document.body.appendChild(darkModeToggle); darkModeToggle.addEventListener(click, function() { document.body.classList.toggle(dark-mode); if (document.body.classList.contains(dark-mode)) { document.body.style.backgroundColor #1a1a1a; document.body.style.color #f0f0f0; darkModeToggle.textContent ☀️ 亮色模式; } else { document.body.style.backgroundColor #f5f5f5; document.body.style.color #333; darkModeToggle.textContent 暗色模式; } }); // 文章搜索功能 const searchBox document.createElement(input); searchBox.type text; searchBox.placeholder 搜索文章...; searchBox.style.marginLeft 1rem; searchBox.style.padding 0.5rem; searchBox.style.borderRadius 4px; searchBox.style.border 1px solid #ddd; const nav document.querySelector(nav); nav.appendChild(searchBox); searchBox.addEventListener(input, function(e) { const searchTerm e.target.value.toLowerCase(); const posts document.querySelectorAll(.post-list li); posts.forEach(post gt; { const text post.textContent.toLowerCase(); post.style.display text.includes(searchTerm) ? block : none; }); }); });3. Hive元数据库安装3.1 环境要求在安装Hive之前需要确保虚拟机已安装以下组件Java JDK 8或更高版本HadoopHDFS和YARNMySQL或PostgreSQL作为元数据库3.2 安装步骤# 1. 下载Hive wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz 2. 解压到指定目录 tar -xzf apache-hive-3.1.3-bin.tar.gz -C /usr/local/ cd /usr/local ln -s apache-hive-3.1.3-bin hive 3. 配置环境变量 echo export HIVE_HOME/usr/local/hive ~/.bashrc echo export PATH$PATH:$HIVE_HOME/bin ~/.bashrc source ~/.bashrc 4. 配置Hive cd $HIVE_HOME/conf cp hive-default.xml.template hive-site.xml cp hive-env.sh.template hive-env.sh cp hive-log4j2.properties.template hive-log4j2.properties3.3 配置MySQL作为元数据库# 1. 安装MySQL客户端和服务器 sudo yum install mysql-server mysql -y sudo systemctl start mysqld sudo systemctl enable mysqld 2. 创建Hive元数据库 mysql -u root -p 输入密码后执行以下SQL CREATE DATABASE metastore_db; CREATE USER hiveuserlocalhost IDENTIFIED BY hivepassword; GRANT ALL PRIVILEGES ON metastore_db.* TO hiveuserlocalhost; FLUSH PRIVILEGES; EXIT;3.4 配置hive-site.xml!-- hive-site.xml 关键配置 -- configuration property namejavax.jdo.option.ConnectionURL/name valuejdbc:mysql://localhost/metastore_db?createDatabaseIfNotExisttrue/value /property property namejavax.jdo.option.ConnectionDriverName/name valuecom.mysql.cj.jdbc.Driver/value /property property namejavax.jdo.option.ConnectionUserName/name valuehiveuser/value /property property namejavax.jdo.option.ConnectionPassword/name valuehivepassword/value /property property namehive.metastore.warehouse.dir/name value/user/hive/warehouse/value /property property namehive.exec.scratchdir/name value/tmp/hive/value /property /configuration3.5 下载MySQL JDBC驱动# 下载MySQL连接器 wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.33.tar.gz tar -xzf mysql-connector-java-8.0.33.tar.gz cp mysql-connector-java-8.0.33/mysql-connector-java-8.0.33.jar $HIVE_HOME/lib/3.6 初始化元数据库并启动Hive# 初始化元数据库 schematool -dbType mysql -initSchema 启动Hive CLI hive 在Hive中测试 hive CREATE DATABASE mydb; hive USE mydb; hive CREATE TABLE users (id INT, name STRING, age INT); hive SHOW TABLES; hive DESCRIBE users;4. 遇到的问题与解决方案4.1 网站搭建常见问题Apache无法启动检查80端口是否被占用使用sudo netstat -tlnp | grep :80PHP无法连接MySQL确保安装了php-mysqlnd扩展并重启Apache权限问题确保/var/www/html目录有正确的读写权限4.2 Hive安装常见问题schematool初始化失败检查MySQL服务是否运行JDBC驱动是否正确放置Hive无法连接Hadoop确保Hadoop服务正常运行HDFS可访问内存不足调整Hive的堆内存设置修改hive-env.sh中的HADOOP_HEAPSIZE5. 总结与展望通过这次实践我掌握了在CentOS系统上搭建个人博客网站的全过程包括Web服务器配置、前端页面设计、后端PHP开发和数据库集成。同时通过安装Hive元数据库我对大数据生态系统的组件安装和配置有了更深入的理解。未来可以进一步优化为博客添加用户认证和评论系统实现文章分类和标签功能集成Hive与Spark进行数据分析使用Docker容器化部署整个环境这两个项目虽然技术栈不同但都体现了Linux环境下软件安装、配置和集成的核心技能为后续更复杂的企业级应用开发打下了坚实基础。