hadoop集群搭建

如果没有多余机器,那么先安装虚拟机,在虚拟机中搭建hadoop集群,这里是安装虚拟机与Linux的教程。

现在有两台主机,取名一台master,一台slave1,方便以后扩展。

关闭防火墙

防火墙可能会导致各种通信问题,出于学习目的,可以将防火墙关闭:

systemctl stop firewalld.service (停止防火墙)
firewall-cmd --state (查看防火墙状态)

配置主机名

为每台主机配置主机名(master,slave1):

sudo vim /etc/hostname (分别填入master,slave1即可)

配置hosts文件

配置每台主机的hosts文件,先用ifconfig命令查看主机ip,然后使用修改hosts文件,配置所有ip对应的主机:

vim /etc/hosts
10.9.50.1 master
10.9.50.2 slave1

新建hadoop账户

为每台主机创建hadoop账户:

adduser hadoop
chown hadoop /home/hadoop
passwd hadoop
sudo vim /etc/sudoers

在文件sudoers相应位置插入:

hadoop ALL = (ALL)ALL

然后将两台主机都切换成hadoop账户,之后所有操作均在此账户下进行。

配置ssh免密

在多个结点的集群中,slave之间的通信靠socket,所以只需在master上配置到slave上的ssh免密。

master:
ssh-keygen -t rsa(一直回车)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
sudo scp ~/.ssh/authorized_keys hadoop@slave1:~/

slave1:
ssh-keygen -t rsa(一直回车)
sudo mv authorized_keys ~/.ssh/

然后在master上测试是否可以免密登陆到slave1:

ssh slave1
exit

安装java

下载java,在两台主机上将下载的压缩包放到/home目录下 并解压:

tar -xvzf jdk-8u144-linux-x64.tar

然后配置环境变量

sudo vim /etc/profile

在文件末尾添加:

export JAVA_HOME=/home/hadoop/jdk1.8.0_131  (写自己的文件名)
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

hadoop配置

在master上下载hadoop,先在master上配置,然后再同步到slave1上:

解压

将下载的压缩包放到/home目录下并解压:

tar -xvzf hadoop-2.8.1.tar.gz

修改hadoop中所引用的java:

vim /home/hadoop/hadoop-2.8.1/etc/hadoop/hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
改为
export JAVA_HOME=/home/hadoop/jdk1.8.0_131  (自己的文件名)

配置core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/home/hadoop/hadoop-2.8.1/tmp</value>
        </property>
</configuration>

创建tmp文件夹:

cd /home/hadoop/hadoop-2.8.1
mkdir tmp

配置 hdfs-site.xml

<configuration>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/hadoop/hadoop-2.8.1/dfs/name</value>
        </property>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/hadoop/hadoop-2.8.1/dfs/data</value>
        </property>
</configuration>

创建dfs文件夹:

cd /home/hadoop/hadoop/-2.8.1
mkdir dfs
cd dfs
mkdir name
mkdir data

配置mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

配置:

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
        </property>
</configuration>

配置yarn-site.xml

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>master:8032</value> 
        </property>
        <property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>master:8030</value> 
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:8035</value> 
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:8033</value> 
        </property>
        <property>
              <name>yarn.resourcemanager.webapp.address</name>
                <value>master:8088</value> 
        </property>
</configuration>

配置slaves

因为只有一个slave1,所以修改文件vim slaves,只添加一个:

slave1

复制到节点

将在master上配置好的文件发送到slava上:

scp -r /home/hadoop/hadoop-2.8.1 hadoop@slave1:~/

启动hadoop集群

配置环境变量

vim ~/.bash_profile
在末尾追加
#HADOOP
export HADOOP_HOME=/home/hadoop/hadoop-2.8.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
使配置生效
source ~/.bash_profile

格式化文件系统

在master上 进行格式化:

hdfs namenode -format 

没有出现 Exception或Error,则表示格式化成功。

启动

start-all.sh

验证

web页面查看

在浏览器中输入以下链接,若有网页显示且节点显示active,则正常启动:

master:50070
master:8088
查看jps

在命令行中输入jps,若master和slave1上显示以下信息,则正常启动:

master:
slave1:
运行PI实例
hadoop jar ~/hadoop-2.8.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 10

若显示如下,则正确。

Pi is 3.2000000000
运行rmsd实例

将jar包rmsd.jar放在本地系统,所需的初始文件xyz.txtinit.txt'放入hdfs中,init.txt`的具体位置在程序中查找。
然后输入以下命令:

hadoop jar rmsd.jar /xyz.txt /output    ("/output"为输出路径,必须唯一)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值