1、安装jdk
1.1 tar -zxvf server-jre-8u333-linux-x64.tar.gz
1.2 修改/etc/profile
export JAVA_HOME=/home/server/jdk1.8.0_333
2、安装hadoop
tar -zxvf hadoop-3.2.3.tar.gz
2.1、修改/home/server/hadoop/hadoop-3.2.3/etc/hadoop/hadoop-env.sh 配置文件中JAVA_HOME参数
export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/server/jdk1.8.0_333 hdfs dfs -ls
2.2、执行vim core-site.xml
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/server/hadoop/hadoop-3.2.3/tmp</value>
</property>
<property>
<!-- hadoop.proxyuser.xxx.hosts xxx为用户名或是主机名 -->
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
2.3、vim hdfs-site.xml
<configuration>
<!-- 设置hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
2.4、vim mapred-site.xml
注意:查看文件是否mapred-site.xml 是否存在,如果名称是mapred-site.xml.template 需要重命名: mv mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 通知框架MR使用YARN -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.5、vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- reducer取数据的方式是mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2.6 配置hadoop环境变量
export HADOOP_HOME=/home/server/hadoop/hadoop-3.2.3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2.7 刷新环境变量
source /etc/profile
2.8 格式化HDFS(namenode)第一次使用时要格式化
hadoop namenode
-format
2.9 启动hadoop
先启动HDFS
./start-dfs.sh
再启动YARN
./start-yarn.sh
解决方案:vim /etc/profile
把下面变量添加进去
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
添加完再重新刷新下source /etc/profile
2.10 使用jps验证是否启动成功
注意:jps查询命令如果显示的进程不全,可以
a、 namenode的端口可能被占用了;
b、 namenode的在core-site.xml配置的hadoop.tmp.dir文件位置不对
c、 没有设置ssh秘钥
ssh-keygen -t rsa 下面可以一直回车
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
2.11 在浏览器访问HDFS管理页面
http://192.168.192.128:9870
2.12 在浏览器访问MR管理界面
http://192.168.192.128:8088
无法访问
在防火墙添加开放端口
3. 验证hadoop搭建完成,
3.1 通过shell命令在hadoop上创建文件夹,并上传文件
3.2 通过java
3.2.1 导入maven依赖
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.1.4</version>
</dependency>
package com.runoob;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
public class Application {
public static void main(String[] args) {
try {
// 配置连接地址
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.192.128:9000");
FileSystem fs = FileSystem.get(conf);
// 打开文件并读取输出
Path
hello = new Path("/hello/hello.txt");
FSDataInputStream ins = fs.open(hello);
int ch = ins.read();
while (ch != -1) {
System.out.print((char)ch);
ch = ins.read();
}
System.out.println();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}