单机模式 环境已经配好
配置Hadoop伪分布式环境
cd /usr/local/hadoop/etc/hadoop/
修改core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
进行NameNode格式化
进入/usr/local/hadoop
执行./bin/hdfs namenode -format (第一次设置的时候格式化 下次直接启动就好)
启动NameNode 和 DataNode
./sbin/start-dfs.sh
输入jps,会出现如下进程
image.png访问localhost:9870(hadoop3.X的webUI已经改到端口 localhost:9870上面,而不是原来的50070,网上大多数的教程都是2.X的,当然不行)
image.png关闭dfs
./sbin/stop-dfs.sh
配置Yarn
cd /usr/local/hadoop/etc/hadoop
1 配置mapred-site.xml (hadoop2.x 没有 mapred-site.xml 需要自己创建 hadoop3.x 可以直接打开 mapred-site.xml)
配置mapred-site.xml
mv mapred-site.xml.template mapred-site.xml #hadoop2.x 执行此命令 hadoop3.x 不必执行
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2 配置yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
3 启动Yarn
cd /usr/local/hadoop/
./sbin/start-dfs.sh #启动dfs
./sbin/start-yarn.sh
./sbin/mr-jobhistory-daemon.sh start historyserver
前面我已经启动过dfs了 所以。。
image.png访问localhost:8088
image.png关闭Yarn
./sbin/stop-dfs.sh
./sbin/stop-yarn.sh
./sbin/mr-jobhistory-daemon.sh stop historyserver
image.png
集群
说明 :集群是在伪分布式是的基础上搭建的 只需要改一些配置文件 然后 把配置好的master克隆就行
1 修改 /etc/hostname
sudo vim /etc/hostname
将内容修改为master/slave1/slave2
2 修改 /etc/hosts
image.png3 配置 master 节点可通过 SSH 无密码访问 slave1
单机模式 已经配过ssh免密码登录 所以把 master 的 authorized_keys拷贝到slave1 的 ./ssh文件下即可
image.pngmaster 尝试无密码登录slave1的ssh
image.png修改配置文件
1 修改 core-site.xml
cd /usr/local/hadoop/etc/hadoop
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
image.png
解释下:第一个fs.defaultFS设置master机为namenode hadoop.tmp.dir配置Hadoop的一个临时目录,用来存放每次运行的作业jpb的信息。
2 修改 hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:9001</value>
</property>
</configuration>
image.png
dfs.namenode.name.dir是namenode存储永久性的元数据的目录列表。这个目录会创建在master机上。dfs.namenode.data.dir是datanode存放数据块的目录列表,这个目录在slave11和slave1机都会创建。 dfs.replication 设置文件副本数,这里两个datanode,所以设置副本数为2。
配置mapred-site.xml
<configuration>
<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>
image.png
解释下:这里设置的是运行jobtracker的服务器主机名和端口,也就是作业将在master主机的9001端口执行
配置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.ShuffleHandle</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8040</value>
</property>
</configuration>
image.png
从master机器启动hadoop集群服务
进入/usr/local/hadoop
执行./bin/hdfs namenode -format 进行格式化操作
启动 ./sbin/start-all.sh
image.pngslave1 jps查看
image.png浏览器打开master:9870
image.png浏览器打开master:8088
image.pngmaster关闭集群服务
image.png参考
Hadoop3.0.0在Ubuntu16.04上分布式部署
ubuntu16.04搭建hadoop集群环境
hadoop分布式集群安装
网友评论