14. apache hadoop 4台分布式集群搭建-part2

上文链接
13. apache hadoop 4台分布式集群搭建-part1

下载程序并解压:

cd /app/zpy 
wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-2.6.2/hadoop-2.6.2.tar.gz
tar zxvf hadoop-2.6.2.tar.gz
mv hadoop-2.6.2 hadoop
chown -R  hadoop:hadoop /app/zpy/hadoop

配置环境变量

vim /etc/profile.d/hadoop.sh
添加
export HADOOP_PRIFIX=/app/zpy/hadoop
export PATH=$PATH:${HADOOP_PRIFIX}/bin:${HADOOP_PRIFIX}/sbin
export HADOOP_YARN_HOME=${HADOOP_PRIFIX}
export HADOOP_MAPPERD_HOME=${HADOOP_PRIFIX}
export HADOOP_COMMON_HOME=${HADOOP_PRIFIX}
export HADOOP_HDFS_HOME=${HADOOP_PRIFIX}

master 节点的配置

core-site.xml 文件配置

cd  /app/zpy/hadoop/etc/hadoop
vim core-site.xml

<configuration>
 <property>
        <name>fs.defaultFS</name>
        <value>hdfs://test001.zipeiyi.corp:8020</value>
        <final>true</final>
 </property>
</configuration>

hdfs-site.xml配置

把数值的1改为3
使用三份副本会有一个问题,你的磁盘空间只会有三分之一使用率
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
</property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/hadoop/hdfs/nn</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/hadoop/hdfs/dn</value>
    </property>

    <property>
        <name>fs.checkpoint.dir</name>
        <value>file:///data/hadoop/hdfs/snn</value>
    </property>

    <property>
        <name>fs.checkpoint.edits.dir</name>
        <value>file:///data/hadoop/hdfs/snn</value>
    </property> 

    <property>
        <name>dfs.permissions</name>
        <value>false</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>
</configuration>

yarn-site.xml配置

vim 全局替换: :%s/源字符串/目的字符串/g

<configuration>
 <property>
  <name>yarn.resourcemanager.address</name>
  <value>test001.zipeiyi.corp:8032</value>
 </property>
 
 <property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>test001.zipeiyi.corp:8030</value>
 </property>

 <property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>test001.zipeiyi.corp:8031</value>
 </property>
 
 <property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>test001.zipeiyi.corp:8033</value>
 </property>
 
 <property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>test001.zipeiyi.corp:8088</value>
 </property>

 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
 

 <property>
  <name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>

 
 <property>
  <name>yarn.resourcemanager.scheduler.class</name>
  <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
 </property>

<property>
   <name>yarn.nodemanager.pmem-check-enabled</name>
   <value>false</value>
</property>

<property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
   <value>false</value>
</property>

<property>
 <description>Amount of physical memory, in MB, that can be allocated
for containers.</description>
 <name>yarn.nodemanager.resource.memory-mb</name>
 <value>31920</value>
</property>



<property>
 <description>vcores for nodemanager</description>
 <name>yarn.nodemanager.resource.cpu-vcores</name>
 <value>15</value>
</property>


</configuration>

yarn.nodemanager.resource.memory-mb参数的作用:

图片.png

yarn.nodemanager.resource.cpu-vcores参数的作用:

图片.png

编辑slave文件:

vim slaves 添加如下:
test002.zipeiyi.corp
test003.zipeiyi.corp
test004.zipeiyi.corp

slave节点的配置

197 与 198  199 的配置与master 196一样:
在主节点上使用hadoop用户复制
su hadoop
scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 10.1.10.197:/app/zpy/hadoop/etc/hadoop/  
scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 10.1.10.198:/app/zpy/hadoop/etc/hadoop/
scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 10.1.10.199:/app/zpy/hadoop/etc/hadoop/

格式化HDFS

