Hadoop集群的搭建
1、准备工作:
- (1)、三台Linux机器(我的三台是hadoop01,hadoop02,hadoop03),可以相互通信,设置了
ssh
- (2)、设置了时间同步
- (3)、关闭了防火墙
- (4)、
Hadoop
和JDK
(我用的是Hadoop-2.7.1和jdk1.7.0_79) - (5)、在home下创建用户hadoop
2、安装JDK和Hadoop
(1) 将JDK解压到home/hadoop下
tar -zxvf jdk-7u79-linux-x64.gz -C /home/hadoop
(2) 将Hadoop解压到home/hadoop下
tar -zxvf hadoop-2.7.1.tar.gz -C /home/hadoop
(3) 配置环境变量
vi /etc/profile
#添加
export JAVA_HOME=/home/hadoop/jdk1.7.0_79
export HADOOP_HOME=/home/hadoop/hadoop-2.7.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME:sbin:
source /etc/profile
3、修改配置文件
打开hadoop-2.7.1
下的etc/hadoop目录
(1)设置hadoop-env.sh配置文件
vi hadoop-env.sh #添加如下内容
#java 添加
export JAVA_HOME=/home/hadoop/jdk1.7.0_79
#最好是原目录,之前写$JAVA_HOME一直出错
(2)设置core-site.xml配置文件
#在hadoop-2.7.1目录下新建hdfs的储存目录data
mkdir -r /home/hadoop/hadoop-2.7.1/data
vi core-site.xml #添加如下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.7.1/data</value>
</property>
</configuration>
(3)设置hdfs-site.xml配置文件
vi hdfs-site.xml #添加如下内容
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
(4)设置mapred-site.xml配置文件
#修改文件
mv mapred-site.xml.template mapred-site.xml
#默认mapred-site.xml不存在,使用mapred-site.xml.template生成
vi mapred-site.xml #添加如下内容
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)设置yarn-site.xml配置文件
vi yarn-site.xml #添加如下内容
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
(6)设置slaves配置文件
vi slaves #修改后显示如下内容
两台主机名
4、启动
(1) 发送给另外两台机器
#删除share下的doc 目的是在发送的时候比较快
rm -rf /home/hadoop/hadoop-2.7.1/share/doc
cd /home/hadoop #切换到/home/hadoop目录下
scp -r /home/hadoop/hadoop-2.7.1 hadoop02:/home/hadoop
scp -r /home/hadoop/hadoop-2.7.1 hadoop03:/home/hadoop
(2) 两台电脑配置环境变量,并重启
(3) 格式化HDFS 因为HDFS也是文件系统,第一次使用一个文件系统都要格式化
hadoop namenode -format #在min1机器上执行格式化命令
(4) 启动hdfs集群
start-all.sh #启动
jsp #查看
显示成功
显示成功
(5) 查看
使用web查看集群的状态
使用浏览器打开 http://192.168.138.101:50070/(hadoop01的ip地址)
使用浏览器打开 http://192.168.138.101:8088/(hadoop01的ip地址)
5、测试
(1) hdfs简单操作演示
#浏览hdfs服务器上的文件列表
hadoop fs -ls / #在三台机器中任何机器上执行此操作都可以 显示hdfs的根目录下的所有文件
#由于第一次执行查询根目录下文件内容,所以为空
#在hdfs服务器上创建一个文件夹
hadoop fs -mkdir -p /wordcount/input #在三台机器中任何机器上执行此操作都可以
#在根目录下创建一个名为input的文件夹
#上传本地文件到hdfs服务器上
hadoop fs -put /home/hadoop/wordcount_content.txt /wordcount/input
#在三台机器中任何机器上执行此操作都可以
#将本地的/home/hadoop/test.txt文件上传到hdfs的/input目录下
(2) 系统自带mapreduce案例演示
#启动系统自带的名为“wordcount”的mapreduce程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /wordcount/input /wordcount/output02 #执行一个mapreduce例子
(3) 运行结果
(4) 查看
hadoop fs -ls /wordcount/output02
#-rw-r--r-- 2 root supergroup 0 2018-09-10 20:16 /wordcount/output02/_SUCCESS
#-rw-r--r-- 2 root supergroup 173 2018-09-10 20:16 /wordcount/output02/part-r-00000
hadoop fs -cat /wordcount/input /wordcount/output02/part-r-00000
#结果
License 1
ONDITIONS 1
OR 1
Unless 1
WARRANTIES 1
WITHOUT 1
agreed 1
an 1
applicabl 1
by 1
distributed 2
in 1
is 1
law 1
on 1
or 1
required 1
software 1
the 1
to 1
writing 1