hadoop的安装与伪分布式配置

Hadoop分布式搭建
本文分享了一位新手在CentOS 7.0上搭建Hadoop分布式环境的经历,包括选择虚拟机、操作系统、解决JDK配置问题及配置相关XML文件等关键步骤。
    这两天一直在研究hadoop,对于我这个对Linux接触很少的人来说,完全是蒙蔽的。原本想找些学习材料(据说hadoop实战和hadoop权威指南都蛮不错的),可是。。。  根本看不懂!因此,决定先在网上找资料,从下载安装开始。
      虽然现在还在上班,但是我总算已经把hadoop的分布式搭建好了。迫不及待的来记录分享。

      对于我这个新手,一起都从零开始。

      首先安装VMware虚拟机(我安装的是12版本)。
      然后下载了一个centos7.0(和redhat很像,据说许多公司都用它,所以从众多Linux系统中选择了他)。
      再之后嘛。。就开始按教程来了。
      (※原文地址:http://www.powerxing.com/install-hadoop-in-centos/本 Hadoop 教程由给力星出品)

      真的非常感谢这篇教程,写的非常好。这篇教程写的是centos6.8和hadoop2.6的安装教程,在我的centos7.0上也适用。

      不知道是不是因为我和作者的版本不一样,某些地方还是出现了些小问题,让我头疼了很久。我现在记下来,希望以后看到的人可以借鉴。

      ①在我的环境下,我安装的是1.8.0的JDK,安装的过程也是和作者一样的。在之前安装1.7.0的时候,配置伪分布时,执行NameNode格式化(代码:$./bin/hdfsnamenode -format)的时候,总会出现如下错误。



java里的是InternalError,我找了好久也没找到,最后在某处看到说可能是jdk的问题,然后我就把。1.7.0的JDK卸载了,重新按了1.8.0的,问题就解决了。
      ②在这篇文章中,作者好像没有配置hadoop的JAVA_HOME(或者写在哪我没有看懂),在最开始找错误的时候,发现好多人说JAVA_HOME的路径需要重新写,就写你JDK的路径,反正最后我是配置了。
      代码(如果你是按照我提供的文章安装的,完全按照我的写就可以,如果不是,自己去找hadoop里的hadoop-env.sh):
      $ gedit/usr/local/hadoop/etc/hadoop/hadoop-env.sh
      然后在里面找到:export JAVA_HOME=(原本=后面好像是localhost什么的,忘了)
      把=号后面换上你的jdk地址。
      ③作者这里没有配置mapred-site.xml和yarn-site.xml,可能是没有用到吧。(我是全加里了,没有什么影响,不过是在别处找的,应该是和作者的不匹配,运行还是能运行的)
      和之前的两个配置一样,都是执行gedit./etc/hadoop/mapred-site.xml和gedit./etc/hadoop/yarn-site.xml去编辑,进去之后都在的中间加入。
  不过有一点要注意的是,原本的里面是没有mapred-site.xml的,而是有一个mapred-site.xml.template,需要将这个文件复制,一样放到这个位置,起名为mapred-site.xml,再在里面编辑。

  学习hadoop真的让我很头疼,但是当我配置成功的时候,又是那么的有成就感!



<think>好的,用户需要Hadoop安装伪分布式配置的详细步骤。首先,我得回顾之前的对话,用户之前已经得到了一个详细的步骤列表,但可能现在需要更详细或更准确的信息,特别是结合他们提供的站内引用。用户引用了四篇资料,其中提到创建专用用户、环境变量配置配置文件修改等。需要注意引用中的不同点,比如用户应该使用哪个配置文件,比如是.bashrc还是.bash_profile,引用[1]和引用[3]提到的不同。同时,用户之前的回答可能有些步骤需要调整,例如是否要卸载系统自带的OpenJDK,或者如何正确设置Hadoop的环境变量。接下来,我需要整合这些信息,确保步骤正确无误。例如,创建专用用户的部分,引用[1]建议使用hadoop用户,而用户之前的步骤是创建gjw用户。这里可能需要指出建议使用专用用户,但用户可以根据需要选择。另外,在配置环境变量时,引用[3]提到编辑.bashrc或.bash_profile,而用户之前的回答用的是.bash_profile,但Ubuntu默认使用的是.bashrc,这里需要纠正,并说明根据实际情况选择。 还要注意Hadoop配置文件的具体内容,比如core-site.xml中的hadoop.tmp.dir是否正确设置,引用[4]中的例子有错误,正确的属性名应该是hadoop.tmp.dir而不是hadoop.tmp.version,这需要修正。 SSH免密登录的步骤是否正确,是否需要生成密钥并授权,这部分在之前的回答中已经包含,但需要确保用户执行时不会遇到权限问题。 最后,在验证步骤中,要检查进程是否运行,HDFS是否正常,以及如何提交MapReduce作业。用户可能还需要知道如何处理常见错误,比如端口冲突或权限不足。 需要确保所有步骤连贯,没有遗漏关键点,如初始化HDFS、启动服务等。同时,生成的相关问题要覆盖用户可能遇到的后续疑问,例如性能优化、错误排查、集群扩展等。</think>### Hadoop安装伪分布式配置详细步骤 --- #### 一、环境准备 1. **创建专用用户(推荐)** ```bash sudo useradd -m hadoop # 创建用户名为hadoop的专用用户[^1] sudo passwd hadoop # 设置密码 sudo usermod -aG sudo hadoop # 赋予sudo权限 su - hadoop # 切换到hadoop用户 ``` 2. **卸载系统自带JDK(如有冲突)** ```bash sudo apt-get purge openjdk-\* # 清理旧版本JDK[^1] ``` --- #### 二、JDKHadoop安装 1. **安装JDK 8** ```bash sudo apt-get install openjdk-8-jdk ``` 2. **配置环境变量** - 编辑`~/.bashrc`(Ubuntu默认使用此文件)[^3]: ```bash nano ~/.bashrc ``` - 添加以下内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` - 激活配置: ```bash source ~/.bashrc ``` 3. **安装Hadoop 3.3.4** ```bash wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/ sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop sudo chown -R hadoop:hadoop /usr/local/hadoop # 修改所有权[^1] ``` --- #### 三、伪分布式核心配置 1. **配置`hadoop-env.sh`** ```bash nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh ``` 修改JAVA_HOME路径: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` 2. **配置`core-site.xml`** ```xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> # 注意属性名正确性[^4] </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 3. **配置`hdfs-site.xml`** ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> # 单节点副本数为1[^2] </property> <property> <name>dfs.namenode.name.dir</name> <value>file:$HADOOP_HOME/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:$HADOOP_HOME/data/datanode</value> </property> </configuration> ``` --- #### 四、SSH免密登录 ```bash ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa # 生成密钥对 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ssh localhost # 验证免密登录(首次需输入yes) ``` --- #### 五、HDFS初始化启动 1. **格式化HDFS** ```bash hdfs namenode -format # 仅首次执行[^2] ``` 2. **启动服务** ```bash start-dfs.sh # 启动HDFS start-yarn.sh # 启动YARN ``` 3. **验证进程** ```bash jps # 应显示以下进程: # NameNode, DataNode, ResourceManager, NodeManager ``` --- #### 六、验证集群状态 | 验证项 | 命令 | 预期输出示例 | |----------------|--------------------------|----------------------------| | HDFS运行状态 | `hdfs dfsadmin -report` | `Live datanodes (1)` | | YARN节点状态 | `yarn node -list` | `Total Nodes:1` | | Web UI访问 | 浏览器访问`http://localhost:9870` | 显示HDFS管理界面 | --- ### 相关问题 1. **如何解决`NameNode`启动失败的问题?** 2. **伪分布式环境下如何扩展为完全分布式集群?** 3. **`hdfs dfsadmin -report`显示节点离线时如何排查?** 4. **如何通过Hadoop Web UI查看任务日志?** 5. **为什么需要配置`hadoop.tmp.dir`?其作用是什么?[^4]** --- ### 关键配置验证公式 1. **HDFS存储容量验证** $$ \text{可用空间} = \sum_{i=1}^{n} \text{DataNode}_i.\text{剩余空间} $$ 2. **YARN资源分配验证** $$ \text{总内存} = \text{NodeManager数} \times \text{yarn.nodemanager.resource.memory-mb} $$ [^1]: 专用用户可避免权限冲突,提升系统安全性 [^2]: 伪分布式通过单节点模拟多节点行为 [^3]: 环境变量配置实际安装路径严格一致 [^4]: `hadoop.tmp.dir`是Hadoop临时文件存储的核心目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值