与伪分布式模式相同,在HDFS集群的NN启动之前需要先初始化其用于存储数据的目录
如果hdfs-site.xml中的dfs.namenode.name.dir 属性指定的目录不存在,格式化命令会自动创建;
如果事先存在,请确保其权限设置正确,此时格式化操作会清除其内部所有数据并重新建立一个新的文件系统。

在所有机器上执行:
chown -R hadoop:hadoop /data/hadoop
chown -R hadoop:hadoop /app/zpy/hadoop

 只在主节点执行:
以hadoop用户执行:hdfs namenode -format
看格式化是否成功,应该找到这样一句话
17/04/17 10:07:17INFO common.Storage: Storage directory /data/hadoop/hdfs/nn has beensuccessfully formatted.

 对比主节点与从节点的目录:
/data/hadoop/hdfs/nn/
发现主节点的才有数据

启动hadoop进程的两种方式(现在不做这个操作,后面做)

启动hadoop集群的方法有两种:
一是在各节点分别启动需要启动的服务
二是在master节点启动整个集群

第一种方式分别启动

master节点需要启动
Namenode与snn服务以及Resourcemanager服务 
hadoop-daemon.sh(start|stop)namenode
hadoop-daemon.sh(start|stop)secondarynamenode
yarn-daemon.sh(start|stop)resourcemanager
各slave节点需要分别启动HDFS的DataNode服务,以及YARN的NodeManager服务
hadoop-daemon.sh(start|stop)datanode
yarn-daemon.sh(start|stop)nodemanager

第二种方式:在master节点启动整个集群(现在不做这个操作,后面做)

cd /app/zpy/hadoop/sbin
su hadoop 
start-dfs.sh   
start-yarn.sh  
ps: 较早的版本会提供start-all.sh 和stop-all.sh 脚本来统一控制hdfs与mapreduce,但hadoop2.0及之后的方式不再建议使用此方式

JAVA的配置

如果你的java并非按照标准路径配置,强烈建议你启动前修改
vim /app/zpy/hadoop/etc/hadoop/hadoop-env.sh
关于java的路径修改为绝对路径,不然启动会有错误
如下:
export JAVA_HOME=/app/zpy/java/jdk1.8.0_51

其他小细节

vim /etc/ssh/ssh_config
修改
#   StrictHostKeyChecking ask
去掉#号,然后修改如下:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

一条命令修改:
sed -i "s?#   StrictHostKeyChecking ask?StrictHostKeyChecking no \n UserKnownHostsFile /dev/null ?g" /etc/ssh/ssh_config

chown -R hadoop:hadoop /data/hadoop
chown -R hadoop:hadoop /app/zpy/hadoop
chmod -R 700 /app/zpy/hadoop/logs/

启动hadoop集群之HDFS(只在主节点启动)

su hadoop 
cd /app/zpy/hadoop/sbin/
start-dfs.sh
关闭:stop-dfs.sh

[hadoop@hadoop-nn01hadoop]$ start-dfs.sh

启动完毕后使用jps命令检查其余机器看是否已经启动相关角色

上传一个大于64M的文件

1)hdfs dfs -mkdir /test 
2)hdfs dfs -put  /opt/mysql-bin.001477  /test
3)hdfs dfs -ls -R   /test
-rw-r--r--   3 hadoop supergroup  295394121 2017-04-19 10:13 /test/mysql-bin.001477

4)我们去三台datanode服务器上去找一下我们真正的数据

第一台:
/data/hadoop/hdfs/dn/current/BP-1509373726-10.0.140.78-1492505099380/current/finalized/subdir0/subdir0
-rw-rw-r-- 1 hadoop hadoop 134217728 Apr 19 10:13 blk_1073741825
-rw-rw-r-- 1 hadoop hadoop   1048583 Apr 19 10:13 blk_1073741825_1001.meta
-rw-rw-r-- 1 hadoop hadoop 134217728 Apr 19 10:13 blk_1073741826
-rw-rw-r-- 1 hadoop hadoop   1048583 Apr 19 10:13 blk_1073741826_1002.meta
-rw-rw-r-- 1 hadoop hadoop  26958665 Apr 19 10:13 blk_1073741827
-rw-rw-r-- 1 hadoop hadoop    210623 Apr 19 10:13 blk_1073741827_1003.meta
more blk_1073741825_1001.meta 可以明显看出就是log-bin的数据


