hadoop集群搭建

来源:互联网 发布:如何参加淘宝天天特价 编辑:程序博客网 时间:2024/06/06 02:56

两台虚拟机

master 192.168.32.128slave1 192.168.32.129

1.安装linux系统(我是在Ubuntu系统在搭建的)
(可以根据自己的需要创建一个用户,也可以不创建,由于博主用的是虚拟机,就不创建了)

2.设置hosts

sudo vim /etc/hosts

将master与slave1的ip信息加入到hosts文件中(master与slave1中都要设置)

192.168.32.128 master 192.168.32.129 slave1 

3.替换源

sudo vim /etc/apt/source.list

//下面是我用的源,还挺快

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

更新源

sudo apt-get update

可以安装vim编辑器,对于后面更改配置非常方便

sudo apt-get install vim

4.安装jdk

sudo apt-get install openjdk-7-jdk

配置jdk 环境变量

sudo vim /etc/profile

环境变量配置

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64export JRE_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

其中JAVA_HOME和JRE_HOME的路径改为你自己的jdk的路径
可以通过以下命令查看自己jdk的路径

dpkg -L openjdk-7-jdk | grep '/bin/javac'

该命令会输出一个路径,除去路径末尾的 “/bin/javac”,剩下的就是正确的路径了
如输出路径为 /usr/lib/jvm/java-7-openjdk-amd64/bin/javac,则我们需要的路径为 /usr/lib/jvm/java-7-openjdk-amd64。

更改完成后执行以下命令,使文件更改生效

source /etc/profile

查看jdk是否配置好了

java -version

会出现java的版本信息,就说明配置好了

5.安装ssh,并配置ssh无密码登录

sudo apt-get install openssh-server

安装以后可以使用以下命令登录

ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了

设置无密码登录
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

exitcd ~/.ssh/ssh-keygen -t rsacat ./id_rsa.pub >> ./authorized_keys

再用 ssh localhost 就可以无密码登录了

master与节点slave1都要实现无密码登录

接着在 Master 节点上将公匙传输到 Slave1 节点:

scp ~/.ssh/id_rsa.pub slave1p@slave1:/home/hadoop/

接着在 Slave1 节点上,将 ssh 公匙加入授权:

cat ~/id_rsa.pub >> ~/.ssh/authorized_keysrm ~/id_rsa.pub    # 用完就可以删掉了

如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。

这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行如下命令进行检验

ssh slave1

6.安装hadoop
Hadoop 2 可以通过 链接1 或者 链接2 下载

hadoop配置文件配置(都在/home/wh/hadoop/etc/hadoop/下)

修改hadoop-env.sh

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

修改core-site.xml

<configuration>   <property>      <name>fs.defaultFS</name>      <value>hdfs://master:9000</value>   </property>   <property>      <name>hadoop.tmp.dir</name>      <value>file:/home/wh/hadoop/tmp</value>      <description>Abase for other temporary directories.</description>   </property></configuration>

修改hdfs-site.xml

<configuration>    <property>        <name>dfs.namenode.secondary.http-address</name>        <value>master:50090</value>    </property>    <property>        <name>dfs.replication</name>        <value>3</value>    </property>    <property>        <name>dfs.namenode.name.dir</name>        <value>file:/home/wh/hadoop/tmp/dfs/name</value>    </property>    <property>        <name>dfs.datanode.data.dir</name>        <value>file:/home/wh/hadoop/tmp/dfs/data</value>    </property></configuration>

修改mapred-site.xml(cp mapred-site.xml.template mapred-site.xml)

<configuration>   <property>      <name>mapreduce.framework.name</name>      <value>yarn</value>   </property>   <property>      <name>mapreduce.jobhistory.address</name>      <value>master:10020</value>   </property>   <property>      <name>mapreduce.jobhistory.webapp.address</name>      <value>master:19888</value>   </property></configuration>

修改yarn-site.xml

<configuration>   <property>      <name>yarn.resourcemanager.hostname</name>      <value>master</value>   </property>   <property>      <name>yarn.nodemanager.aux-services</name>      <value>mapreduce_shuffle</value>   </property></configuration>

将hadoop文件复制到slave1节点,并在slave1节点执行解压

master上的执行:

tar -zcf ~/master.master.tar.gz ./hadoop   # 先压缩再复制cd ~scp ./master.master.tar.gz slave1:/home/hadoop

Slave1 节点上执行:

sudo tar -zxf ~/master.master.tar.gz -C /usr/localsudo chown -R hadoop /usr/local/hadoop

同样,如果有其他 Slave 节点,也要执行将 master.master.tar.gz 传输到 Slave 节点、在 Slave 节点解压文件的操作。

首次启动需要先在 Master 节点执行 NameNode 的格式化:
(在hadoop目录下执行)

bin/hdfs namenode -format

接着可以启动 hadoop 了,启动需要在 Master 节点上进行:(任然在hadoop目录下执行)

sbin/start-all.shsbin/mr-jobhistory-daemon.sh start historyserver

最后输入jps命令即可查看hadoop启动信息

jps

通过http://(master的Ip):50070 查看结果

通过以下命令关闭hadoop集群

sbin/stop-all.shsbin/mr-jobhistory-daemon.sh stop historyserver
1 0
原创粉丝点击