Hadoop 集群搭建
目录
做完以上步骤后,可以开始克隆虚拟机。因为以上系统的配置,都是一些基础性的操作。 都是必须的。
1、基础集群环境准备
1.1、修改主机名
1、 在 root 账号下用命令:vi /etc/sysconfig/network 或者如果配置了 hadoop sudo 权限,则在 hadoop 登录情况下使用命令: sudo vi /etc/sysconfig/network
2、 修改好后,保存退出即可
1.2、设置系统默认启动级别
1、在 root 账号下输入 vi /etc/inittab
1.3、配置 hadoop 用户 sudoer 权限
1、 在 root 账号下,命令终端输入:vi /etc/sudoers
2、 找到 root ALL=(ALL) ALL 这一行,然后在他下面添加一行: hadoop ALL=(ALL) ALL 保存,退出
1.4、配置 IP
Linux 服务器的 IP 修改方式有三种,在此不细讲,可以参照前面Linux的网络ip配置
1.5、关闭防火墙/关闭 Selinux
防火墙操作相关:
查看防火墙状态:service iptables status
关闭防火墙:service iptables stop
开启防火墙:service iptables start
重启防火墙:service iptables restart
关闭防火墙开机启动:chkconfig iptables off
开启防火墙开机启动:chkconfig iptables on
关闭 Selinux:具体做法是修改/etc/selinux/config 配置文件中的 SELINUX=disabled
1.6、添加内网域名映射
1.7、安装 JDK
1、 上传 jdk-8u73-linux-x64.tar.gz
2、 解压到/usr/local 目录下
tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local
3、 配置环境变量
a) vi /etc/profile
b) 在最后加入两行:
export JAVA_HOME=/usr/local/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
c) 保存退出
4、 source /etc/profile
5、 检测是否安装成功,输入命:java -version
做完以上步骤后,可以开始克隆虚拟机。因为以上系统的配置,都是一些基础性的操作。 都是必须的。
1.8、同步服务器时间
1、使用 date 命令手动简单同步一下
命令:date -s "2016-10-23 11:11:11"
修改时间后,需要写入硬件 bios 才能在重启之后依然生效
命令:hwclock -w
2、配置 crontab 服务,用 ntpdate 定时同步时间(推荐方式)
ntpdate 202.120.2.101
3、如果类似 202.120.2.101 这种网络时间服务器无法访问,那么请自行搭建时间服务器
以上两种方式不管怎么做,都不要忘记更改时区
1.9、配置免密登录
Linux 配置免密登录有两种方式:
第一种
a) 在 hadoop 登录状态下,输入命令 ssh-****** 或者 ssh-****** -t rsa
b) 之后你会发现,在/home/hadoop/.ssh 目录下生成了公钥文件
c) 复制公钥文件到授权列表 cat ./id_rsa.pub >> authorized_keys
d) 修改文件权限 chmod 600 ./authorized_keys
e) 将该授权文件 authorized_keys 文件复制到 slave 节点 scp ./authorized_keys [email protected]:~/.ssh/
f) 检查免密登录是否设置成功 ssh hadoop02 看看是不是能登录进入 hadoop02 的服务器
第二种
a) 在 hadoop 登录状态下,输入命令 ssh-****** 或者 ssh-****** -t rsa
b) 之后你会发现,在/home/hadoop/.ssh 目录下生成了公钥文件
c) 使用一个更简单的方式,使用命令: ssh-copy-id hadoop02 建立 hadoop01 到 hadoop02 的免密登录
2、Hadoop 集群环境安装
hadoop 分布式集群安装
总共三个 datanode 节点,设置副本数为 3,是为了观察数据块分布方便,大家可以根据自 己的机器性能酌情决定
具体步骤:
一、上传安装包,并解压到相关目录
put c:/hadoop-2.6.5-centos-6.7.tar.gz
tar -zxvf hadoop-2.6.5-centos-6.7.tar.gz -C /home/hadoop/apps
二、主要讲配置文件的配置
1、修改 hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_73
2、修改 core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop02:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>
</property>
3、修改 hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoopdata/name</value>
<description>为了保证元数据的安全一般配置多个不同目录</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoopdata/data</value>
<description>datanode 的数据存储目录</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop03:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
4、修改 mapred-site.xml(集群只有 mapred-site.xml.template,可以从这个文件进行复
制,或者直接改名也可)
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5、修改 yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop04</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
6、修改 slaves 文件,添加以下内容,该内容是从节点列表
hadoop02
hadoop03
hadoop04
三、分发安装包到各个节点,Hadoop 集群的每个节点都需要安装 Hadoop 安装包
scp -r hadoop-2.6.5 hadoop02:$PWD
scp -r hadoop-2.6.5 hadoop03:$PWD
四、在 HDFS 主节点上执行命令进行初始化 namenode
bin/hadoop namenode -format
查看初始化是否成功
五、在 HDFS 上的主节点启动 HDFS,其实在哪里启动并无关系
sbin/start-dfs.sh
结果:在主节点启动了 NameNode 守护进程
在从节点启动了 DataNode 守护进程
在配置的一个特定节点上 hadoop03 会启动 SecondaryNameNode 进程
六、在 YARN 主节点启动 YARN,要求在 YARN 主节点进行启动,否则 ResourceManager 主进
程会启动不成功,需要额外手动启动
sbin/start-yarn.sh
结果:在主节点启动了 resourcemanager 守护进程
在从节点启动了 nodemanager 守护进程
七、测试集群是否安装成功
1、检测 hdfs 是否启动成功
hadoop fs -ls /
2、检测 yarn 集群是否启动成功(提交 mapreduce 例子程序试跑)
bin/hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 5 5
八、补充说明
1、启动 namenode 或者 datenode
sbin/hadoop-daemon.sh start datanode
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start secondarynamenode
2、启动 yarn nodemanager
sbin/yarn-daemon.sh start nodemanager
sbin/yarn-daemon.sh start resourcemanager
3、hdfs 集群信息 web 管理界面地址
http://hadoop02:50070
4、mapreduce 运行状态信息 web 管理界面
http://hadoop04:8088
5、查看集群状态
hadoop dfsadmin -report
hdfs dfsadmin -report(推荐用这个)
3、集群初步使用
3.1、Hadoop 集群启动
DFS 集群启动:sbin/start-dfs.sh
DFS 集群关闭:sbin/stop-dfs.sh
YARN 集群启动:sbin/start-yarn.sh
YARN 集群启动:sbin/stop-yarn.sh
3.2、HDFS 初步使用
查看集群文件:hadoop fs -ls /
上传文件:hadoop fs -put filepath destpath
下载文件:hadoop fs -get destpath
创建文件夹:hadoop fs -mkdir /hadoopdata
查看文件内容:hadoop fs -cat /hadoopdata/mysecret.txt
3.3、mapreduce 初步使用
演示 hadoop 自带的例子程序并观察执行过程:
1、求 PI
hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 5 5 (该 jar 位于:/home/hadoop/apps/hadoop-2.6.5/share/hadoop/mapreduce/)
执行结果: Job Finished in 70.913 seconds Estimated value of Pi is 3.20000000000000000000
2、单词计数
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /hadoopdata/mysecret.txt