第二台:
-rw-rw-r-- 1 hadoop hadoop 134217728 Apr 19 10:13 blk_1073741825
-rw-rw-r-- 1 hadoop hadoop   1048583 Apr 19 10:13 blk_1073741825_1001.meta
-rw-rw-r-- 1 hadoop hadoop 134217728 Apr 19 10:13 blk_1073741826
-rw-rw-r-- 1 hadoop hadoop   1048583 Apr 19 10:13 blk_1073741826_1002.meta
-rw-rw-r-- 1 hadoop hadoop  26958665 Apr 19 10:13 blk_1073741827
-rw-rw-r-- 1 hadoop hadoop    210623 Apr 19 10:13 blk_1073741827_1003.meta


第三台:
-rw-rw-r-- 1 hadoop hadoop 134217728 Apr 19 10:13 blk_1073741825
-rw-rw-r-- 1 hadoop hadoop   1048583 Apr 19 10:13 blk_1073741825_1001.meta
-rw-rw-r-- 1 hadoop hadoop 134217728 Apr 19 10:13 blk_1073741826
-rw-rw-r-- 1 hadoop hadoop   1048583 Apr 19 10:13 blk_1073741826_1002.meta
-rw-rw-r-- 1 hadoop hadoop  26958665 Apr 19 10:13 blk_1073741827
-rw-rw-r-- 1 hadoop hadoop    210623 Apr 19 10:13 blk_1073741827_1003.meta


因为我们在配置文件hdfs-site.xml中做了如下定义:
    <property>
    <name>dfs.replication</name>
    <value>3</value>
    </property>

启动hadoop集群之yarn(主节点启动)

su hadoop
cd /app/zpy/hadoop/sbin/
start-yarn.sh
使用jps命令观察角色
主节点增加ResourceManager
从节点增加NodeManager

WEBUI监控

HDFS和YARN ResourceManager 各自提供了一个web接口,通过这些接口可以检查HDFS集群以及YARN集群的相关状态信息。
他们的访问接口分别为如下所示,具体使用中,需要将Namenode和RresourceManagerHost分别修改其相应的主机地址
HDFS-NameNode:http://10.0.140.78:50070
ResourceManager的web界面:http://10.0.140.78:8088
HDFS WEBUI
YARN WEBUI

如何向hadoop提交程序并运行?

ok,现在我们HDFS搭建完毕了,YARN也搭建完毕了,现在我们想在YARN上跑一个mapreduce程序。
我又不会写map和reduce程序,hadoop为我们提供了测试包
hadoop-YARN 自带了很多样例程序,他们位于hadoop安装路径下的
share/hadoop/mapreduce/目录里,其中hadoop-mapreduce-examples-2.6.2.jar
就可以作为mapreduce的程序测试!


yarn  jar hadoop-mapreduce-examples-2.6.2.jar ,可以看出好多选项
[hadoop@localhostmapreduce]$ yarn  jar  hadoop-mapreduce-examples-2.6.2.jar wordcount
Usage: wordcount<in> [<in>...] <out>
备注:out是目录,in 和 out都是HDFS文件


ok,那我们再修改一下:
yarn jar hadoop-mapreduce-examples-2.6.2.jar wordcount /test/mysql-bin.001477 /test/2

运行的时候 查看web界面application项   
http://10.0.140.78:8088,可以看到正在运行的application

看下结果:
hdfs dfs -lsr/test
hdfs dfs -cat  /test/2/part-r-00000

至此我们APACHE HADOOP 4台服务器集群已经搭建完毕了。
博主正在做一个500台 CDH HADOOP集群的项目,关于更多spark、HIVE、YARN 的更多用法会在下面CDH相关文章内进行详细介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容