摘要:注意这里生成密钥建议在几台虚拟机克隆过后网络配置文件配置完成后施行,免密码登录这里直接影响最后格式化及节点启动是否成功,所以笔者在最后设置,检验完免密码登录后,启动格式化。
0.环境搭建准备
实体机Win7 64位
SSH Secure Shell Client
Centos 6.5 版本
Hadoop 2.6.0 版本(编译后64位)
OpenJdk1.7.0
注:jdk的安装方法有三种,具体参照http://blog.csdn.net/u0114142...
1.实验环境IP hostname role
192.168.47.131 hadoop1 ActiveNameNode
192.168.47.132 hadoop2 StandByNameNode
192.168.47.133 hadoop3 DataNode1
192.168.47.134 hadoop4 DataNode2
(注:下面的代码有的是用超级用户权限才能执行,所以遇到权限不够的时候,代码前面加上sudo,将自己当前用户变为超级用户的方法比较简单,就不多说了,也可以使用root权限,但比较费事。)
2-1 网络配置物理地址
hadoop1 00:0C:29:4E:45:5B
hadoop2 00:50:56:28:02:B1
hadoop3 00:50:56:3F:4C:59
hadoop4 00:50:56:3C:D1:7D
1.查看虚拟机物理地址 设置—网络适配器—高级—Mac地址 如下图:
PS:每次复制完虚拟机后,它们物理地址都相同,按下生成,即可生成新的物理地址,这样可以保证每一台虚拟机的物理地址不同,防止后面网络配置出错。
2.进行eth0配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改硬件地址
并加入以下三行
IPADDR=192.168.47.131 NETMASK=255.255.255.0 GATEWAY=192.168.47.2
观察下面两项,改成如下设置
ONBOOT=yes BOOTPROTO=none
3.配置DNS
vim /etc/resolv.conf
输入nameserver 192.168.47.2 即网关(也可以参照其他资料上设置,最终连上网就行)
保存后,输入
service iptables stop
考虑到后面节点的启动,也可以将防火墙设置为永久关闭,命令如下:
chkconfig iptables off
如果还是没连接,输入
service network restart
4.修改主机名
编辑系统文件
vim /etc/sysconfig/network
在里面添加下面语句(根据实际修改)
HOSTNAME=hadoop1
5.配置hosts文件
vim /etc/hosts 192.168.47.131 hadoop1 192.168.47.132 hadoop2 192.168.47.133 hadoop3 192.168.47.134 hadoop4
网络配置这里比较重点,网上有很多方法,个人觉得这种方法算是比较简单易行的,整体虚拟机网络设置为dhcp,即自动获取,这样可以保证虚拟机和外网互通,建议可以在windows和虚机间ping一下,检查是否联网,之后在几台虚拟机上设置静态Ip,可以ifconfig一下,检查是否设置成功。
2-2 SSH免密码登录1.安装SSH:
yum install openssh-clients
如果输入yum install ssh可能会报错,报错如下
ssh安装成功界面
3.修改SSH配置文件
vim /etc/ssh/sshd_config
修改成如下图(其实就是把前面 ‘#’ 删除即可)
重启SSH:
service sshd restart
进入当前用户下,生成秘钥
cd /home/hadoop ssh-keygen -t rsa
一路回车
设置.ssh目录和公秘钥权限
sudo chmod 700 /home/hadoop sudo chmod 700 -R ~/.ssh sudo chmod 600 ~/.ssh/authorized_keys
配置本机免密码登录
cat id_rsa.pub >> authorized_keys
检验能否无密码ssh登录本机
[hadoop@hadoop1 .ssh]$ssh hadoop1
第一次登录需要回答yes,以后都不需要,可以直接登录。
注意:这里生成密钥建议在几台虚拟机克隆过后网络配置、文件配置完成后施行,免密码登录这里直接影响最后格式化及节点启动是否成功,所以笔者在最后设置,检验完免密码登录后,启动格式化。
这里我配置了activenamenode到其他几个datanode的免密码登录,即hadoop1到hadoop2、hadoop3、hadoop4的免密码登录,也可以设置双向的。
hadoop1主机免密码登录hadoop2主机
1.进入hadoop1的.ssh目录下
cd ~/.ssh
2.把authorized_keys复制到其他机器上,如节点hadoop2
scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh/temp
注意:若出现权限不足,可以root权限过去
scp authorized_keys root@hadoop2:/home/hadoop/.ssh/temp
3.进入hadoop2的.ssh目录,修改拥有者和用户组
cd ~/.ssh/ chown hadoop temp chgrp hadoop temp cat temp >> authorized_keys
现在可以从hadoop1免密码登录hadoop2,在hadoop1主机上
ssh hadoop2
成功后可以删除临时文件temp(这个临时文件不需要新建,系统自己会建)
rm temp
从hadoop2主机免密码登录到hadoop1
1.在hadoop2上执行
cd ~/.ssh scp authorized_keys hadoop@name:/home/hadoop/.ssh/temp
在hadoop1上执行
cd ~/.ssh/ cat temp >> .ssh/authorized_keys
在hadoop2虚拟机上测试
ssh hadoop1
确定activenamenode可以免密码登录到任何一个datanode后,开始启动节点,注意最起码保证以上要求,在本例中应该最少设置hadoop1能免密码登录到hadoop2、hadoop3、hadoop4,否则会出现最后格式化的时候出现连接不上其他几台虚拟机的报错(原理嘛很简单,就是namenode会与其他几个datanode进行交互,如果设置了密码,也不可能人工输入密码,程序就会报错)。
2-3-1安装过程
1.解压安装包
将已下载好的hadoop-2.6.0.tar.gz 存放在hadoop用户目录下, 并解压至当前主用户目录下.
tar -zxvf /home/hadoop-2.6.0.tar.gz -C /home/hadoop/
Apache Hadoop 各个版本的下载地址:http://archive.apache.org/dis...
2.配置Hadoop的环境变量
sudo vim /etc/profile
在末尾加上以下配置,保存退出
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.环境变量生效
sudo source /etc/profile
2-3-2 文件配置
进入到目录hadoop-2.6.0里的/etc/hadoop/目录下进行文件的配置
1.vim hadoop-env.sh
增加java和hadoop环境变量及本地库
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.121.x86_64 export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"
2.修改core-site.xml文件
fs.defaultFS hdfs://hadoop1:8020
3.修改yarn-site.xml文件
yarn.resourcemanager.address hadoop1:8032 yarn.resourcemanager.scheduler.address hadoop1:8030 yarn.resourcemanager.webapp.address hadoop1:8088 yarn.resourcemanager.webapp.https.address hadoop1:8090 yarn.resourcemanager.resource-tracker.address hadoop1:8031 yarn.resourcemanager.admin.address hadoop1:8033 yarn.resourcemanager.scheduler.class org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler yarn.scheduler.fair.allocation.file ${yarn.home.dir}/etc/hadoop/fairscheduler.xml yarn.nodemanager.local-dirs /home/hadoop/yarn/local yarn.log-aggregation-enable true Where to aggregate logs to. yarn.nodemanager.remote-app-log-dir /tmp/logs yarn.nodemanager.resource.memory-mb 30720 yarn.nodemanager.resource.cpu-vcores 12 yarn.nodemanager.aux-services mapreduce_shuffle
注意resourcemanager是哪台虚拟机,自己设定并修改配置。
4.修改mapred-site.xml文件
mapreduce.framework.name yarn mapreduce.jobhistory.address hadoop2:10020 mapreduce.jobhistory.webapp.address hadoop2:19888
主要设置standbynamenode节点相关端口号
5.设置hdfs-site.xml文件,这是比较核心的文件,经常格式化不成功问题也出现在这里。
dfs.nameservices hadoop-test dfs.ha.namenodes.hadoop-test nn1,nn2 dfs.namenode.rpc-address.hadoop-test.nn1 hadoop1:8020 dfs.namenode.rpc-address.hadoop-test.nn2 hadoop2:8020 dfs.namenode.http-address.hadoop-test.nn1 hadoop1:50070 dfs.namenode.http-address.hadoop-test.nn2 hadoop2:50070 dfs.namenode.name.dir file:///home/hadoop/hdfs/name dfs.namenode.shared.edits.dir qjournal://hadoop2:8485;hadoop3:8485;hadoop4:8485/hadoop-test dfs.datanode.data.dir file:///home/hadoop/hdfs/data dfs.ha.automatic-failover.enabled false dfs.journalnode.edits.dir /home/hadoop/hdfs/journal/
可以在主目录下建立hdfs文件夹,及里面的data,name,journal三个文件夹,有时候系统也会自动生成,这点诸位可以自行尝试。
6.修改yarn-env.sh
加入java环境变量即可
7.修改slaves(即各个datanode 主机名),加入以下三行
hadoop2 hadoop3 hadoop4
8.在/home/hadoop/hadoop-2.6.0/etc/hadoop/目录下新建一个文件fairsheduler.xml
touch fairsheduler.xml
将下面的内容复制进去
102400 mb, 50 vcores 153600 mb, 100 vcores 200 300 1.0 root,yarn,search,hdfs 102400 mb, 30 vcores 153600 mb, 50 vcores 102400 mb, 30 vcores 153600 mb, 50 vcores
hadoop 启动(HDFS , YARN启动)
注意:所有操作均在Hadoop部署目录下进行。
启动Hadoop集群:
Step1 :在各个JournalNode节点上,输入以下命令启动journalnode服务:
sbin/hadoop-daemon.sh start journalnode
通过jps可以查看到启动情况
Step2:在[nn1]上,对其进行格式化,并启动:
bin/hdfs namenode –format
观察到如下界面即为格式化成功,status为0即为成功,若为1或者其他数字则有错,请重新检查之前的步骤。
格式化成功后,启动acivenamenode
sbin/hadoop-daemon.sh start namenode
Step3:在[nn2]上,同步nn1的元数据信息:
bin/hdfs namenode -bootstrapStandby
观察到如下图,备用节点格式化成功
Step4:启动[nn2]:
sbin/hadoop-daemon.sh start namenode
经过以上四步操作,nn1和nn2均处理standby状态
Step5:将[nn1]切换为Active
bin/hdfs haadmin -transitionToActive nn1
Step6:在[nn1]上,启动所有datanode
sbin/hadoop-daemons.sh start datanode
查看数据节点启动情况
Step7:启动yarn:在[nn1]上,输入以下命令
sbin/start-yarn.sh
此时在activenamenode下输入jps,观察到除了NameNode进程,还有ResourceManager的进程;在datanode下输入jps,观察到除了DataNode进程,还有NodeManager的进程,这里就不截图了。
Step8:关闭hadoop集群:在[nn1]上,输入以下命令
sbin/stop-dfs.sh
web地址访问:
192.168.47.131:50070
activenamenode
Standbynamenode
192,168.47.132:50070
查看datanodes信息
在web端输入 192.168.47.131:8088即可看到yarn工作界面
看到如上界面即表示hadoop YARN环境搭建部署ok了,第一次搭建打开网页成功后,之后可能第二次格式化会出各种问题,笔者也在探索,还有后续内容喔。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/24923.html
摘要:伪分布模式在单节点上同时启动等个进程,模拟分布式运行的各个节点。完全分布式模式正常的集群,由多个各司其职的节点构成。在之前在集群中存在单点故障。正确的下载链接会有,这个就是公司需要用户在下载时提供的注册信息。每一次 Hadoop 生态的更新都是如此令人激动像是 hadoop3x 精简了内核,spark3 在调用 R 语言的 UDF 方面,速度提升了 40 倍所以该文章肯定得配备上最新的生态h...
阅读 2314·2021-11-16 11:52
阅读 2302·2021-11-11 16:55
阅读 726·2021-09-02 15:41
阅读 2927·2019-08-30 15:54
阅读 3129·2019-08-30 15:54
阅读 2221·2019-08-29 15:39
阅读 1491·2019-08-29 15:18
阅读 911·2019-08-29 13:00