Hadoop(伪分布式)和Hive的安装

本文详细介绍了在Linux环境下安装配置Hadoop和Hive的步骤。首先,通过解决SSH免密登录、安装JDK来准备环境,然后下载并配置Hadoop,包括设置HDFS和YARN的相关参数。接着,初始化Namenode并启动所有进程。在Hive部分,下载对应版本的Hive,修改配置文件如hive-site.xml,并设置数据库连接。最后,初始化数据库并设置Hive的相关环境变量。

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

一 hadoop的安装

    1.解决本机的免密钥登录问题

      在root用户在输入 ssh-keygen -t -rsa,连着敲三下,生成本机的密钥,后进入/root/.ssh目录下,将密钥写入到权限文件中,即 cat id_rsa.pub >> authorized_keys

     2.安装jdk

     官网下载jdk后,解压至环境中的某一目录下,后在通过命令  vim /etc/profile,添加如下内容

     export JAVA_HOME=/opt/install/jdk1.8.0_251
     export PATH=$JAVA_HOME/bin:$PATH

     添加完毕后,source /etc/profile,生效配置,在命令行中输入 java -version,验证jdk是否安装完毕

    3.官网下载hadoop,本文以3.2.1为例,解压至指定目录下,

       进入解压后的目录,分别新建data nameData nameDataDir 

       进入/opt/install/hadoop-3.2.1/etc/hadoop目录下,分别修改core-site.xml,内容为

     

<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/install/hadoop-3.2.1/data</value>
  </property>
  <property>
    <name>dfs.name.dir</name>
    <value>/opt/install/hadoop-3.2.1/nameData</value>
  </property>


 <property>
   <name>fs.defaultFS</name>
   <value>hdfs://test:9000</value>
</property>

  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
 </property>
 <property>
   <name>hadoop.proxyuser.root.groups</name>
   <value>*</value>
  </property

   修改hdfs-site.xml文件

<property>
        <name>dfs.data.dir</name>
        <value>/opt/install/hadoop-3.2.1/nameDataDir</value>
    </property>

   <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
   </property>


    <property>
       <name>dfs.replication</name>
       <value>1</value>
    </property>
<property>
        <name>dfs.permissions.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>true</value>
    </property>
     修改yarn-site.xml文件为

<property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
  </property>
修改hadoop-env.sh,添加内容 export JAVA_HOME=/opt/install/jdk1.8.0_251

  4.修改start/stop-dfs.sh  start/stop-yarn.sh,在文件头添加如下内容:

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
5.初始化namenode,命令为./hadoop dfs namenode -format

6.执行完毕后,进入sbin目录下输入,./start-all.sh,启动所有进程

7.启动完毕后,在本地浏览器中输入http://虚拟机IP地址:9870

二  hive的安装

   1.官网上下载与hadoop相对应的hive版本,本文采用的hive版本为2.3.7

    2.解压hive至指定的路径下,修改hive-site.xml(可以直接复制hive-default.xml)文件为    

<property>  
  <name>hive.metastore.warehouse.dir</name>  
  <value>/user/hive_remote/warehouse</value>  
</property>  
   
<property>  
  <name>hive.metastore.local</name>  
  <value>false</value>  
</property>  
   
<property>  
  <name>javax.jdo.option.ConnectionURL</name>  
  <value>jdbc:mysql://localhost:3306/hive_test?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>root</value>  
</property>  
   
<property>  
  <name>javax.jdo.option.ConnectionPassword</name>  
  <value>123456</value>  
</property>  

<property>
 <name>hive.cli.print.current.db</name>
 <value>true</value>
</property>

<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>

<property>
    <name>hive.server2.thrift.client.user</name>   
    <value>root</value>
    <description>Username to use against thrift client</description>
</property>
  <property>
    <name>hive.server2.thrift.client.password</name>
    <value>123456</value>
    <description>Password to use against thrift client</description>
  </property>

<property>
        <name>hive.server2.authentication</name>
        <value>NONE</value>
</property>
<property>
        <name>hive.server2.thrift.bind.host</name>
        <value>test</value>
</property>
<property>
         <name>hive.server2.thrift.port</name>
         <value>10000</value>
         <description>TCP port number to listen on, default 10000</description>
 </property>
 
<property>
        <name>hive.metastore.schema.verification</name>
        <value>true</value>
</property> 
3.在hive-env.sh文件中添加如下内容

HADOOP_HOME=/opt/install/hadoop-3.2.1

# Hive Configuration Directory can be controlled by:
# export HIVE_CONF_DIR=
export HIVE_CONF_DIR=/opt/install/hive-2.3.7/conf

4.完成后,进入/opt/install/hive-2.3.7/bin目录下,执行./schematool -dbType mysql --initSchema完成数据库初始化

