在ubuntu上搭建hadoop服务 (集群模式)

环境:ubuntu 16.04

hadoop-3.0.3

参考:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html


1.参考上一篇“在Ubuntu上搭建Hadoop服务(单机模式)”

1.1.安装JDK,配置Java环境;

1.2.创建hadoop组、hadoop用户;

1.3.配置SSH无密码登陆;

1.4.克隆虚拟机

在虚拟机关闭状态,选择克隆;


配置:

都使用桥接模式;

宿主机:

192.168.1.102

虚拟机:

192.168.1.106     master

192.168.1.104     node1

192.168.1.105     node2


2.修改各个虚拟机的hostname,hosts

sudo vi /etc/hostname

依次修改为master,node1,node2





sudo vi /etc/hosts

把以下内容添加到3台机子的hosts文件中

192.168.1.106     master

192.168.1.104     node1

192.168.1.105     node2


3.配置SSH远程无密码登录

把master上的公钥文件,拷贝到node1,node2上;

scp ~/.ssh/authorized_keys hadoop@node1:~/.ssh/

scp ~/.ssh/authorized_keys hadoop@node2:~/.ssh/

【TODO 或者,使用ssh-copy-id命令,比较便捷】

在node1,node2上修改文件权限;

chmod 600 ~/.ssh/authorized_keys

然后,在master上,可以免密SSH登录node1,node2

ssh node1

ssh node2

(因为另外两台机子是克隆的,所以已经配置了本地SSH无密码登录)

(并且,三台机子的公钥、私钥也是一样的,所以,实际上是不需要拷贝的)


4.配置Hadoop

在master机子上;

创建目录

mkdir /usr/local/hadoop/dfs
mkdir /usr/local/hadoop/dfs/name
mkdir /usr/local/hadoop/dfs/data

mkdir /usr/local/hadoop/tmp


进入hadoop目录

cd /usr/local/hadoop


修改./etc/hadoop中的配置文件

sudo vi ./etc/hadoop/ hadoop-env.sh
添加如下内容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

sudo vi ./etc/hadoop/ core-site.xml
添加如下内容:
<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/tmp</value>
  </property>
</configuration>

sudo vi ./etc/hadoop/ hdfs-site.xml
添加如下内容:
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/hdfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/usr/local/hadoop/hdfs/data</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node1:9001</value>
  </property>
  <property>
    <name>dfs.http.address</name>
    <value>0.0.0.0:50070</value>
  </property>
</configuration>
dfs.replication:副本个数,默认是3 
dfs.namenode.secondary.http-address:为了保证整个集群的可靠性secondarnamenode配置在其他机器比较好 
dfs.http.address:进入hadoop web UI的端口

