Hadoop集群配置
前言
阿里云上,自己的服务器加上同学的一共有了三台,可以配置一个小型的计算集群了,服务器均使用的CentOS系统。
修改hosts
对于CentOS来说,修改映射关系,主要是方便记忆,不然记忆一堆IP地址太困难了。
因为有3台服务器,分别命名为node-01,node-02,node-03
vim /etc/hosts
配置如下:
我配置的使用的是公网IP,如果想要使用内网IP,自行百度搜索如果配置阿里云的安全组内网规则,因为阿里云默认内网是无法通信的。
关闭防火墙
- 为了方便起见,关闭3台主机的防火墙
service iptables stop
- 查看防火墙状态
service iptables status
- 永久关闭防火墙(开机不会自启)
chkconfig iptables off
下载Hadoop
- 从官网上寻找下载链接,使用wget命令下载,注意下载binary版本,这是编译过的
wget https://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz
- 解压
tar -xzvf ./hadoop-2.8.1.tar.gz
修改配置
我们让node-01担任NameNode节点,node-01,node-02,node-02担任DataNode节点,解压后进入进入./hadoop-2.8.1/etc/hadoop目录
hdfs-site.xml
配置如下项
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/apps/hadoop-2.8.1/data/namenode_data</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/apps/hadoop-2.8.1/data/datanode_data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value>
</property>
</configuration>
slaves
配置如下
- 其中node-01节点的slaves文件
node-01
node-02
node-03
- node-02,node-03节点的slaves文件
localhost
core-site.xml
配置如下项目
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node-01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/apps/hadoop-2.8.1/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>120.24.238.195:8088</value>
</property>
</configuration>
其中yarn.resourcemanager.webapp.address用于配制web-ui,如果前面配置的是内网IP的话,这里需要配置成外网IP才能访问web-ui
hadoop-env.sh
配置Java SDK
# The java implementation to use.
export JAVA_HOME=/usr/java/default
添加环境变量
- 修改文件
vim /etc/profile
- 添加Hadoop环境变量
alias hadoop-start-all=/usr/local/apps/hadoop-2.8.1/sbin/start-all.sh
alias hadoop-stop-all=/usr/local/apps/hadoop-2.8.1/sbin/stop-all.sh
export HADOOP_HOME=/usr/local/apps/hadoop-2.8.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
- 最后加载文件
source /etc/profile
分发到其他节点
利用scp
scp -r ./hadoop-2.8.1 node-02:/usr/loacl/apps/
scp -r ./hadoop-2.8.1 node-03:/usr/loacl/apps/
scp -r /etc/profile node-02:/etc/
scp -r /etc/profile node-03:/etc/
修改slaves文件
至此,hadoop已经完成配置
启动
初次启动格式化namenode节点
hadoop namenode -format
然后在master节点(ndoe-01)启动,配置过别名了
hadoop-start-all
否则则使用绝对地址
/usr/local/apps/hadoop-2.8.1/sbin/start-all.sh