hadoop集群搭建

零基础搭建hadoop集群,目标 1(master)+2(slaves)

工具准备:

 $  vi /etc/hostname

3 克隆2台机器,分别为 Slave1 Slave2 。之间的文件传输可使用命令

  $ scp   源文件  -r(如果是文件夹)  root@Slave1://目标文件地址

4 然后执行如下命令修改自己所用节点的IP映射。修改完后重启(shutdown -r now)

 $ vi /etc/hosts
 $ source /etc/hosts
192.168.3.234 Master
192.168.3.231 Slave1
192.168.3.232 Slave2
$ ping Master -c 3   # 只ping 3次,否则要按 Ctrl+c 中断

5 ssh无密码验证配置
(1) 首先生成 Master 节点的公匙,在 Master 节点的终端中执行

$ cd ~/.ssh               # 如果没有该目录,先执行一次ssh localhost
$ rm ./id_rsa*            # 删除之前生成的公匙(如果有)
$ ssh-keygen -t rsa       # 一直按回车就可以

(2)让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行

$ cat ./id_rsa.pub >> ./authorized_keys

(3)完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave1 节点:

$ scp ~/.ssh/id_rsa.pub root@Slave1:/root/

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

$ mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在则忽略
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
$ rm ~/id_rsa.pub    # 用完就可以删掉了

(5)测试

$ ssh Slave1
$ exit

6 将hadoop2.6.0 拷贝至 /usr 目录下 并解压

7 配置 PATH变量

  $ vi  /etc/profile
 export JAVA_HOME=/usr/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:/usr/hadoop-2.6.0/bin:/usr/hadoop-2.6.0/sbin
最后,$ source  /etc/profile

8 配置集群/分布式环境 (/hadoop-2.6.0/etc/hadoop 目录下)

(1) 修改 slaves
Msater
Slave1
Slave2
(2) 修改 core-site.xml

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

(3) 文件 hdfs-site.xml,dfs.replication 一般设为 slave数量。此处需要新建 dfs和tmp文件目录

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/root/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/root/dfs/data</value>
        </property>
</configuration>

(4) mapred-site.xml (需要先重命名,默认文件名为 mapred-site.xml.template , $ cp mapred-site.xml.template mapred-sit

<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>

(5) 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>

9 将文件复制到其它机器
(1) Master节点

$ cd /usr/local
$ sudo rm -r ./hadoop/tmp     # 删除 Hadoop 临时文件
$ sudo rm -r ./hadoop/logs/*   # 删除日志文件
$ scp -r /hadoop-2.6.0  root@Slave1:/usr/

(2) 在 Slave1 节点上执行

$sudo chmod -R /usr/hadoop-2.6.0

(3) 第一次启动前需要先对 Master 节点执行 NameNode 的格式化

$hdfs namenode -format

如果 权限不够,查看hdfs权限,并给予权限

$ ll /usr/hadoop-2.6.0/bin/hdfs

10 CentOS系统需要关闭防火墙

$ systemctl stop firewalld.service    # 关闭firewall
$ systemctl disable firewalld.service # 禁止firewall开机启动

11 Master上启动hadoop

$ start-dfs.sh
$ start-yarn.sh
$ mr-jobhistory-daemon.sh start historyserver

12 查看 各进程 $ jps
(1)在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程
(2)在 Slave 节点可以看到 DataNode 和 NodeManager 进程
(3)另外还需要在 Master 节点上通过命令 hdfs dfsadmin -report 查看 DataNode 是否正常启动,如果 Live datanodes 不为 0 ,则说明集群启动成功
(4)也可以通过 Web 页面看到查看 DataNode 和 NameNode 的状态:http://master:50070/。如果不成功,可以通过启动日志排查原因。
13. 执行分布式实例
(1) 首先创建 HDFS 上的用户目录

$ hdfs dfs -mkdir -p /user/hadoop

(2) 将 /usr/hadoop-2.6.0/etc/hadoop 中的配置文件作为输入文件复制到分布式文件系统中

$ hdfs dfs -mkdir /input
$ hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml /input

(3) 通过查看 DataNode 的状态(占用大小有改变),输入文件确实复制到了 DataNode 中
(4)运行 MapReduce 作业

$ hadoop jar /usr/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep /input /output 'dfs[a-z.]+'

(5) 同样可以通过 Web 界面查看任务进度 http://master:8088/cluster,在 Web 界面点击 “Tracking UI” 这一列的 History 连接,可以看到任务的运行信息
(6) 关闭 Hadoop 集群也是在 Master 节点上执行的

$ stop-yarn.sh
$ stop-dfs.sh
$ mr-jobhistory-daemon.sh stop historyserver

参考:
http://dblab.xmu.edu.cn/blog/install-hadoop-cluster/
http://www.cnblogs.com/zengxiaoliang/p/6478859.html
http://blog.sina.com.cn/s/blog_95b63fc90102vrvy.html
http://dblab.xmu.edu.cn/post/7586/#userconsent#

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值