sudo vi ./etc/hadoop/ mapred-site.xml
添加如下内容:
<configuration>
  <property>
    <name>mapreduce.jobtracker.http.address</name>
    <value>0.0.0.0:50030</value>
  </property>
  <property>
    <name>mapreduce.tasktracker.http.address</name>
    <value>0.0.0.0:50060</value>
  </property>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.application.classpath</name>
    <value>
     /usr/local/hadoop/etc/hadoop,
     /usr/local/hadoop/share/hadoop/common/*,
     /usr/local/hadoop/share/hadoop/common/lib/*,
     /usr/local/hadoop/share/hadoop/hdfs/*,
     /usr/local/hadoop/share/hadoop/hdfs/lib/*,
     /usr/local/hadoop/share/hadoop/mapreduce/*,
     /usr/local/hadoop/share/hadoop/mapreduce/lib/*,
     /usr/local/hadoop/share/hadoop/yarn/*,
     /usr/local/hadoop/share/hadoop/yarn/lib/*
    </value>
  </property>
</configuration>

sudo vi ./etc/hadoop/ yarn-site.xml
添加如下内容:
<configuration>
  <!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>         
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8099</value>
  </property>
</configuration>

sudo vi ./etc/hadoop/ workers
清空文件,添加如下内容:
node1

node2


把上面在master上配置好的hadoop环境,整体复制到node1,node2上;

scp -r /usr/local/hadoop hadoop@node1:/usr/local/hadoop

scp -r /usr/local/hadoop hadoop@node2:/usr/local/hadoop

或者,只复制6个配置文件;

scp /usr/local/hadoop/etc/hadoop/yarn-site.xml        hadoop@node1:/usr/local/hadoop/etc/hadoop
scp /usr/local/hadoop/etc/hadoop/mapred-site.xml   hadoop@node1:/usr/local/hadoop/etc/hadoop
scp /usr/local/hadoop/etc/hadoop/hdfs-site.xml        hadoop@node1:/usr/local/hadoop/etc/hadoop
scp /usr/local/hadoop/etc/hadoop/core-site.xml        hadoop@node1:/usr/local/hadoop/etc/hadoop
scp /usr/local/hadoop/etc/hadoop/hadoop-env.sh     hadoop@node1:/usr/local/hadoop/etc/hadoop

scp /usr/local/hadoop/etc/hadoop/workers                hadoop@node1:/usr/local/hadoop/etc/hadoop


5.在master上启动hadoop

cd /usr/local/hadoop

./bin/hdfs namenode -format


./sbin/start-all.sh   【这种启动方式好像不推荐使用,参照官方文档换一下】



启动HDFS:start-dfs.sh


启动Yarn:start-yarn.sh

注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn



使用jps查看master,node上的进程





查看web 界面

http://192.168.1.106:50070


http://192.168.1.106:8099/cluster


停止hadoop;

./sbin/stop-all.sh



6.测试

使用自带的example测试

yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar pi 1 1


参考:

https://www.cnblogs.com/frankdeng/p/9047698.html

https://blog.csdn.net/xiaoxiangzi222/article/details/52757168/

https://blog.csdn.net/qq_32808045/article/details/76229157


  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Ubuntu搭建Hadoop平台完成分布式存储,需要进行以下步骤: 1. 安装Java环境 Hadoop需要Java环境支持,因此需要先安装Java环境。可以通过以下命令安装Java环境: ``` sudo apt-get update sudo apt-get install default-jdk ``` 2. 下载Hadoop 可以从官方网站下载最新版本的Hadoop。下载完成后,将下载的文件解压到任意位置。 3. 配置Hadoop 打开解压后的Hadoop安装目录,进入到conf文件夹中,复制一份模板配置文件: ``` cd hadoop-<VERSION>/conf cp mapred-site.xml.template mapred-site.xml cp core-site.xml.template core-site.xml cp hdfs-site.xml.template hdfs-site.xml ``` 修改配置文件中的相关参数,具体的配置方法可以参考Hadoop官方文档。一般需要修改的参数包括: - core-site.xml:配置Hadoop的默认文件系统、Hadoop的主机名等。 - hdfs-site.xml:配置Hadoop分布式文件系统的相关参数,如副本数、数据块大小等。 - mapred-site.xml:配置Hadoop的MapReduce框架的相关参数,如任务调度器等。 4. 配置SSH无密码登录 为了方便管理,需要配置SSH无密码登录。可以使用以下命令生成SSH密钥: ``` ssh-keygen -t rsa ``` 然后将公钥拷贝到每个Hadoop节点上: ``` ssh-copy-id -i ~/.ssh/id_rsa.pub user@<REMOTE-HOST> ``` 5. 启动Hadoop集群 启动Hadoop集群需要先格式化Hadoop分布式文件系统,可以使用以下命令进行格式化: ``` bin/hdfs namenode -format ``` 然后启动Hadoop集群: ``` sbin/start-all.sh ``` 启动完成后,可以通过以下命令查看Hadoop集群的状态: ``` jps ``` 如果成功启动,应该能够看到以下进程: ``` NameNode DataNode SecondaryNameNode ResourceManager NodeManager ``` 6. 测试Hadoop集群 最后可以通过运行一个简单的Hadoop任务来测试Hadoop集群的运行情况。可以使用以下命令运行一个简单的WordCount任务: ``` bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-<VERSION>.jar wordcount /input /output ``` 其中,/input是输入文件夹的路径,/output是输出文件夹的路径。如果任务成功完成,可以在输出文件夹中看到计算结果。 以上就是在Ubuntu搭建Hadoop平台完成分布式存储的步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值