Hadoop集群搭建
一、 准备工作
服务器
|
服务器 |
IP |
说明 |
|
hadoop01 |
192.168.110.121 |
节点1 |
|
hadoop02 |
192.168.110.122 |
节点2 |
|
hadoop03 |
192.168.110.123 |
节点3 |
软件版本
|
项 |
说明 |
|
Linux Server |
CentOS 7 |
|
hadoop-2.7.3 |
2.7.3 |
|
zookeeper |
3.5.9 |
|
JDK |
1.8-202 |
Linux操作用户:tom
二、 免密登录
l 通用操作(3台服务器均要操作)
#生成公钥(连续4次回车)
ssh-keygen -t rsa -m PEM
#配置本机免密ssh登录
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#手动ssh登录本机一次,第一次需要输入密码,以后就不用了
ssh hadoop01
l 配置hadoop01节点ssh免密码登录其余节点
#在hadoop01节点执行如下命令(如果用不了如下命令,可以直接复制id_rsa.pub里的密钥到其余几台设备的authorized_keys文件里也可)
ssh-copy-id hadoop02
ssh-copy-id hadoop03
# 授权
chmod 600 authorized_keys
#在hadoop01节点分别ssh登录其他节点一次,第一次需要输入密码,以后就不用了
ssh hadoop02
ssh hadoop03
三、 Hadoop集群搭建
l 依赖环境
JDK1.8、zookeeper3.5.9,见本人另外随笔
l 安装步骤
#创建目录
mkdir -p /home/tom/app/hadoop/data
mkdir -p /home/tom/app/hadoop/logs
#解压到app目录
tar -zxvf hadoop-2.6.0-cdh5.16.2.tar.gz -C /home/tom/app/hadoop
#设置系统环境变量
vim ~/.bash_profile
#新增如下环境变量
export HADOOP_HOME=/home/tom/app/hadoop/hadoop-2.6.0-cdh5.16.2
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH
# 刷新文件
source ~/.bash_profile
#校验命令
hadoop version
yarn version
l 修改配置文件
配置文件路径:$HADOOP_HOME/etc/hadoop
主要的修改的配置文件包括:core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves、hadoop-env.sh等
- hadoop-env.sh
# 修改如下
export JAVA_HOME= /home/tom/app/jdk1.8.0_202
# 日志路径,方便在集群启动失败时查看日志,查找原因
export HADOOP_LOG_DIR=/home/tom/app/hadoop/logs
- core-site.xml
#修改如下
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/tom/app/hadoop/data/tmp</value>
</property>
</configuration>
- hdfs-site.xml
# 修改如下
<property>
<name>dfs.name.dir</name>
<value>/home/tom/app/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/tom/app/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.tmp.dir</name>
<value>/home/tom/app/hadoop/data/dfstmp</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
#去掉权限验证,防止其他地方调用hdfs的时候出现用户权限问题,该属性可根据实际情况选择是否增加
<property>
<name>dfs. permissions</name>
<value>false</value>
</property>
- mapred-site.xml
#修改资源调度
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- yarn-site.xml
# 设置 yarn 上支持运行的服务和环境变量白名单
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
</configuration>
- slaves
vi slaves
#配置子节点,增加如下
hadoop01
hadoop02
hadoop03
# hadoop01在这里既是主节点,又是从节点
l 另外两台服务器上搭建Hadoop环境
用scp命令直接将改好的文件拷贝过去
scp -r hadoop/ @hadoop02:/home/tom/app/
scp -r hadoop/ @hadoop03:/home/tom/app/
scp -r ~/.bash_profile @kakfa02:~/
scp -r ~/.bash_profile @kakfa03:~/
另外两台服务器刷新环境变量
source ~/.bash_profile
四、 启动Hdfs集群
l 前置条件
先启动zookeeper
l 格式化namenode
#hadoop01上执行格式化命令
hdfs namenode -format
# 注意有如下信息则格式化成功
has been successfully formatted.
l 启动集群
#hadoop01上执行格式化命令
start-dfs.sh
#通过jps命令查看
可以看见hadoop01主节点上开启了一个namenode和datanode,
另外两个节点的datanode都也启起了,
这时,我们也可以在windows机器上通过浏览器来查看集群的情况:
在浏览器中输入hadoop01:50070即可:(注意修改win电脑的hosts文件,添加主机名与ip地址的对应关系,可以直接使用ip+端口的形式)
注意50070端口如对外开放,请加入防火墙开放策略
#开放端口(只需在hadoop01)
firewall-cmd --add-port=50070/tcp --permanent
#重新加载防火墙配置
firewall-cmd --reload
#查看开发端口:
firewall-cmd --list-ports
l 启动Yarn集群
#在hadoop集群中,yarn扮演的是一个集群资源的管理与调度这么一个角色
#hadoop01上执行如下命令
start-yarn.sh
#通过jps命令查看
可以看见,主节点多了两个进程出来,resourcemanager 和nodemanager,其余从节点多了nodemanger,,这个就是管理各个节点的资源的进程,都出现了,就说明启动成功,yarn也提供了web端,端口是8088,在浏览器输入hadoop01:8088即可
#执行一个简单的作业,测试一下
# 可以在命令面板或者浏览器输入hadoop01:8088查看结果(注意防火墙开放端口,参照上一步)

浙公网安备 33010602011771号