[Hadoop系列]Hadoop的安装-3.完全分布模式

本文提供在Ubuntu Linux 9.10环境下安装Hadoop 0.20.1的详细步骤,涵盖本地、伪分布及完全分布模式。重点介绍完全分布模式的配置流程,包括SSH免密码登录设置、hosts文件配置等。

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

  inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.youkuaiyun.com/inkfish )。

  Hadoop是Apache基金会下的一个开源云计算平台项目。当前最新版本是hadoop 0.20.1。下面就hadoop 0.20.1为蓝本,介绍在Ubuntu Linux 9.10下安装hadoop的方法。(来源:http://blog.youkuaiyun.com/inkfish)

支持的平台:(来源:http://blog.youkuaiyun.com/inkfish)
  Linux,可作为开发和产品部署的平台;
  Windows,可作为开发平台。

事先需要的软件:(来源:http://blog.youkuaiyun.com/inkfish)
  1.JavaTM1.6.x,必须安装,建议选择Sun公司发行的Java版本;
  2.ssh必须安装,并保证sshd运行,hadoop将以ssh进行通讯;
  3.如果是windows,则需要装Cygwin,用以支持shell命令。

安装可用的模式:(来源:http://blog.youkuaiyun.com/inkfish)
  1.本地模式;
  2.伪分布模式;
  3.完全分布模式。

完全分布模式安装步骤(这里的步骤只让hadoop能跑,不带任何调优步骤):

  1.下载并解压hadoop到集群中某台服务器目标目录。
  2.配置/etc/hosts文件
    2.1确认集群中所有服务器均有hostname,并记录IP
    2.2每一台服务器的/etc/hosts文件里配置hostname和IP对应关系,加快解析速度。
  3.配置SSH免密码登陆
    3.1每台服务器上运行:
     $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
     $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
   3.2把各台服务器的~/.ssh/authorized_keys文件内容合并到一个总的authorized_keys文件;
   3.3把那个总的authorized_keys文件scp到每台服务器,替换原有的authorized_keys文件;
   3.4互相SSH对方机器,确认SSH登陆不需要密码
  4.配置各台服务器时间,确保每台服务器时间相同;
  5.配置hadoop
   5.1配置conf/hadoop-env.sh文件
     配置JAVA_HOME一行,配置正确的路径。
   5.2配置conf/core-site.xml文件


        注:这里的host必须改为对应的namenode的hostname
   5.3配置conf/hdfs-site.xml文件
     如果不修改使用默认设置也可以。
   5.4配置conf/mapred-site.xml文件

       注:这里的host必须改为对应的namenode的hostname

  6.配置conf/slaves和conf/master文件

   slaves文件里写datanode的hostname或IP,master里写namenode、secondary namenode的hostname或IP,每行写一个服务器,以#开头的行视为注释。
  7.分发hadoop
   直接通过scp,把hadoop整个目录复制到各台服务器的相同目录即可
  8.格式化hadoop的namenode
   执行命令:$ bin/hadoop namenode -format
  9.启动hadoop
   执行命令:$ bin/start-all.sh

  至此,完全分布式安装完毕,通常启动到所有服务器完全识别出来需要一定的时间(我这里是5分钟左右),要耐心等待,在namenode节点上,打开浏览器,输入http://localhost:50070/即可看到整个hadoop情况,JobTracker情况可以看每一个服务器的http://localhost:50030/。

<think>好的,我现在需要解决用户提到的Hadoop 3.1.3中namenode日志权限被拒绝的问题。首先,用户的问题是关于Permission denied,无法访问日志文件。根据提供的引用,特别是引用[3]和引用[4],可能需要检查用户权限配置和启动脚本的设置。 首先,我得回忆Hadoop的日志文件通常存放在哪里。通常,Hadoop的日志文件位于安装目录下的logs子目录,比如/usr/local/hadoop/logs。用户提到的日志路径是hadoop-root-namenode-singlehenry.log,这说明可能是在伪分布式模式下运行,并且以root用户启动的。 但是,用户遇到权限问题,可能是因为启动Hadoop服务的用户和当前尝试访问日志的用户不一致。比如,如果Hadoop服务是用root用户启动的,而当前用户是普通用户,那么普通用户可能没有权限读取root用户的日志文件。根据引用[3],在伪分布式中,配置启动脚本时需要指定用户为root,如果配置正确,但访问时仍然出现问题,可能需要检查文件权限。 接下来,根据引用[3]的内容,用户需要修改start-dfs.sh和stop-dfs.sh脚本,设置各个守护进程的用户为root。这可以确保所有进程以root用户运行,生成的日志文件权限也会属于root。如果用户当前不是以root身份访问这些日志,就会遇到权限问题。可能的解决方案包括使用sudo来查看日志,或者更改日志文件的权限,使其他用户也能读取。 此外,引用[4]中提到在集群配置时需要关闭防火墙、配置静态IP等,但这些可能和当前问题关系不大。不过,用户可能没有正确配置用户权限,导致服务启动时的用户和文件系统权限不匹配。例如,如果HDFS的目录权限不允许特定用户写入,也会出现类似问题,但这里的问题是关于日志文件的读取权限,而不是HDFS的写入权限。 可能的解决步骤包括: 1. 确认启动Hadoop服务的用户是否为root,如引用[3]所述,修改启动脚本中的用户变量为root。 2. 检查日志文件的所有者和权限,使用ls -l命令查看。 3. 如果日志文件属于root,而当前用户无权访问,可以使用sudo tail或修改文件权限,比如chmod修改权限,或者更改文件的所有者。 同时,需要注意以root身份运行Hadoop可能存在安全隐患,但在测试环境中可能是可以接受的。用户可能需要根据具体情况调整权限设置,或者使用正确的用户身份访问日志文件。 另外,用户可能需要检查Hadoop的配置文件,如hadoop-env.sh,是否设置了正确的JAVA_HOME和其他环境变量,避免因为配置错误导致进程无法正常启动,但这里的问题更偏向于权限而非启动错误。 总结下来,关键点在于启动脚本中的用户配置和日志文件的权限设置。需要指导用户检查这两部分,并根据需要调整权限或使用sudo。</think>要解决Hadoop 3.1.3中namenode日志权限被拒绝的问题,请按以下步骤操作: --- ### **1. 检查启动脚本的用户配置** Hadoop守护进程默认以系统普通用户(如`hadoop`)运行,若以`root`用户启动需显式配置。根据引用[3],需修改以下脚本: - `start-dfs.sh`和`stop-dfs.sh`中添加用户变量: ```bash HDFS_NAMENODE_USER=root HDFS_DATANODE_USER=root HDFS_SECONDARYNAMENODE_USER=root ``` 确保所有进程以`root`运行,生成的日志文件权限归属正确[^3]。 --- ### **2. 调整日志文件权限** 若日志文件已生成但权限不足,手动修改权限: ```bash # 查看日志文件权限 ls -l /usr/local/hadoop/logs/hadoop-root-namenode-*.log # 赋予其他用户读取权限 sudo chmod o+r /usr/local/hadoop/logs/hadoop-root-namenode-*.log ``` 或使用`sudo`访问日志: ```bash sudo tail -30 /usr/local/hadoop/logs/hadoop-root-namenode-singlehenry.log ``` --- ### **3. 验证Hadoop进程用户** 确认namenode进程是否以`root`运行: ```bash ps -ef | grep namenode ``` 若用户列显示`root`,则配置生效;否则检查启动脚本配置。 --- ### **4. 避免权限冲突** 若Hadoop服务由`root`启动,但其他组件(如Spark/YARN)使用普通用户(如`yarn`),需统一用户或通过HDFS权限控制(如`hdfs dfs -chmod`)[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值