Hadoop集群添加新节点

写此博客目的前,真实的工作中遇到。需要在正在使用的Hadoop集群添加新节点,原有集群为6个节点,需要新增加一个节点到已有的集群中去。以前没有做过此操作,也是摸索着去处理这个问题,特此记录下这个过程:

总结:添加节点过程也不复杂,可能有了步骤后才有思路解决问题。首先,新增加节点需要安装的软件有(hadoop,jdk,spark,我有加装了scala),不需要装(zookeeper、hive等软件)。新增节点只是为了扩大原有集群的hdfs存储空间和计算内存,运算mapreduce程序运行在hadoop上,所以需要装hadoop。运行spark程序在spark上,所以需要安装spark。安装jdk的意义就不用说了,scala是我个人装上去的(也可以不安装)。

步骤:

  1. 以root身份登录新节点Linux中,然后添加用户组和用户,并设置登录密码:
	添加新用户组:				groupadd -g 5004 groupname
	新用户组添加新用户:			useradd -u 5004 -g 5004 -c "csmsopr" -d /wls/csmsopr csmsopr
		备注:-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
			  -g 用户组 指定用户所属的用户组。
			  -c comment 指定一段注释性描述。
		 	  -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
	为新用户设置登录密码: 	passwd 用户名
							输入两遍新密码	
注意:以上工作做完后,切换到新增的用户,然后再执行以下操作
  1. 修改hosts文件
vim /etc/hosts	

示例如下:
192.168.2.101 hadoop01
192.168.2.102 hadoop02
192.168.2.103 hadoop03
  1. 免密登录
a) 在新用户家目录下,输入ssh-keygen,一路默认回车
b) 然后,家目录下会生成公钥文件
c)复制公钥文件到授权列表
	cat ./id_rsa.pub >> authorized_keys
d) 修改文件权限
	chmod 600 ./authorized_keys
e) 将该授权文件 authorized_keys 文件复制到 slaves 中的节点
	scp	./authorized_keys hadoop@hadoop02:~/.ssh/
	(或者将每台机器 .ssh/id_rsa.pub中的一行内容(公钥)复制到其他所有机器上的authorized_keys中。但是Master节点特殊,需要把自身的公钥拷贝到自身的authorized_keys中)
f) 检查免密登录是否设置成功
	ssh hadoop02
	看看能否进入hadoop02的服务器(第一次需要输入密码)
  1. 安装软件(hadoop、jdk、spark、scala)
a) 上传hadoop安装包,后解压
b) 同样,上传jdk、spark、scala,后解要
  1. 修改配置文件(.bash_profile)
修改内容参考(不可照搬):
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.30
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.6
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin
export ZOOKEEPER_HOME=/home/hadoop/apps/zookeeper-3.4.10
export HBASE_HOME=/home/hadoop/apps/hbase-1.2.6
export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.6
export REDIS_HOME=/home/hadoop/apps/redis-3.2.6
export KAFKA_HOME=/home/hadoop/apps/kafka_2.11-1.1.0
export SPARK_HOME=/home/hadoop/apps/spark-2.3.1-bin-hadoop2.7
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.6/etc/hadoop/
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$JAVA_HOME/bin:$PATH:$CATALINA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$SQOOP_HOME/bin:$REDIS_HOME/bin:$KAFKA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
注意:修改完毕后执行以下命令刷新配置文件
source .bash_profile
  1. 修改 hadoop/etc/hadoop/目录下的 core-site.xml、hdfs-site.xml、yarn-site.xml、slaves、maper-site.xml 文件
此处所修改的几个文件内容可以由其他节点发送过来。
  1. 修改spark配置文件

a)将hadoop下/etc/hadoop/目录下core-site.xml、hdfs-site.xml、slaves、yarn-site.xml发送到spark下/conf目录下
b)修改spark-env.sh、spark-defaults.conf文件
spark-env.sh

修改内容参考(不可照搬)
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop01,hadoop02,hadoop03 -Dspark.deploy.zookeeper.dir=/spark"
export SPARK_MASTER_PORT=7077
export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop-2.7.6/etc/hadoop/
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://bd1804/sparklog"

spark-defaults.conf

修改内容参考(不可照搬)
spark.eventLog.enabled             true
spark.eventLog.dir                 hdfs://bd1804/sparklog
spark.yarn.jars /home/hadoop/apps/hadoop-2.7.6/share/hadoop/yarn
  1. 启动集群
修改以上内容后:
a)在hadoop下/sbin目录下启动datanode:
	hadoop-daemon.sh start datanode
b)在hadoop下/sbin目录下启动nodemanager
	yarn-daemon.sh start nodemanager
c)jps查看datanode和nodemanager是否已启动
d)回到namenode节点打印集群信息
	hdfs	 dfsadmin  -report
	或者网页登录50070端口查看节点数量

你可能感兴趣的:(hadoop)