一、简单单机Hadoop集群(伪分布式)搭建流程
(root权限下搭建的,没有权限的授予比较简单你)
在搭建完全分布式集群时,需要先搭建伪分布集群,来检测环境变量的配置,和配置文件的正确性
1.下载 JDK 与Hadoop压缩包,将文件传入linux系统中
解压配置环境:
①首先可以配置JDK与hadopp环境:
在根目录下建立一个apps文件,mkdir /apps
用工具将安装包传递到该文件目录下
②解压安装包
输入命令:tar -zxvf jdk-7u25-linux-x64.tar.gz
输入命令:tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz
-解压完毕之后配置 ~/.bash_profile
输入命令: vi ~/.bash_profile 进入配置环境
根据自己的路径配置JDK环境与Hadoop环境
# User specific environment and startup programs
JAVA_HOME=/test/java/jdk1.7.0_25
HADOOP_HOME=/apps/hadoop-2.6.4
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH
在配置完环境之后保存退出(:wq)
加载一下配置的环境,使新的环境变量生效
(环境变量在/etc/profile.d/下创建对应的*.sh文件最佳,配置完成之后source /etc/profile)
输入命令:Source ~/.bash_profile
然后为Hdoop配置Java环境
vi /apps/haoop-2.6.4/etc/hadoop/hadoop-env.xml
按照自己的java路径配置 JAVA_PATH=/test/java/jdk1.7.0_25
到此部环境变量已经完全准备完毕,此时可以测试环境变量是否配置成功
检测JDK:java -version java javac
检测Hadoop: hadoop version hadoop
2、修改apps/haoop-2.6.4/etc/下的配置文件
伪分布式只需要简单配置core-site.xml和hdfs-site.xml这两个文件
①配置:Core-site.xml
<property>
<name>fs.defaultFS</name>
#配置服务器及端口号
<value>hdfs://hadoop-1:8020</value>
</property>②配置hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
#配置namenode节点的目录
<name>dfs.namenode.name.dir</name>
<value>/app/hadoop/dfs/name</value>
</property>
<property>
#配置datanode的目录
<name>dfs.datanode.data.dir</name>
<value>/app/hadoop/dfs/data</value>
</property>
3、在确保以上环境与配置文件完全正确后
格式化
命令: hadoop namenode -format
启动namenode节点
输入命令:hadoop-daemon.sh start namenode
启动datanode
输入命令:hadoop-daemon.sh start namenode
全部启动完毕,可以用jps查看启动是否存在错误
hdfs namenode -format(格式化文件系统)
启动Namenode守护进程和DataNode守护进程
start-dfs.sh
此时可以使用hadoop fs -put * / 向集群传送文件
hadoop fs -ls / 查看文件
***重要******
注意:在启动namenode 与datanode时,要在完成命令之后,查看/apps/hadoop/loggs下面的对应的日志信息,查看启动是否成功过或产生了什么异常
查看hdfs根目录
命令为: hadoop fs -ls /
上传文件到hdfs根目录
命令:hadoop fs -put 文件 /
登陆网址http://localhost:50070 查看节点活跃状态以及上传到文件
在保证伪集群 搭建成功的条件下完成以下完全分布式集群的搭建
二、搭建完全分布式集群流
1.根据自己电脑配置,创建机器数量,此处以5台为例
将第一台配置好的系统克隆五份,由于是是克隆的,网络配置文件相同,修改/etc/sysconfig/network-scrpts/ifcfg-eth0文件中
idaddress
然后重启网卡: service network restart
根据需求修改ip和主机名
hadoop-1 hadoop-2 hadoop-3 hadoop-4 hadoop-5
2.角色分配(根据需求对五台机器进行角色分配)
第一台作为namanode和resurcemanager资源管理节点
第2、3、4作为datanode数据节点
第5台作为secondarynamenode节点
3.准备工作(配置主机名和对应的ip)
给机器一次命名为hadoop-1 hadoop-2 hadoop-3 hadoop-4 hadoop-5
根据需求修改主机名
输入命令:vi /cd /etc/sysconfig/network
在root用户下输入命令: hostname hadoop-*
修改hosts文件
vii /ect/hosts
例如:192.168.1.1 hadoop-*
4.配置无密登陆,一般系统都会自带ssh工具
首先检测ssh服务是否开启:
输入命令:service sshd status
在hoop-1机器上生成密钥
输入命令:ssh-keygen
将密钥发送到需要无密登陆的机器中(hadoop-2 hadoop-3 hadoop-4 hadoop-5)
例如输入命令:ssh-copy-id -i 192.168.1.1
重复上面的命令,实现1到2、3、4、5的无密登陆
因为此次搭建的伪完全分布式集群,需要修改/apps/hadoop_ /etc/hadoop/下的xml文件
5.对每台机器进行以下配置:
----------------------core-site.xml-------------------------将hadoop-1作为老大
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-1:9000</value>
</property>---------------------------------hdfs-site.xml--------------------------配置namenode datanode 还有就是将hadoop-5作为sercondarynamenode
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/app/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/app/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop-5:50090</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/app/hadoop/dfs/namesecondary</value>
</property>
</configuration>--------------------------------------mapred-site.xml-------------------------------
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>---------------------------------------yarn-site.xml---------------------------------
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-1</value>
</property>
</configuration>-----------------------------------------hadoop-env.sh-------------为hadooppei配置java
# The java implementation to use.
export JAVA_HOME=/test/java/jdk1.7.0_25
-----------------------------------------slaves--------------------配置奴隶文件,用于启动数据节点 (datanode)
hadoop-2
hadoop-3
hadoop-4完成以上配置文件的之后,检测每台机器的防火墙是否关闭,然后关闭
执行命令:service iptables stop
首先格式化namenode 命令为: hadoop name-node -format
启动所有节点: start-all.sh
启动命令完成之后,使用命令:hadoop dfsadmin -report 查看活跃节点
在hoodoop-1机器上的浏览器中查看网址:http://localhost:80070
查看Hadoop集群的根目录的命令为:hadoop fs -ls /
上传文件命令为:hadoop fs -put 文件 / 将文件上传到根目录
4.关闭集群使用命令:stop-all.sh