CentOS下安装Hadoop伪分布集群踏坑之路

本文详细介绍了Hadoop集群的配置文件设置,包括core-site.xml、hdfs-site.xml等关键配置项,并针对datanode启动失败的问题给出了具体解决方案。

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

1.hadoop/etc/hadoop下的配置文件

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/temp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>                                                                                                 
</configuration>

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>                                                                                
</property>                                                                                              
</configuration>

yarn-site.xml

<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>

2.注意点

(1)  ssh保证master和slave1和slave2相互之间互通

(2) 注意hadoop2.X已经不使用jobtracker和tasktracker了,取而代之的是nodemanager和resourcemanager

(3)  可以启动slave的datanode,而另一个slave不行,一开始修改了权限,但是发现不行,一运行权限又被改回来,

  1. Hadoop的datanode无法启动  
  2.   
  3. hdfs-site中配置的dfs.data.dir为/usr/local/hadoop/hdfs/data  
  4. 用bin/hadoop start-all.sh启动Hdoop,用jps命令查看守护进程时,没有DataNode。  
  5.   
  6. 访问http://localhost:50070,点击页面中的Namenode logs链接,在logs页面点击hadoop-hadoop-datanode-ubuntu.log 链接,  
  7. 发现在日志中有此提示:Invalid directory in dfs.data.dir: Incorrect permission for /usr/local/hadoop/hdfs/data, expected: rwxr-xr-x, while actual: rwxr-xrwx 。原因是data文件夹权限问题,执行:chmod g-w /usr/local/hadoop/hdfs/data,修改文件夹权限后,再次启动Hadoop,问题解决。  
而且一直以为 rm -rf name/* data/* tmp/* logs/*就可以,后来暴力将这些目录也一并删除,发现可以启动了


### 配置Hadoop伪分布集群 #### 1. 安装Java环境 在CentOS 7上搭建Hadoop伪分布集群之前,需要先安装JDK。可以通过以下命令下载并解压JDK: ```bash wget http://example.com/jdk-8u192-linux-x64.tar.gz tar -zxvf jdk-8u192-linux-x64.tar.gz mv jdk1.8.0_192 /usr/local/java ``` 接着,在`~/.bashrc`文件中配置JAVA_HOME变量: ```bash export JAVA_HOME=/usr/local/java export PATH=$PATH:$JAVA_HOME/bin source ~/.bashrc ``` 验证Java是否成功安装: ```bash java -version ``` #### 2. 下载并解压Hadoop 通过Wget命令下载所需的Hadoop版本,并将其解压缩至指定目录。 ```bash wget http://example.com/hadoop-3.3.6.tar.gz tar -xzvf hadoop-3.3.6.tar.gz mv hadoop-3.3.6 /usr/local/hadoop chown -R 用户名:所属组名 /usr/local/hadoop ``` 此处的用户名和所属组名应替换为自己系统的实际用户信息[^3]。 #### 3. 修改Hadoop配置文件 编辑核心配置文件`core-site.xml`以及`hdfs-site.xml`来完成基本设置。这些XML文件位于`/usr/local/hadoop/etc/hadoop/`路径下。 对于`core-site.xml`,添加如下内容以定义默认FS URI: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 而对于`hdfs-site.xml`,则需设定数据节副本数: ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` 注意,这里提到的核心站与HDFS站内的文件夹无需手动建立,因为后续初始化操作会自动生成所需结构[^1]。 #### 4. 调整环境变量 继续调整`.bashrc`或者相应的shell profile脚本加入HADOOP_HOME及其附属路径声明: ```bash export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source ~/.bashrc ``` #### 5. 初始化NameNode 运行下面这条指令来进行初次格式化命名空间: ```bash hdfs namenode -format ``` #### 6. 启动服务 利用启动脚本来激活必要的守护进程: ```bash start-dfs.sh start-yarn.sh ``` 如果遇到权限错误,则可能需要按照特定指引修正相应sh脚本里的身份认证部分[^5]。 最后确认Hadoop已正常工作可尝试打印其版本号: ```bash hadoop version ``` 预期输出类似于"Hadoop X.X.X"这样的字符串表示当前部署成功的具体版次[^2]。 ### 注意事项 确保防火墙不会阻碍内部通信端口;关闭SELinux以免干扰文件访问控制策略。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值