副标题[/!--empirenews.page--]
首先准备三台客户机(hadoop102,hadoop103,hadoop104),关闭防火墙,修改为静态ip和ip地址映射

配置集群
编写集群分发脚本
- 创建一个远程同步的脚本xsync,并放到当前用户下新建的bin目录下,配置到PATH中,使得此脚本在任何目录下都可以执行
- 脚本实现
- [kocdaniel@hadoop102 ~]$ mkdir bin
- [kocdaniel@hadoop102 ~]$ cd bin/
- [kocdaniel@hadoop102 bin]$ vim xsync
在文件中编写如下脚本代码
- #!/bin/bash
- #1 获取输入参数个数,如果没有参数,直接退出
- pcount=$#
- if((pcount==0)); then
- echo no args;
- exit;
- fi
-
- #2 获取文件名称
- p1=$1
- fname=`basename $p1`
- echo fname=$fname
-
- #3 获取上级目录到绝对路径 –P指向实际物理地址,防止软连接
- pdir=`cd -P $(dirname $p1); pwd`
- echo pdir=$pdir
-
- #4 获取当前用户名称
- user=`whoami`
-
- #5 循环
- for((host=103; host<105; host++)); do
- echo ------------------- hadoop$host --------------
- rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
- done
- 修改脚本xsync具有执行权限,并调用脚本,将脚本复制到103和104节点
- [kocdaniel@hadoop102 bin]$ chmod 777 xsync
- [kocdaniel@hadoop102 bin]$ xsync /home/atguigu/bin
集群配置
1.集群部署规划

由于计算机配置有限,只能使用三台虚拟机,工作环境中根据需要规划集群
2.配置集群
切换到hadoop安装目录/etc/hadoop/
- [kocdaniel@hadoop102 hadoop]$ vim core-site.xml
- # 在文件中写入如下内容
- <!-- 指定HDFS中NameNode的地址 -->
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://hadoop102:9000</value>
- </property>
-
- <!-- 指定Hadoop运行时产生文件的存储目录 -->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/opt/module/hadoop-2.7.2/data/tmp</value>
- </property>
配置hadoop-env.sh
- [kocdaniel@hadoop102 hadoop]$ vim hadoop-env.sh
- export JAVA_HOME=/opt/module/jdk1.8.0_144
export JAVA_HOME=/opt/module/jdk1.8.0_144
注意:我们已经在/etc/profile文件中配置了JAVA_HOME,这里为什么还需要配置JAVA_HOME?
答:因为Hadoop运行是守护进程(守护进程是一个在后台运行并且不受任何终端控制的进程。--摘自百度百科)),正是因为它后台运行,不接受任何终端控制,所以它读取不到我们配置好的环境变量,所以这里需要单独配置一下。
- [kocdaniel@hadoop102 hadoop]$ vim hdfs-site.xml
- # 写入如下配置
- <!-- 配置副本数量为3,默认也为3,所以这个也可以删掉 -->
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
-
- <!-- 指定Hadoop辅助名称节点主机配置 -->
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>hadoop104:50090</value>
- </property>
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|