Hadoop伪分布式搭建
- 下载JDK,使用xftp将下载好的JDK发送到Hadoop服务器中。
- 解压jdk,配置JDK的环境变量
- 在/etc/profile中添加如下代码:
4. 重启配置文件,使其生效。source /etc/profile
5. 到Hadoop的官网http://hadoop.apache.org/releases.html下载hadoop,后缀为.tar.gz。
6. 将下载好的压缩包拷贝到hadoop服务器(注意:不要在window中解压后复制)。
7. 解压:tar –zxvf 文件名.tar.gz
8. 配置Hadoopd环境变量,在/etc/profile中添加如下代码:
9. 使配置文件生效。source /etc/profile。
10. 修改hadoop中,etc/hadoop目录下的hadoop-env.sh文件,将其中的JAVA_HOME路径改为我们自己安装的这个JDK路径。
11. 修改hadoop中/etc/hadoop/core-site.xml文件。在<configuration>标签中添加如下代码:
(1)添加指定的默认文件系统名称的配置,master是hosts中的ip映射
在我的hosts中是
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
ps:localhost是指ip地址 可以通过ifconfig查看
(2)添加指定中间数据文件存放目录的配置,存放到hadoop目录下
<property>
<name>hadoop.tmp.dir</name>
<value>/home/ysy/tmp</value>
</property>
ps:/home/ysy/tmp是本人的目录地址
12. 修改hadoop中etc/hadoop/hdfs-site.xml。将默认的副本数3改成1。因为我们现在用的是伪分布式。在<configuration>标签中添加如下代码:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
13. 格式化文件系统。执行hadoop中bin目录下的hdfs namenode –format指令即可。
14. 启动。执行hadoop中的sbin目录中的./start-all.sh,启动完成后通过jps查看是否都已开启。
Hadoop完全分布式搭建
首先本人用的是4台虚拟机搭建的完全分布式,分别是:
master,slave01,slave02,slave03
1.获取到所有虚拟机的ip地址,写入到/etc/hosts中去
2.设置ssh免密登录
(1)把所有主机安装上openssh-server
sudo apt-get install openssh-server
(2)在所有主机下分别创建sshkey
ssh-keygen -t rsa
ps:中途要输入三个回车
(3)输入命令 cd .ssh,进入到.ssh下,输入命令(在master下)
cat id_rsa.pub >> authorized_keys
将id_rsa.pub公钥内容拷贝到authorized_keys文件中
(4)再登录上其他主机输入
ssh-copy-id -i master #登录slave01,将公钥拷贝到master的authorized_keys中
ssh-copy-id -i master #登录slave02,将公钥拷贝到master的authorized_keys中
ssh-copy-id -i master #登录slave03,将公钥拷贝到master的authorized_keys中
(5)登录master修改authorized_keys的权限
chmod 600 authorized_keys
(6)在master中通过命令将authorized_keys发给其他的主机
scp -r ~/.ssh/authorized_keys ysy@slave01:~/.ssh/
scp -r ~/.ssh/authorized_keys ysy@slave02:~/.ssh/
scp -r ~/.ssh/authorized_keys ysy@slave03:~/.ssh/
ps:我这边是所有主机上都做了ip的映射,如果没有做映射就scp -r ~/.ssh/authorized_keys ysy(主机名 whoami查看)@xxx.xxx.x.x(要发送的主机的ip):~/.ssh/
(7)至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。
ps:hadoop的下载和安装命令前面已经写了 后面就不写了
3.在master中配置/etc/hadoop下面的文件 一共包括:core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml.template slaves masters(我的配置中没有这个文件 我自己建立的)
(1)core-site.xml配置
(2)hadoop-env.sh配置
(3) hdfs-site.xml配置
(4)mapred-site.xml.template配置
其中的ip是master的ip
(5)slaves配置
(6)masters配置
4通过scp将hadoop发送给其他的主机
scp -r /mysoftware/hadoop ysy@slave01:/mysoftware/
scp -r /mysoftware/hadoop ysy@slave02:/mysoftware/
scp -r /mysoftware/hadoop ysy@slave03:/mysoftware/
5. 格式化文件系统。执行hadoop中bin目录下的hdfs namenode –format指令即可。(在master主机下面完成即可)
6.启动。执行hadoop中的sbin目录中的./start-all.sh(在master中启动),启动完成后通过jps查看所有主机和服务是否都已开启。
7.也可以通过http://xxx.xxx.xxx.xxx:50070来访问hadoop集群状态 前提是在 windows系统下的C:\Windows\System32\drivers\etc中的hosts文件修改添加一个 192.168.138.131 master(即自己虚拟机的主机master的ip)。访问Datanodes结果如下图所示
问题:
1.注意的是 ssh免密登录中 ssh-copy-id -i master 也包括 master也要输入命令
2.在ssh中出现错误时,可以删除掉.ssh中的文件重新配置
3/etc/network/interfaces