Linux下Hadoop集群搭建
程序员文章站
2024-01-22 09:03:28
...
1、IP分配
先分配好IP和主机名,三台主机均能上外网,且均能互相ping通即可。
IP 主机名
192.168.189.129 master
192.168.189.130 slave1
192.168.189.131 slave2
2、关闭和禁用防火墙(root)
service iptables status
service iptables stop
chkconfig iptables off
chkconfig --list iptables
设置/etc/selinux/config文件,将SELINUX设置为disabled。
3、安装java运行环境(root)
rpm -ivh jdk-8u144-linux-x64.rpm
4、修改主机名和IP地址(root)
/etc/sysconfig/network -> HOSTNAME=master
/etc/hosts 添加IP到主机名解析。
5、配置三个节点之间免密码登录
5.1登陆master主机,进入.ssh/路径,执行以下命令:
ssh-keygen -t rsa
三次回车后,该目录下将会产生id_rsa,id_rsa.pub文件。其他两台主机(slave1, slave2)也使用该方式产生密钥文件。
5.2将公钥放到authorized_keys里面。
cat id_rsa.pub >> authorized_keys
5.3将每台主机生成的公钥都放置到authorized_keys里面,并且三台主机要保持一样。
5.4每台主机都赋予权限。
chmod 600 authorized_keys
5.5至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。
5.6其中SSH免密登录配置成功后可能会不生效,请参考以下博客:
https://blog.csdn.net/lisongjia123/article/details/78513244
6、Hadoop相关配置
6.1从以下网站
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/core/hadoop-3.1.1上下载hadoop3.1.1压缩包到本地。
6.2配置环境变量
vi .bash_profile
添加以下内容:
export HADOOP_HOME=/home/xiao/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
运行如下命令刷新环境变量
source .bash_profile
进行测试是否成功
hadoop version
出现以上内容说明测试成功。
6.3在hadoop目录下创建目录
cd /home/xiao/hadoop-3.1.1
mkdir tmp
mkdir var
mkdir dfs
mkdir dfs/name
mkdir dfs/data
6.4修改hadoop-env.sh脚本
vi /home/xiao/hadoop-3.1.1/etc/hadoop/hadoop-env.sh
添加以下内容
export JAVA_HOME=/usr/java/jdk1.8.0_144
export HADOOP_HOME=/home/xiao/hadoop-3.1.1
export HDFS_NAMENODE_USER=xiao
export HDFS_DATANODE_USER=xiao
export HDFS_SECONDARYNAMENODE_USER=xiao
export YARN_RESOURCEMANAGER_USER=xiao
export YARN_NODEMANAGER_USER=xiao
6.5修改core-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/core-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xiao/hadoop-3.1.1/tmp</value>
</property>
</configuration>
6.6修改hdfs-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/hdfs-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/xiao/hadoop-3.1.1/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/xiao/hadoop-3.1.1/dfs/data</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
6.7修改mapred-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/mapred-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/xiao/hadoop-3.1.1/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6.8在命令行下输入如下命令,并将返回的地址复制,在配置下面的yarn-site.xml时会用到。
hadoop classpath
修改yarn-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/yarn-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>输入刚才返回的Hadoop classpath路径</value>
</property>
</configuration>
6.9使用scp命令将master下的目录复制到各个从节点的相应位置上,并且记得要刷新环境变量。
6.10格式化节点
在master中运行下述命令,格式化节点。
hdfs namenode -format
运行之后不报错,并在倒数第五六行有successfully即为格式化节点成功。
7、Hadoop启停
运行以下命令,启动hadoop集群的服务
start-all.sh
没有报错,在三台主机上分别输入jps
有以上进程说明部署启动成功,在浏览器上就可以访问hdfs的web界面了。在浏览器上输入http://192.168.189.129:8088 (前者为主节点ip地址,后者为hdfs的web进程对应的端口号)。
先分配好IP和主机名,三台主机均能上外网,且均能互相ping通即可。
IP 主机名
192.168.189.129 master
192.168.189.130 slave1
192.168.189.131 slave2
2、关闭和禁用防火墙(root)
service iptables status
service iptables stop
chkconfig iptables off
chkconfig --list iptables
设置/etc/selinux/config文件,将SELINUX设置为disabled。
3、安装java运行环境(root)
rpm -ivh jdk-8u144-linux-x64.rpm
4、修改主机名和IP地址(root)
/etc/sysconfig/network -> HOSTNAME=master
/etc/hosts 添加IP到主机名解析。
5、配置三个节点之间免密码登录
5.1登陆master主机,进入.ssh/路径,执行以下命令:
ssh-keygen -t rsa
三次回车后,该目录下将会产生id_rsa,id_rsa.pub文件。其他两台主机(slave1, slave2)也使用该方式产生密钥文件。
5.2将公钥放到authorized_keys里面。
cat id_rsa.pub >> authorized_keys
5.3将每台主机生成的公钥都放置到authorized_keys里面,并且三台主机要保持一样。
5.4每台主机都赋予权限。
chmod 600 authorized_keys
5.5至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。
5.6其中SSH免密登录配置成功后可能会不生效,请参考以下博客:
https://blog.csdn.net/lisongjia123/article/details/78513244
6、Hadoop相关配置
6.1从以下网站
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/core/hadoop-3.1.1上下载hadoop3.1.1压缩包到本地。
6.2配置环境变量
vi .bash_profile
添加以下内容:
export HADOOP_HOME=/home/xiao/hadoop-3.1.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
运行如下命令刷新环境变量
source .bash_profile
进行测试是否成功
hadoop version
出现以上内容说明测试成功。
6.3在hadoop目录下创建目录
cd /home/xiao/hadoop-3.1.1
mkdir tmp
mkdir var
mkdir dfs
mkdir dfs/name
mkdir dfs/data
6.4修改hadoop-env.sh脚本
vi /home/xiao/hadoop-3.1.1/etc/hadoop/hadoop-env.sh
添加以下内容
export JAVA_HOME=/usr/java/jdk1.8.0_144
export HADOOP_HOME=/home/xiao/hadoop-3.1.1
export HDFS_NAMENODE_USER=xiao
export HDFS_DATANODE_USER=xiao
export HDFS_SECONDARYNAMENODE_USER=xiao
export YARN_RESOURCEMANAGER_USER=xiao
export YARN_NODEMANAGER_USER=xiao
6.5修改core-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/core-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xiao/hadoop-3.1.1/tmp</value>
</property>
</configuration>
6.6修改hdfs-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/hdfs-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/xiao/hadoop-3.1.1/dfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/xiao/hadoop-3.1.1/dfs/data</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
6.7修改mapred-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/mapred-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/xiao/hadoop-3.1.1/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6.8在命令行下输入如下命令,并将返回的地址复制,在配置下面的yarn-site.xml时会用到。
hadoop classpath
修改yarn-site.xml配置文件
vi /home/xiao/hadoop-3.1.1/etc/hadoop/yarn-site.xml
在<configuration></configuration>中添加以下内容
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>输入刚才返回的Hadoop classpath路径</value>
</property>
</configuration>
6.9使用scp命令将master下的目录复制到各个从节点的相应位置上,并且记得要刷新环境变量。
6.10格式化节点
在master中运行下述命令,格式化节点。
hdfs namenode -format
运行之后不报错,并在倒数第五六行有successfully即为格式化节点成功。
7、Hadoop启停
运行以下命令,启动hadoop集群的服务
start-all.sh
没有报错,在三台主机上分别输入jps
有以上进程说明部署启动成功,在浏览器上就可以访问hdfs的web界面了。在浏览器上输入http://192.168.189.129:8088 (前者为主节点ip地址,后者为hdfs的web进程对应的端口号)。
下一篇: 时间模块(time)
推荐阅读
-
Linux下Hadoop集群搭建
-
linux下PHP7环境搭建
-
诸位大神 求解决 Linux 下 LAMP 环境搭建 扩展编译
-
Linux下php+mysql+nginx编译搭建(一)
-
Linux下php+mysql+nginx编译搭建(三)
-
hadoop2.2.0集群配置 - 64位系统下编译源码过程
-
hadoop2.2.0集群配置 - 64位系统下编译源码过程
-
Linux下FastDFS图片服务器的搭建
-
FastDFS - Linux下搭建FastDFS 文件服务器与Nginx配置(部署和运维)
-
RedHat Linux9平台下搭建LAMP(Linux+Apache+Mysql+PHP)(1)_PHP教程