hadoop 集群搭建-suse linux 11

好久都没写了啊。感觉自己都不像是一个搞技术都了。
来个存货吧!

hadoop 集群搭建

3台机器 suse 系统

规划

IP 主机名 hostname hadoop角色
10.96.91.93 namenode93 NameNode、SecondaryNameNode 、ResourceManage、 DataNode 、NodeManager
10.96.91.129 datanode129 DataNode NodeManager
10.96.91.130 datanode130 DataNode NodeManager
创建 hadoop 用户

useradd -u 501 -g users -d /home/hadoop -s /bin/bash hadoop
mkdir /home/hadoop
chown -R hadoop:users /home/hadoop
passwd hadoop 密码设置
方便记忆,我设置到用户名和密码一样

修改主机名

文件位置 /etc/HOSTNAME

vim /etc/HOSTNAME文件
/etc/rc.d/boot.localnet start

修改host文件 !三台机器都要修改!

文件位置 /etc/hosts

10.96.91.93 namenode93
10.96.91.129 datanode129
10.96.91.130 datanode130
配置ssh免密码登录

ssh-keygen -t rsa
.ssh目录下

cat id_rsa.pub >> authorized_keys
把自己本机公钥发送到目标机器

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@datanode129
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@datanode130
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@namenode93
配置环境

文件位置 /etc/profile

export JAVA_HOME=/home/hadoop/jdk1.8.0_191
export JRE_HOME=/home/hadoop/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

export HADOOP_HOME=/home/hadoop/hadoop-2.9.1
export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
最重要到—–Hadoop文件配置

创建hdfs文件夹

文件夹不是必须这样创建,但是,一定要和配置文件对应上。 创建后如下:

/home/hadoop/hadoop-2.9.1/hdfs
/home/hadoop/hadoop-2.9.1/hdfs/tmp
/home/hadoop/hadoop-2.9.1/hdfs/name
/home/hadoop/hadoop-2.9.1/hdfs/data
进入配置目录

cd /home/hadoop/hadoop-2.9.1/etc/hadoop
配置core-site.xml

在<configuration></configuration>中加入

<property>
   <name>hadoop.tmp.dir</name>
   <value>/home/hadoop/hadoop-2.9.1/hdfs/tmpp</value>
   <description>A base for other temporary directories.</description>
 </property>
 <property>
  <name>io.file.buffer.size</name>
   <value>131072</value>
 </property>
 <property>
   <name>fs.defaultFS</name>
   <value>hdfs://namenode93:9000</value>
 </property>

注意:hadoop.tmp.dir的value和我们之前创建的/home/hadoop/hadoop-2.9.1/hdfs/tmp路径要一致

配置 hadoop-env.sh文件

将JAVA_HOME文件配置为本机JAVA_HOME路径

export JAVA_HOME=/home/hadoop/jdk1.8.0_191
配配置 yarn-env.sh

将其中的JAVA_HOME修改为本机JAVA_HOME路径

export JAVA_HOME=/home/hadoop/jdk1.8.0_191
配置hdfs-site.xml

在<configuration></configuration>中加入

<property>
 <name>dfs.replication</name>
   <value>2</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/home/hadoop/hadoop-2.9.1/hdfs/name</value>
   <final>true</final>
</property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/home/hadoop/hadoop-2.9.1/hdfs/data</value>
   <final>true</final>
 </property>
 <property>
  <name>dfs.namenode.secondary.http-address</name>
   <value>namenode93:9001</value>
 </property>
 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>dfs.permissions</name>
   <value>false</value>
 </property>

注意:dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致

配置mapred-site.xml

复制mapred-site.xml.template文件,并命名为mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
配置 mapred-site.xml,在标签<configuration>中添加

 <property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>

配置yarn-site.xml

在<configuration>标签中添加以

<property>
 <name>yarn.resourcemanager.address</name>
   <valu>namenode93:18040</value>
 </property>
 <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>namenode93:18030</value>
 </property>
 <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>namenode93:18088</value>
 </property>
 <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>namenode93:18025</value>
 </property>
 <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>namenode93:18141</value>
 </property>
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
 </property>
 <property>
     <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>

配置slaves 文件

把原本的localhost删掉,改为

namenode93
datanode129
datanode130
将hadoop-2.9.1文件夹传到其他虚拟机上

scp -r hadoop-2.9.1 hadoop@datanode129:~/
scp -r hadoop-2.9.1 hadoop@datanode130:~/
注意:hadoop是虚拟机的用户名,

初始化hadoop 在namenode机器上

hdfs namenode -format

启动Hadoop

start-dfs.sh
start-yarn.sh
或者

start-all.sh
停止Hadoop

stop-yarn.sh
stop-dfs.sh
或者

stop-all.sh
查看命令

可以查看到当前登录机器到角色

jps
jps查询结果如下

hadoop@namenode93:~> jps
15314 SecondaryNameNode
15484 ResourceManager
14956 NameNode
15116 DataNode
15612 NodeManager
16781 Jps

129 130两个机器是 DataNode,在Hadoop到配置里,可以灵活配置各个机器角色 详细到配置官网上有 jps查询结果如下

hadoop@datanode130:~> jps
10233 NodeManager
10365 Jps
10110 DataNode
到这里,三台机器搭建的Hadoop集群就组建完毕了。

用自带的样例测试hadoop集群跑任务

使用命令

hadoop jar /home/hadoop/hadoop-2.9.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar pi 10 10
用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数

最后出现结果

Job Finished in 32.014 seconds
Estimated value of Pi is 3.20000000000000000000
ok,集群测试可用。 网上还有测试统计字数到例子,有兴趣可以尝试一下

HDFS管理界面

http://10.96.91.93:50070/

yarn管理界面

http://10.96.91.93:18088/

其他suse命令

查看版本

lsb_release -d
SUSE11下: 关闭防

service SuSEfirewall2_setup stop
service SuSEfirewall2_init stop
取消开机启动防火墙:

chkconfig SuSEfirewall2_setup off
chkconfig SuSEfirewall2_init off
查看端口情况

netstat -ntpl
参考资料

CentOs6搭建Hadoop环境,这是一个网上比较好的例子。尤其是Hadoop HA安装这部分比较全面。
Hadoop配置文件参数详解,这个只是参考,Hadoop版本不一样可能使用到配置也有一些差别。具体查看项目对应版本的配置部分文档。
Apache Hadoop 2.9.1项目

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/191909.html

(0)
上一篇 2021年11月14日
下一篇 2021年11月14日

相关推荐

发表回复

登录后才能评论