Hadoop环境搭建-单机版本

Hadoop环境搭建

一、配置列表

  • linux选用centos7
  • jdk1.8(hadoop是java写的,运行需要jre)
  • hadoop3

二、目标

  • 熟悉hadoop的配置
  • 搭建伪分布式hadoop集群

三、下载jdk、hadoop文件

  1. jdk下载
    斜体样式从华为镜像网站下载,速度比较快。
    https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
  2. hadoop下载
    从北京信息学院的国内镜像下载
    http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
    自己的百度云链接:
    链接:https://pan.baidu.com/s/11sPp1oec6uBi8Ci1BvV0rw
    提取码:1234
  3. centos8 iso文件下载
    阿里镜像下载
    https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso

四、开干

  1. jdk
    1)scp 本机中jdk文件 username@centos的ip:目标路径。解压到 /opt/module目录下(个人习惯)。
    2)配置JAVA_HOME、JRE、CLASSPATH环境变量
    修改/etc/profile在文件末尾添加:
export JAVA_HOME=/opt/moudle/jdk-14.0.2
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  1. hadoop
    1)配置HADOOP_HOME环境变量
    修改/etc/profile末尾添加
    export HADOOP_HOME=/opt/moudle/hadoop-3.3.0
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    
   2)修改hadoop的etc目录下的启动配置文件
    - core-site.xml
    
```html
<configuration>
        <!-- NameNode 地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node01:9000</value>
    </property>

   <!-- Hadoop临时文件目录,默认是/tmp目录,系统重启后数据丢失 -->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/moudle/hadoop-3.3.0/data/tmp</value>
   </property>
</configuration>
  1. hadoop-en.sh登录时不会去加载/etc/profile中的环境变量
    必须将JAVA_HOME写死,ssh
export JAVA_HOME=/opt/moudle/jdk-14.0.2
#root用户启动失败 修改 etc/hadoop/hadoop-env.sh 添加如下
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

  1. hdfs-site.xml
<configuration>
    <!-- block块的副本数 -->
    <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
             <!--本节点namenode数据目录-->
        <property>
                <name>dfs.name.dir</name>
                <value>/opt/moudle/hadoop-3.3.0/data/name</value>
        </property>
        <!--本结点datanode数据目录-->
        <property>
                <name>dfs.data.dir</name>
                <value>/opt/moudle/hadoop-3.3.0/data/data</value>
        </property>
        <!--本地datanode地址-->
             <property>
                <name>dfs.datanode.http.address</name>
                <value>node01:9999</value>
        </property>
        <!-- 开启Web端访问hdfs-->
		<property>
   			<name>dfs.webhdfs.enabled</name>
   			<value>true</value>
 		</property>
        <!--namenode返回给客户端datanode的主机名称而不是ip(阿里云EC必须这样配)-->
        <!--
           <property>
                <name>dfs.client.use.datanode.hostname</name>
                <value>true</value>
          </property>
        --!>
</configuration>
  1. 配置namenode、datanode之间ssh登录(不同进程之间登录本机)
   ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
   cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
   chmod 0600 ~/.ssh/authorized_keys

五 测试

  1. 启动hdfs
start-dfs.sh
  1. jps查看namenode、datanode 、secondarynode进程是否都已经正常启动,如果为正常启动,查看logs/*.log错误日志。
  2. 在hdfs中创建一个/user文件夹
hdfs dfs -mkdir /user

在浏览器中输入:http://47.111.250.185:9870/ 查看已上传的文件

######################运行自带的单词出现次数统计程序##################
4. 新建a.txt
101 aaa
1002 bbb
hadoop
hadoop1101 aaa
1002 bbb
hadoop
2.新建b.txt
aa
bb
aa
nb
3.上传文件到fs
hadoop fs -mkdir -p /wordcount/input
hadoop fs -put a.txt /wordcount/input
hadoop fs -put b.txt /wordcount/input
4.调用hadoop提供的实例jar包,进行统计
hadoop jar hadoop-mapreduce-examples-3.0.0.jar wordcount /wordcount/input /output
Tips: **.jar 程序代码
wordcount : 程序的入参,调用哪个示例代码方法
/wordcount/intput 指定输入文件的地址
/output 输出结果存放的文件
5. 测试结果

1002 2
101 1
aa 2
aaa 2
bb 1
bbb 2
hadoop 2
hadoop1101 1
nb 1

六、小结

无非是编写map,reduce函数。可以使用springboot进行开发。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值