ubuntu下hadoop伪分布式和完全分布式

Hadoop伪分布式搭建

  1. 下载JDK,使用xftp将下载好的JDK发送到Hadoop服务器中。
  2. 解压jdk,配置JDK的环境变量
  3. 在/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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章