Hadoop分布式的搭建
1. 搭建前提
- 多台计算机
- 计算机需要安装Java
- 网络防火墙关闭
- 计算机之间可以连通
1.1 多台计算机的准备
如果要准备多台真的虚拟机,成本太高,我们在此使用虚拟机
但是安装多台虚拟机速度太慢,所以我们选择克隆
如何克隆?
1.2 克隆步骤
-
装好一台计算机
-
修改配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0
删除HWADDR
删除UUID- 修改主机名
/etc/sysconfig/network
-
关机
-
在虚拟里创建快照
-
在虚拟机里克隆
-
开启克隆出来的机器
-
修改计算机名
-
删除文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules
-
重启
2. 伪分布式搭建
-
下载hadoop安装包
-
安装hadoop
在我们这是解压
tar -xf hadoop版本号
-
配置hadoop的安装路径
PATH= $ PATH: $ hadoop/bin:$hadoop/sbin -
配置hadoop 配置Java的路径
文件路径在/hadoop-2.5.6/etc/hadoop/
(因为远程调用时,不会读取本机profile文件)(1)hadoop-env.sh
(2)mapred-evn.sh
(3)yarn-env.sh -
配置hadoop 配置关于分布式的内容
core-site.xml
<!--配置namenode在哪--> <property> <name>fs.defaultFS</name> <value>hdfs://node01:9000</value> </property> <!--配置hadoop存放数据的临时目录--> <property> <name>hadoop.tmp.dir</name> <value>/var/abc/</value> </property>
hdfs-site.xml
<property> <name>dfs.replication</name> <value>1</value> </property> <!--设置secondaryNode在哪个节点--> <property> <name>dfs.namenode.secondary.http-address</name> <value>node01:50090</value> </property>
-
修改slaves文件,设置哪个为datenode节点
-
格式化文件系统
hdfs namenode -format
-
启动hdfs系统
start-dfs.sh
-
查看进程
jps
-
在网页验证
http://ip:50070
-
基本操作
创建目录
hdfs dfs -mkdir -p /user/root
上传文件
hdfs dfs -put 文件名 路径
3 真分布式搭建
-
创建免密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys #把node01的公钥 发送给其它节点 scp ~/.ssh/id_dsa.pub node2:~/.ssh/node01.pub scp ~/.ssh/id_dsa.pub node3:~/.ssh/node01.pub scp ~/.ssh/id_dsa.pub node4:~/.ssh/node01.pub # 2,3,4节点将公钥追加到authorized_keys 在3台计算机依次执行 cat /.ssh/node01.pub >>~/.ssh/authorized_keys
-
修改配置文件
core-site.xml
<!--配置namenode在哪--> <property> <name>fs.defaultFS</name> <value>hdfs://node01:9000</value> </property> <!--配置hadoop存放数据的临时目录--> <property> <name>hadoop.tmp.dir</name> <value>/var/abc/</value> </property>
hdfs-site.xml
<!--设置副本数,不在超过节点数--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--设置secondaryNode在哪个节点--> <property> <name>dfs.namenode.secondary.http-address</name> <value>node02:50090</value> </property>
-
讲配置好的hadoop文件发给别的计算机
scp -r hadoop node02:`pwd` scp -r hadoop node03:`pwd` scp -r hadoop node04:`pwd`
-
格式化文件系统
hdfs namenode -format
-
启动hdfs系统
start-dfs.sh
-
查看进程
jps
-
在网页验证
http://ip:50070
-
基本操作
创建目录
hdfs dfs -mkdir -p /user/root
上传文件
hdfs dfs -put 文件名 路径
4. 分布式问题
WARN hdfs.DFSUtil: Namenode for null remains unresolved for ID null. Check your hdfs-site.xml file to ensure namenodes are configured properly.
解决方案:查看core-site.xml里面的fs.defaultFS的值是否正确
每次链接都提示是否确认?
Are you sure you want to continue connecting (yes/no)
解决方案:
修改/etc/ssh/ssh_config
将其中的# StrictHostKeyChecking ask 改成 StrictHostKeyChecking no`