Day 02-hadoop安装配置

1.安装

1.1 安装环境和整体步骤

环境
	java环境 
	集群中的每台机器的ip  
	主机名
	域名映射
    关闭防火墙 
    时间同步
	ssh免密
步骤 
	上传
	解压
	配置
	分发
	初始化
	启动

1.2 安装过程

1.上传

rz 命令上传 将hadoop-3.1.1.tar.gz 上传到/opt/apps

cd /opt/apps
rz 上传

2.解压

tar -zxvf hadoop-3.1.1.tar.gz 

bin 主要是一些可执行文件命令

etc 主要是一些Hadoop配置文件

sbin 超级命令 集群启动

share 共享目录 帮助文档

删除文档 rm -rf share/doc

3.配置

配置JavaHome
etc/hadoop/hadoop-env.sh

vi hadoop-env.sh
shift + G 最后一行 o 下一行插入

export JAVA_HOME=/opt/apps/jdk1.8.0_191

配置namenode
etc/hadoop/hdfs-site.xml

vi hdfs-site.xml

将复制的内容粘贴到<configuration></configuration>标签中
注意 先进入到插入模式 按i 再粘贴


   <!-- 集群的namenode的位置  datanode能通过这个地址注册-->
	<property>
	     <name>dfs.namenode.rpc-address</name>
		 <value>linux01:8020</value>
	</property>
	 <!-- namenode存储元数据的位置 -->
	<property>
	     <name>dfs.namenode.name.dir</name>
		 <value>/opt/hdpdata/name</value>
	</property>
	 <!-- datanode存储数据的位置 -->
	<property>
	     <name>dfs.datanode.data.dir</name>
		 <value>/opt/hdpdata/data</value>
	</property>
	 <!-- secondary namenode机器的位置-->
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>linux02:50090</value>
	</property>

4.分发安装包

进入到apps文件夹中 
cd /opt/apps
将hadoop文件远程复制linux02 linux03
scp -r  hadoop-3.1.1  linux02:$PWD
scp -r  hadoop-3.1.1  linux03:$PWD

5.初始化

进入到hadoop的bin文件夹下 进行初始化   linux01
./hadoop   namenode   -format

初始化后 opt下会多出一个文件夹hdpdata

6.启动

单节点启动

先启动namenode
进入到hadoop的sbin目录下   linux01
./hadoop-daemon.sh   start  namenode      单个启动namenode

启动成功后可以访问页面
http://linux01:9870



启动datanode
进入到hadoop的sbin目录下  linux01 linux02 linux03
./hadoop-daemon.sh  start  datanode 

启动成功后页面可以看到对应节点的信息

一键启停

为了方便今后启动我们将sbin目录配置到环境变量中
vi  /etc/profile  
export  JAVA_HOME=/opt/apps/jdk1.8.0_191
export  HADOOP_HOME=/opt/apps/hadoop-3.1.1
export  PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后 
source /etc/profile

配置集群文件  hadoop的etc/hadoop/目录下workers 告知有哪些机器
vi workers
linux01
linux02
linux03

修改hadoop的sbin下的 start-dfs.sh stop-dfs.sh
vi start-dfs.sh 
在第一行后插入
HDFS_DATANODE_USER=root 
HADOOP_SECURE_DN_USER=hdfs 
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root

vi stop-dfs.sh
在第一行后插入
HDFS_DATANODE_USER=root 
HADOOP_SECURE_DN_USER=hdfs 
HDFS_NAMENODE_USER=root 
HDFS_SECONDARYNAMENODE_USER=root 

配置后 可以在任意目录下 
stop-dfs.sh 停止
start-dfs.sh 启动

2.Java客户端

创建Maven项目,添加Hadoop依赖.

<dependencies>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- 添加hadoop的依赖  -->
        <!--添加hdfs的客户端依赖-->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-common</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>3.1.1</version>
        </dependency>
    </dependencies>

3.Yarn安装

etc/hadoop/目录下 yarn-site.xml文件

 cd /opt/apps/hadoop-3.1.1/etc/hadoop/
 vi yarn-site.xml

<!--  resource,manager主节点所在机器 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>linux01</value>
</property>

<!--  为mr程序提供shuffle服务 -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

<!--  一台NodeManager的总可用内存资源 -->
<property>
	<name>yarn.nodemanager.resource.memory-mb</name>
	<value>4096</value>
</property>
<!--  一台NodeManager的总可用(逻辑)cpu核数 -->
<property>
	<name>yarn.nodemanager.resource.cpu-vcores</name>
	<value>4</value>
</property>

<!--  是否检查容器的虚拟内存使用超标情况
	 vmem为true 指的是默认检查虚拟内存,容器使用的虚拟内存不能超过我们设置的虚拟内存大小 
-->
<property>
  	<name>yarn.nodemanager.vmem-check-enabled</name>
  	<value>false</value>
</property>

<!--  容器的虚拟内存使用上限:与物理内存的比率 --> 	
<property>
  	<name>yarn.nodemanager.vmem-pmem-ratio</name>
  	<value>2.1</value>
</property>


将 yarn-site.xml 同步给其他Linux
scp yarn-site.xml linux02:$PWD
scp yarn-site.xml linux03:$PWD

配置一键启停

cd /opt/apps/hadoop-3.1.1/sbin
vi  start-yarn.sh
vi  stop-yarn.sh

YARN_RESOURCEMANAGER_USER=root 
HADOOP_SECURE_DN_USER=yarn 
YARN_NODEMANAGER_USER=root

start-yarn.sh  一键启动 

启动后可以访问  http://linux01:8088 查看页面

idea提交程序到Yarn

配置mapred-site.xml文件 添加到resources目录下

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/apps/hadoop-3.1.1</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/apps/hadoop-3.1.1</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/apps/hadoop-3.1.1</value>
    </property>

</configuration>

修改提交任务的代码 maven打jar包的命令为 package

public class Test02 {
    public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
        System.setProperty("HADOOP_USER_NAME", "root");
        Configuration conf = new Configuration();
        //操作HDFS数据
        conf.set("fs.defaultFS", "hdfs://linux01:8020");
        //设置运行模式
        conf.set("mapreduce.framework.name", "yarn");
        //设置ResourceManager位置
        conf.set("yarn.resourcemanager.hostname", "linux01");
        // 设置MapReduce程序运行在windows上的跨平台参数
        conf.set("mapreduce.app-submission.cross-platform","true");

        Job job = Job.getInstance(conf, "WordCount");

        //设置jar包路径
        job.setJar("D:\\IdeaProjects\\hadoop\\target\\test_yarn.jar");

        job.setMapperClass(WordCountMapper.class);
        job.setReducerClass(WordCountReduce.class);

        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        //设置路径为HDFS路径
        FileInputFormat.setInputPaths(job,new Path("/wc/input/word.txt"));
        FileOutputFormat.setOutputPath(job,new Path("/wc/out4"));

        job.waitForCompletion(true);
    }
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值