Ubuntu筹建hadoop集群(完全分布式模式)
Ubuntu搭建hadoop集群(完全分布式模式)
在搭建集群之前需要作如下准备工作,
1 在所有要使用的机器上建立相同的用户名和密码(用户级别即可),这里我的用户名和密码都是用hadoop。
2 保证所有的系统都安装了ssh,没安装的话,使用sudo apt-get instal openssh命令即可。
3保证所有的系统都安装了JDK,应该是1.6以上版本
4 在所有要使用的机器上,进入他们的 /etc/hosts 目录,添加所有集群的电脑的IP以及电脑名字;如下:(假设集群中共有4台电脑)
IP1 NAME1
IP2 NAME2
IP3 NAME3
IP4 NAME4
注意,集群中用到的所有电脑都要添加,每个电脑的IP和名字占一行。
以上是准备工作,下面开始搭建集群:
1选择一台机器作为namenode(比如选择NAME1),以hadoop用户身份进入NAME1,进入到 ~ 目录,在该目录下建立文件夹.ssh,命令为
~$ mkdir .ssh
接着生成密钥对
~$ssh-keygen -t rsa
然后执行命令
~$cd ~/.ssh
~/.ssh$cp idrsa.pub authorized_keys
接着讲authorized_keys复制到集群中所有其他的机器(这里为NMAE2,NMAE3,NMAE4)
~/.ssh$scp authorized_keys NAME2:/home/hadoop/.ssh
~/.ssh$scp authorized_keys NAME3:/home/hadoop/.ssh
~/.ssh$scp authorized_keys NAME4:/home/hadoop/.ssh
2接着,进入所有机器的~/.ssh目录,改变authorized_keys的权限:
~/.ssh$chmod 644 authorized_keys
3接着,还是回到namenode所在的NAME1电脑,在~目录下建立hadoop目录
~$mkdir hadoop
将下载的hadoop压缩包(格式为.tar.gz,见附录)移动到刚建立的hadoop文件夹,用如下命令解压缩:
~/hadoop$tar -zxvf hadoop-020.tar.gz
(假设解压后的文件夹名称为hadoop-020)
然后进入解压缩后的文件夹下:
~/hadoop$cd hadoop-020
继续进入到conf文件夹下:
~/hadoop/hadoop-020/$cd conf
在该文件夹下,修改core-site.xml hdfs-site.xml mapred-site.xml 如下:
Core-site.xml:
<configuration><property>
<name>fs.default.name</name>
<value>hdfs:NAME1//:9000</value>(此处的NAME1为namenode节点的主机名)
</property></configuration>
Hdfs-site.xml:
<configuration><property>
<name>dfs.replication</name>
<value>3</value>
</property></configuration>
mapred-site.xml:
<configuration><property>
<name>mapred.job.tracker</name>
<value>hdfs:NAME1//:9001</value>(此处的NAME1为namenode节点的主机名)
</property></configuration>
上面的三个文件修改完毕后保存退出。
接着修改当前目录下的masters和slaves文件
具体为masters中写入你的namenode节点的主机名,slaves写入你的所有slaves节点的主机名。这里为(每个主机名一行)
Masters:
NAME1
Slaves:
NAME2
NAME3
NAME4
保存后退出。
4将~/hadoop文件夹复制到其他所有机器上,位置与当前机器相同:
~$scp -r hadoop NAME2:/home/hadoop
~$scp -r hadoop NAME3:/home/hadoop
~$scp -r hadoop NAME4:/home/hadoop
其中NAME2,NAME3,NAME4为主机名,hadoop为之前建立的用户名
5最后,打开每个机器的~/hadoop/hadoop-020/conf/hadoop-env.sh文件,在末尾添加当前及其的JAVA_HOME
内容为
export JAVA_HOME=JDK的绝对地址
如果jdk是使用sudo apt-get install安装的话,内容应改为
export JAVA_HOME=/usr
6至此,Hadoop已经部署完毕。如果要添加或则删除节点,仅仅需要修改NameNode的Masters和Slaves即可。
7现在,在namenode节点上进入到~/hadoop/hadoop-020目录下,执行命令:
~/hadoop/hadoop-020$bin/hadoop namenode -format
~/hadoop/hadoop-020$bin/start-all.sh
好了,hadoop已经跑起来了。
在所有机器节点上执行jps命令
namenode节点应该显示:(进程号允许不同)
31768 SecondaryNameNode
955 Jps
31840 JobTracker
31594 NameNode
Slave节点应该显示:(进程号允许不同)
1871 TaskTracker
1771 DataNode
2965 Jps
如果是如上结果,hadoop已经成功安装。
在搭建集群之前需要作如下准备工作,
1 在所有要使用的机器上建立相同的用户名和密码(用户级别即可),这里我的用户名和密码都是用hadoop。
2 保证所有的系统都安装了ssh,没安装的话,使用sudo apt-get instal openssh命令即可。
3保证所有的系统都安装了JDK,应该是1.6以上版本
4 在所有要使用的机器上,进入他们的 /etc/hosts 目录,添加所有集群的电脑的IP以及电脑名字;如下:(假设集群中共有4台电脑)
IP1 NAME1
IP2 NAME2
IP3 NAME3
IP4 NAME4
注意,集群中用到的所有电脑都要添加,每个电脑的IP和名字占一行。
以上是准备工作,下面开始搭建集群:
1选择一台机器作为namenode(比如选择NAME1),以hadoop用户身份进入NAME1,进入到 ~ 目录,在该目录下建立文件夹.ssh,命令为
~$ mkdir .ssh
接着生成密钥对
~$ssh-keygen -t rsa
然后执行命令
~$cd ~/.ssh
~/.ssh$cp idrsa.pub authorized_keys
接着讲authorized_keys复制到集群中所有其他的机器(这里为NMAE2,NMAE3,NMAE4)
~/.ssh$scp authorized_keys NAME2:/home/hadoop/.ssh
~/.ssh$scp authorized_keys NAME3:/home/hadoop/.ssh
~/.ssh$scp authorized_keys NAME4:/home/hadoop/.ssh
2接着,进入所有机器的~/.ssh目录,改变authorized_keys的权限:
~/.ssh$chmod 644 authorized_keys
3接着,还是回到namenode所在的NAME1电脑,在~目录下建立hadoop目录
~$mkdir hadoop
将下载的hadoop压缩包(格式为.tar.gz,见附录)移动到刚建立的hadoop文件夹,用如下命令解压缩:
~/hadoop$tar -zxvf hadoop-020.tar.gz
(假设解压后的文件夹名称为hadoop-020)
然后进入解压缩后的文件夹下:
~/hadoop$cd hadoop-020
继续进入到conf文件夹下:
~/hadoop/hadoop-020/$cd conf
在该文件夹下,修改core-site.xml hdfs-site.xml mapred-site.xml 如下:
Core-site.xml:
<configuration><property>
<name>fs.default.name</name>
<value>hdfs:NAME1//:9000</value>(此处的NAME1为namenode节点的主机名)
</property></configuration>
Hdfs-site.xml:
<configuration><property>
<name>dfs.replication</name>
<value>3</value>
</property></configuration>
mapred-site.xml:
<configuration><property>
<name>mapred.job.tracker</name>
<value>hdfs:NAME1//:9001</value>(此处的NAME1为namenode节点的主机名)
</property></configuration>
上面的三个文件修改完毕后保存退出。
接着修改当前目录下的masters和slaves文件
具体为masters中写入你的namenode节点的主机名,slaves写入你的所有slaves节点的主机名。这里为(每个主机名一行)
Masters:
NAME1
Slaves:
NAME2
NAME3
NAME4
保存后退出。
4将~/hadoop文件夹复制到其他所有机器上,位置与当前机器相同:
~$scp -r hadoop NAME2:/home/hadoop
~$scp -r hadoop NAME3:/home/hadoop
~$scp -r hadoop NAME4:/home/hadoop
其中NAME2,NAME3,NAME4为主机名,hadoop为之前建立的用户名
5最后,打开每个机器的~/hadoop/hadoop-020/conf/hadoop-env.sh文件,在末尾添加当前及其的JAVA_HOME
内容为
export JAVA_HOME=JDK的绝对地址
如果jdk是使用sudo apt-get install安装的话,内容应改为
export JAVA_HOME=/usr
6至此,Hadoop已经部署完毕。如果要添加或则删除节点,仅仅需要修改NameNode的Masters和Slaves即可。
7现在,在namenode节点上进入到~/hadoop/hadoop-020目录下,执行命令:
~/hadoop/hadoop-020$bin/hadoop namenode -format
~/hadoop/hadoop-020$bin/start-all.sh
好了,hadoop已经跑起来了。
在所有机器节点上执行jps命令
namenode节点应该显示:(进程号允许不同)
31768 SecondaryNameNode
955 Jps
31840 JobTracker
31594 NameNode
Slave节点应该显示:(进程号允许不同)
1871 TaskTracker
1771 DataNode
2965 Jps
如果是如上结果,hadoop已经成功安装。