hadoop集群增加节点

hadoop的集群的优势,其中之一就是可以灵活的增加数据节点,简简单单的实现扩容!

 

1、 最好安装统一的操作系统。安装的时刻把防火墙关了!

 

2、 在新节点使用root用户,修改系统的一些参数

修改时间。

date -s 12:00:00

 

设置IP地址。

vi /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart

 

修改host。

vi /etc/sysconfig/network
## 设置完以后不能立即见效,可以先使用hostname命令生效
hostname datanode-00003

 

新增用户hadoop。

useradd hadoop
passwd hadoop

 

修改hosts。

vi /etc/hosts

 

3、 新datanode适配到namenode。

切换到namenode节点机器

如果没有域名解析服务,这里需要用root用户来修改namenode的hosts文件,添加新节点的hostname和ip的对应。

vi /etc/hosts

 

拷贝jdk到新节点(最好不要使用系统自带的版本) 。

scp -r /opt/java/jdk1.6.0_29 datanode-00003:/opt/java

 

然后,从root用户切换到hadoop用户

 

修改HADOOP_HOME/conf/slaves文件,添加新节点的hostname(为了以后start/stop 统一管理hadoop)。

vi conf/slaves

 

namenode无密钥登录datanode,执行(为了以后start/stop 统一管理hadoop)。

ssh-copy-id -i .ssh/id-rsa.pub datanode-00003
#然后输入新节点hadoop用户的密码即可。

 

拷贝hadoop程序到新节点。

rsync -vaz --delete --exclude=logs --exclude=log hadoop-1.0.0 datanode-00003:~/

 

4、 使用hadoop用户登录到新节点datanode-00003。

修改环境变量。

cd
vi .bashrc
## 添加JAVA_HOME/bin到PATH路径
# export JAVA_HOME=/opt/java/jdk1.6.0_29
# export PATH=$JAVA_HOME/bin:$PATH

source .bashrc

 

创建必要的目录(把hadoop的进程的pids文件保存的自定义的目录下,如果防止在tmp下,一段时间过后会被清除)。

mkdir /opt/cloud
mkdir /home/hadoop/pids/hadoop/pids

 

5、 启动新节点,加入到集群

有很多文章说使用hadoop-daemon.sh来启动:

在新机器上进入hadoop安装目录 
  $bin/hadoop-daemon.sh start datanode 
  $bin/hadoop-daemon.sh start tasktracker

 

其实,大可不必,使用hadoop登录到namenode,在namenode上执行start-all.sh即可。

bin/start-all.sh

启动节点的时刻,会检查是否已经启动,只会启动未启动的服务。

 

如果希望节点的数据平均点,可以执行:

bin/start-balancer.sh

 

 

参考资料:

1、 shell脚本自动修改IP信息 http://kerry.blog.51cto.com/172631/517921

2、 http://a280606790.iteye.com/blog/867532

3、 http://eclecl1314-163-com.iteye.com/blog/987732

4、 http://running.iteye.com/blog/906585

 

 

### Hadoop集群节点配置 #### 主节点的作用与重要性 Hadoop集群中的主节点NameNode)负责管理文件系统的命名空间以及客户端对文件的访问操作。作为整个分布式文件系统的核心组件,它保存着元数据信息并协调DataNodes的工作[^1]。 #### 配置核心参数 为了确保主节点能够正常工作,在`$HADOOP_HOME/etc/hadoop/core-site.xml` 文件中需设置如下关键属性: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode_host:8020</value> </property> </configuration> ``` 此配置指定了默认文件系统的协议和名称节点地址。 #### 调整内存分配策略 考虑到大数据处理的需求,适当调整JVM堆大小可以提高性能表现。编辑 `$HADOOP_HOME/etc/hadoop/hadoop-env.sh` 文件来修改 `HADOOP_NAMENODE_OPTS` 变量值: ```bash export HADOOP_NAMENODE_OPTS="-Xmx4g -Djava.net.preferIPv4Stack=true" ``` 上述命令将最大堆尺寸设为4GB,并强制使用IPv4网络栈[^3]。 #### 数据目录设定 在生产环境中建议为主节点指定多个磁盘分区用于存储临时数据,从而实现负载均衡的效果。通过编辑 `$HADOOP_HOME/etc/hadoop/hdfs-site.xml` 来完成这项任务: ```xml <configuration> <property> <name>dfs.namenode.name.dir</name> <value>/data/nn/dn,/disk2/data/nn/dn</value> </property> </configuration> ``` 这里定义了两个不同的本地路径供NameNode持久化日志记录之用。 #### 安全机制启用 当涉及到敏感业务场景时,开启Kerberos认证服务可增强安全性。具体做法是在core-site.xml里加入安全模式开关及相关参数: ```xml <configuration> <property> <name>hadoop.security.authentication</name> <value>kerberos</value> </property> </configuration> ``` 这一步骤使得所有通信都经过严格的验证流程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值