Hadoop简易集群搭建
一、搭建集群的准备工作
1.准备3台虚拟机并配置好ip地址,hosts文件和免密登录
(1)配置ip地址(CentOS 7.0)
vi /etc/sysconfig/network-scripts/ifcfg-ens32
注:配置完后需要重启 service network restart
(2)配置域名映射
vi /etc/hosts
注:三台机器都要配置
(3)配置免密登录
生成密钥:ssh-keygen
把密钥拷贝到其他机器上:
ssh-copy-id mini1
ssh-copy-id mini2
ssh-copy-id mini3
配置好后可以测试一下 ssh mini2 看是否登录到mini2这台机器上
二、搭建集群
1.上传Hadoop的压缩文件到mini1上(这里以Hadoop2.6.4为例)
下载地址
2.解压安装Hadoop(这里我创建了一个hadoop用户)
cd /home/hadoop mkdir apps
tar -zxvf hadoop-2.6.4.tar -C apps
3.修改hadoop的配置文件
cd apps/hadoop-2.6.4/etc/hadoop
(1)vi hadoop-env.sh
配置JDK的环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_131 此时使用${JAVA_HOME}无法执行,通过ssh免密访问bash不在同一个会话里
(2)vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name> #配置文件管理系统
<value>hdfs://mini1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name> #配置进程产生的数据放到那个目录
<value>/home/hadoop/hdpdata</value>
</property>
</configuration>
(3)vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name> #配置数据副本数
<value>2</value>
</property>
<property>
<name>dfs.name.dir</name> #配置namenode的元信息保存路径,可以配置多个
<value>/home/hadoop/name1</value>
</property>
</configuration>
(4)vi mapred-site.xml.template 配置完后修改名字 mv mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name> #配置mapreduce运行的平台在yarn上默认在local上即单机版 <value>yarn</value>
</property>
</configuration>
(5)vi yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name> #配置yarn里面的老大
<value>mini1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name> #mapreduce需要的服务
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置好后就可以把Hadoop分发到其他机器上,当然这里你可以写个shell脚本
scp -r apps mini2:/home/hadoop
scp -r apps mini3:/home/hadoop
(6)配置启动的脚本
vi slaves
注:这里的配置是在mini1上启动namenode resourcemanager,在mini2 mini3上启动datanode nodemanager。
4.此时就基本完成了Hadoop简易集群的搭建,那么我们来启动测试一下,配置一下Hadoop的环境变量,就不需要每次都cd到hadoop的bin目录下了
vi /etc/profile
重启:source /etc/profile
5.格式化HDFS
hadoop namenode -format
当看到log中有 storage directory ...successfully formatted 就代表格式化成功了
6.启动HDFS
start-dfs.sh
查看进程 jps
当在mini1中看到进程中有NameNode SecondaryNameNode mini2和mini3中有DataNode 就代表启动成功了
当然,我们也可以在浏览器中输入 http://192.168.25.101;50070来查看
三、测试上传文件
在机器里找一个文件(小一点,会很慢)
hadoop fs -put sc.txt / (上传sc.txt文件到HDFS的根目录)
可以在Browse the file system 中查看
也可以通过命令来查看:hadoop fs -ls /