搭建hadoop集群关键步骤--以三节点为例

搭建三节点的hadoop集群

要求:

主机名称

备注

IP地址

功能

hadoop01

Master

主节点

192.168.211.134

NameNodeDataNodeResourceManagerNodeManager

扫描二维码关注公众号,回复: 81398 查看本文章

hadoop02

Slave

次节点

192.168.211.129

DataNodeNodeManagerSecondaryNameNode

hadoop03

Slave

次节点

192.168.211.140 

DataNodeNodeManager

所有机子都需要配置

1.JDK        2.SSH免登陆      3.Hadoop集群

三台机子同时进行:
步骤一:
添加用户,设置密码
useradd hadoop
passwd hadoop

步骤二:
为用户设置权限
su root
visudo
在文件的如下位置,为hadoop添加一行即可
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
#如果需要用户hadoop使用sudo命令时不输入密码,则是输入以下一句:
hadoop ALL=(ALL) NOPASSWD:ALL

步骤三:
同步时间:三台主机同时设置
sudo date -s "00:00:00"

步骤四;
设置主机名:
sudo vi /etc/sysconfig/network
每台各设置
=hadoop01
=hadoop02
=hadoop03

步骤五:
配置内网域名映射(在各主机下都写三台主机的映射)sudo vi /etc/hosts
hadoop01
hadoop02
hadoop03

步骤六:
配置防火墙
service iptables start
service iptables status
service iptables stop
chkconfig iptables --list
chkconfig iptables of
service iptables save

下面在一台主机上进行:

步骤七:
安装jdk,hadoop
上传jdk、Hadoop包
解压jdk包:/home/hadoop/jdk1.8.0_101
tar -zxvf jdk-8u101-linux-x64.tar.gz
修改配置文件 sudo vi /etc/profile
export JAVA_HOME=/home/hadoop/jdk1.8.0_101
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
PATH=$PATH:$JAVA_HOME/bin:
刷新配置文件:source /etc/profile
which java 查看当前系统使用的jdk/home/hadoop/jdk1.8.0_101/bin/java

步骤八
解压Hadoop包
tar -zxvf hadoop-2.6.1.tar.gz
修改配置文件(包括java,hadoop) sudo vi /etc/profile

export JAVA_HOME=/home/hadoop/jdk1.8.0_101
export HADOOP_HOME=/home/hadoop/hadoop-2.6.1
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

刷新配置文件:source /etc/profile

步骤九:设置免登录
免密登录作用:用于在namenode 和datanode 之间传递。

(在根目录(~)ssh (按table键显示ssh文件,包括ssh-key加密钥)
cd /home/hadoop/.ssh 可以进入.ssh文件夹
在.ssh 路径下 ls 可以看到know_hosts文件)

配置加密命令:
在根目录(~)下 cd ~
ssh-keygen -t rsa 回车执行,然后一路回车(好像一共回车3次)

然后在 /home/hadoop/.ssh/目录下
cd /home/hadoop/.ssh/
ls
显示增加了id_rsa id_rsa.pub两个文件

在/home/hadoop/.ssh/目录下,ssh- (按table键)
显示有ssh-copy-id 文件

在/home/hadoop/.ssh/下执行
ssh-copy-id hadoop@hadoop01 之后再输入密码,回车
ssh-copy-id hadoop@hadoop02 之后再输入密码,回车
ssh-copy-id hadoop@hadoop03 之后再输入密码,回车

在~根目录下,scp ./myfile hadoop@hadoop02:/home/hadoop/ 回车执行,可远程发送
在~根目录下,ssh hadoop@hadoop03 回车执行可进入第三台主机

删掉/hadoop-2.6.1/share文件夹下doc文件夹(用不到)

步骤十:
注意:把jdk安装包发送给其他节点:
scp -r jdk1.8.0_101 hadoop@hadoop02:/home/hadoop/
scp -r jdk1.8.0_101 hadoop@hadoop03:/home/hadoop/
也可以发送环境变量过去:
sudo scp /etc/profile root@hadoop02:/etc/
sudo scp /etc/profile root@hadoop03:/etc/
刷新系统环境变量配置文件: source /etc/profile

步骤十一:
给Hadoop框架配置jdk(作用:启动集群)
vi /opt/hadoop/etc/hadoop/hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME} 修改为
export JAVA_HOME=/home/hadoop/jdk1.8.0_101