<think>好的,我现在需要回答用户关于在Hadoop伪分布式环境下安装Spark的问题。首先,我得回忆一下HadoopSpark的关系,以及伪分布式环境的特点。Hadoop伪分布式意味着Hadoop在单个节点上运行,但模拟分布式环境,各个守护进程如NameNode、DataNode等分开运行。Spark可以在此环境下以Local模式或Standalone模式运行。 接下来,我得整理安装步骤。根据用户提供的引用内容,有几个关键步骤:安装JDK、配置SSH免密登录、安装Hadoop伪分布式、下载并解压Spark、配置环境变量、修改Spark配置文件(如spark-env.sh)、启动HadoopSpark服务,最后验证安装。需要注意权限问题,比如用户是否需要sudo权限,以及配置文件中的路径是否正确。 然后,我要检查引用中的具体命令,比如配置spark-env.sh时需要设置JAVA_HOME、SPARK_MASTER_IP、HADOOP_CONF_DIR等。引用[1]提到导出这些变量,而引用[2]提到了拷贝模板文件。同时,引用[3]中的示例命令用于验证Spark是否安装成功,比如运行SparkPi例子。此外,用户权限设置(如引用[4]中的sudo权限)也是需要注意的地方。 需要确保步骤逻辑正确,例如先安装Hadoop伪分布式,再安装Spark。配置Spark时,必须指向正确的Hadoop配置目录,否则可能无法正确集成。启动顺序应该是先启动Hadoop,再启动Spark,否则可能出现资源访问问题。 可能遇到的问题包括路径错误、权限不足、端口冲突等。例如,JAVA_HOME的路径是否正确,Hadoop配置目录是否存在,Spark的启动脚本是否有执行权限。此外,用户提到的启动spark-shell时需要确保Hadoop服务已经运行,否则可能无法读取HDFS上的数据。 最后,生成相关问题时需要考虑用户可能进一步的需求,比如性能调优、配置参数、与其他组件集成等。例如,如何配置Spark以更好地利用资源,或者如何将Spark连接到Hive等工具。</think>### Hadoop伪分布式环境下安装Spark的步骤指南 #### 1. 前置条件准备 - **安装JDK** Spark依赖Java环境,需安装JDK 1.8+,并配置环境变量: ```bash export JAVA_HOME=/usr/local/src/jdk export PATH=$JAVA_HOME/bin:$PATH ``` 验证:`java -version`[^1]。 - **配置SSH免密登录** Spark需要无密码访问本地节点: ```bash ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` 验证:`ssh localhost` 应无需输入密码[^4]。 #### 2. 安装Hadoop伪分布式集群 参考Hadoop伪分布式搭建流程,确保以下服务正常运行: - NameNode - DataNode - ResourceManager - NodeManager 验证:`jps` 命令应显示上述进程[^1]。 #### 3. 下载并解压Spark 从[Spark官网](https://spark.apache.org/)下载安装包(建议3.x版本),解压至目标目录: ```bash tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /usr/local/src/ mv /usr/local/src/spark-3.3.1-bin-hadoop3 /usr/local/src/spark ``` #### 4. 配置Spark环境变量 编辑 `~/.bashrc` 或 `/etc/profile`,添加: ```bash export SPARK_HOME=/usr/local/src/spark export PATH=$SPARK_HOME/bin:$PATH ``` 执行 `source ~/.bashrc` 生效。 #### 5. 修改Spark配置文件 进入Spark配置目录,复制模板文件并编辑: ```bash cd /usr/local/src/spark/conf cp spark-env.sh.template spark-env.sh ``` 在 `spark-env.sh` 中添加: ```bash export JAVA_HOME=/usr/local/src/jdk export SPARK_MASTER_IP=master # 本机主机名或IP export HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoop export SPARK_LOCAL_IP=master ``` 注意:`HADOOP_CONF_DIR` 需指向Hadoop配置文件目录[^2]。 #### 6. 启动Spark集群 - **启动Spark服务**: ```bash cd /usr/local/src/spark/sbin/ ./start-all.sh ``` 验证:访问 `http://master:8080` 查看集群状态[^1]。 - **启动Spark Shell**: ```bash cd /usr/local/src/spark/ ./bin/spark-shell ``` 成功进入交互式命令行即表示安装完成。 #### 7. 验证安装 运行示例任务计算Pi值: ```bash cd /usr/local/src/spark/ bin/run-example SparkPi 2>&1 | grep "Pi is" ``` 若输出类似 `Pi is roughly 3.1415`,则Spark运行正常[^3]。 #### 常见问题排查 - **权限问题**:确保用户(如hadoop)拥有Spark目录的读写权限,必要时使用 `chown` 或 `sudo`[^4]。 - **端口冲突**:检查8080(Web UI)、7077(Master端口)是否被占用。 - **HDFS集成失败**:确认 `HADOOP_CONF_DIR` 路径正确,且Hadoop服务已启动。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值