步骤十二:
在/home/hadoop/hadoop-2.6.1/路径下添加hadoopdata文件夹
cd /home/hadoop/hadoop-2.6.1/
mkdir hadoopdata

手动创建的hadoopdata文件夹是用来存放数据和元数据的,
注意:1.要放在/home/hadoop/hadoop-2.6.1/下,不能放在根目录下,放在根目录下没有权限操作。
2.要在发送环境变量和配置好的hadoop文件夹之前创建。


步骤十三:修改配置文件
修改配置文件
修改core-site.xml文件
<property>
<name>fs.defaultFS</name>
<!--配置hdfs系统的地址-->
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.6.1/hadoopdata/tmp</value>
</property>

修改hdfs-site.xml文件
<property>
<name>dfs.replication</name>
<!--副本数3-->
<value>3</value>
</property>
<property>
<!--hadoop2.x默认数据块大小是128M-->
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!--NameNode节点存储元数据的位置-->
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!--DataNode节点存储数据块的位置-->
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/dfs/data</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///home/hadoop/hadoop-2.6.1/hadoopdata/checkpoint/dfs/cname</value>
</property>
<property>
<name>dfs.http.address</name>
<value>hadoop01:50070</value>
</property>
<property>
<!--hdfs系统的web地址-->(主机2为主机1做辅助作用)
<name>dfs.secondary.http.address</name>
<value>hadoop02:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

修改mapred-site.xml文件
命令如下:
# mv mapred-site.xml.template mapred-site.xml
#vi mapred-site.xml

<property>
<!--配置执行计算模型时使用yarn资源调度器-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
<!--配置MapReduce框架的历史服务的地址-->
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>

修改yarn-site.xml
<property>
<!--配置resourcemanager服务的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01:8088</value>
</property>

步骤十四:配置datanode,datamanager节点
#vi slaves
将所有需要配置成slave类型的机器的机器名写在其内部即可.
注意:每个机器名占一行。
hadoop01
hadoop02
hadoop03

步骤十五:
(Master文件存的是的secondarynamenode列表)(master文件没有,需手动创建)注意要在hadoop目录下创建
#vi /etc/hadoop/master
# vi ./master
hadoop02

步骤十六:
//将配置好的Hadoop文件夹发送给slave1和slave2机子。在~根目录下进行发送,即远程拷贝
#scp -r hadoop-2.6.1 hadoop@hadoop02:/home/hadoop/
#scp -r hadoop-2.6.1 hadoop@hadoop03:/home/hadoop/

步骤十七:
配置Hadoop框架的环境变量:----一会儿调一下
export HADOOP_HOME=/home/hadoop/hadoop-2.6.1 (直接粘贴)
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin (配置bin,是因为执行脚本在bin里面.将 :$HADOOP_HOME/bin:$HADOOP_HOME/sbin 直接添加
在 PATH=$PATH:$JAVA_HOME/bin 后即可) 作用:配置之后,在任何路径下都可以使用/sbin目录下的脚本。
# source /etc/profile

步骤十八:
发送hadoop的环境变量到其他节点:
scp /etc/profile root@hadoop02:/etc/
scp /etc/profile root@hadoop03:/etc/

步骤十九;
可测试:根目录~下 st+table键出现以st开头的文件即表明配置成功。

步骤二十:
//启动Hadoop集群(因为name和data目录只有在格式化之后才创建)
在/home/hadoop/hadoop-2.6.1/hadoopdata文件夹下格式化
//启动之前先格式化,只需要一次即可(在NameNode节点)
#hadoop namenode -format

步骤二十一;启动hdfs集群和yarn集群
在根目录下~,执行start-dfs.sh 先启动hdfs集群。执行完毕之后,显示启动namenode 和datanode。
在/dfs文件夹下自动创建了data和name两个文件夹。

在~根目录下,执行start-yarn.sh ,启动yarn集群,启动后显示resourcemanager和nodemanager
(log显示在第一台启动resourcemanager)
步骤二十二;
jps验证:显示启动各个功能

步骤二十三:
集群启动成功,上传文件测试:
根目录~下,vi aaa ,随便写点东西即可,保存退出
根目录下执行,hadoop fs -p ./aaa / (注:./aaa表示当前路径,后面的 / 表示hdfs系统的根路径

 搭建集群主要在于配置文件,配置文件说明链接:

 以五节点为例:链接:

猜你喜欢

转载自www.cnblogs.com/pingzizhuanshu/p/8963961.html
今日推荐