文章目录

  • 1. 前言
  • 2. 添加hadoop用户
  • 3. 配置/etc/hosts文件
  • 4. 设置ssh免密登录
    • 4.1 安装ssh
    • 4.2 设置免密
  • 5. 安装JDK
  • 6. 安装hadoop
  • 7. 配置环境变量
  • 8. 配置hadoop
    • 8.1 hadoop-env.sh
    • 8.2 core-site.xml
    • 8.3 hdfs-site.xml
    • 8.4 mapred-site.xml
    • 8.5 yarn-site.xml
    • 8.6 Slaves
  • 9. 格式化namenode
  • 10. 远程访问
    • 10.1 配置主机hosts文件
    • 10.2 Maven配置
    • 10.3 代码示例

1. 前言

基于阿里云搭建hadoop平台,并实现远程访问调用
需要在安全组开放如下端口:
9000
50010
50070

2. 添加hadoop用户

添加用户,防止误操作搞崩了,密码自己设置。

useradd hadoop
passwd hadoop
usermod -aG wheel Hadoop

3. 配置/etc/hosts文件

左边是集群的内网ip,右边是你的主机名

172.31.18.35   k8s-master
172.31.18.36   k8s-node1

4. 设置ssh免密登录

4.1 安装ssh

检测是否安装:

 rpm -qa | grep ssh

安装:

yum list | grep ssh
yum install -y <clients>
yum install -y <server>

4.2 设置免密

ssh-keygen -t rsa -P ''
ssh-copy-id k8s-master
ssh-copy-id k8s-node1

5. 安装JDK

sudo yum update
sudo yum install java-1.8.0-openjdk-devel

6. 安装hadoop

mkdir software
cd software
wget https://www-us.apache.org/dist/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
tar xvf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7 hadoop

7. 配置环境变量

找到jdk目录:

update-alternatives --display java

发现:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre

然后修改/etc/profile文件:

vim /etc/profile
source /etc/profile

插入:

#java
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre
export PATH=$PATH:$JAVA_HOME/bin
#hadoop
export HADOOP_HOME=/home/hadoop/software/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

8. 配置hadoop

8.1 hadoop-env.sh

vim  /home/hadoop/software/hadoop/etc/hadoop/hadoop-env.sh

修改JAVA_HOME:

export  JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
-1.8.0.232.b09-0.el7_7.x86_64/jre

8.2 core-site.xml

vim  /home/hadoop/software/hadoop/etc/hadoop/core-site.xml
<configuration><property><name>fs.default.name</name><value>hdfs://k8s-master:9000</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/home/hadoop/software/hadoop/tmp</value></property>
</configuration>

8.3 hdfs-site.xml

vim /home/hadoop/software/hadoop/etc/hadoop/hdfs-site.xml
<configuration> <property><name>dfs.replication</name><value>2</value></property>
</configuration>

8.4 mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
 <property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobtracker.address</name><value>yarn</value></property>

8.5 yarn-site.xml

vim yarn-site.xml
<configuration><property><name>yarn.resourcemanager.hostname</name><value>k8s-master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

8.6 Slaves

vim slaves

添加你的主机名,添加的节点为datanode节点

k8s-master
k8s-node1

9. 格式化namenode

在k8s-master:

hdfs namenode -format

启动hadoop

start-all.sh

10. 远程访问

10.1 配置主机hosts文件

C:\Windows\System32\drivers\etc

【对应的公网ip】    k8s-master
【对应的公网ip】   k8s-node1

10.2 Maven配置

<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.7.7</version>
</dependency>
<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.7.7</version>
</dependency>
<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.7</version>
</dependency>

10.3 代码示例

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;import java.io.IOException;
import java.net.URI;/*** @author lhd*/
public class HdfsDemo {private static final String HDFS_API = "hdfs://xx.xxx.xx.xxx:9000";static Configuration configuration = null;static FileSystem fileSystem = null;/*** 初始化*/public static void init(){System.setProperty("HADOOP_USER_NAME", "hadoop");configuration = new Configuration();configuration.set("dfs.client.use.datanode.hostname", "true");try {fileSystem = FileSystem.get(URI.create(HDFS_API), configuration);} catch (IOException e) {e.printStackTrace();}}/*** 创建文件api*/public static void createFolder(){try{//在指定的路径下创建文件夹Path path = new Path("/demo");fileSystem.mkdirs(path);}catch (IOException e){e.printStackTrace();}}/*** 递归显示文件* @param path 文件路径*/public static void listFile(Path path){try{//FileStatus对象封装了文件和目录的元数据,包括文件长度、块大小、权限等信息FileStatus[] fileStatusesArray = fileSystem.listStatus(path);for(int i=0; i< fileStatusesArray.length; i++){FileStatus fileStatus = fileStatusesArray[i];//首先检查当前是否为文件夹,如果是则递归if(fileStatus.isDirectory()){System.out.println("当前路径是:"+ fileStatus.getPath());listFile(fileStatus.getPath());}elseSystem.out.println("当前路径是:"+fileStatus.getPath());}}catch (IOException e) {e.printStackTrace();}}/*** 文件上传*/public static void uploadFile(){try{Path src = new Path("e://a.txt");Path dest = new Path("/demo/a.txt");fileSystem.copyFromLocalFile(src, dest);}catch (IOException e){e.printStackTrace();}}/*** 文件下载*/public static void downloadFile(){try{Path src = new Path("/demo/a.txt");   // 下载源地址Path dest = new Path("e://b.txt"); // 下载目的地址//从服务器下载到本地fileSystem.copyToLocalFile(src, dest);}catch (IOException e){e.printStackTrace();}}public static void main(String[] args) {init();createFolder();uploadFile();downloadFile();listFile(new Path("/"));}
}

基于阿里云搭建hadoop平台相关推荐

  1. 基于阿里云搭建的适合初创企业的轻量级架构--架构总结

    ----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...

  2. 如何基于阿里云搭建适合初创企业的轻量级架构?

    ----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...

  3. 如何将项目发布到阿里云_尚硅谷基于阿里云搭建数据仓库(实时)项目视频发布...

    11月,尚大发布了基于阿里云搭建数据仓库离线项目视频,不少爱学习的小伙伴表示,对实时项目视频翘首以盼,听了大海哥的课,腰不酸了,腿不疼了,一口气从头听到尾还不过瘾,沉迷于学习无法自拔-- 说曹操,大海 ...

  4. 挑战一个人搭建一套完整直播系统5:基于阿里云搭建外网直播系统

    本节将来介绍如何基于阿里云搭建一个真正的外网直播系统,其实平台的搭建在前面已经做了介绍,这里的区别是在云平台上重新搭建系统,这里采用了阿里云服务器ECS来实现(可以免费使用薅羊毛),选择的系统为ubu ...

  5. 基于阿里云MQTT物联网平台视频监控

    1.项目介绍   本项目基于物联量平台远程的视频监控项目,通过MQTT协议实现两个设备间的数据上报与订阅.通过这个项目来演示,两个MQTT设备如何互相订阅,进行消息流转.在阿里云服务器上创建2个设备, ...

  6. hadoop搭建_阿里云搭建Hadoop集群

    1 前言 在讲述Hadoop集群搭建之前,首先要了解Hadoop和集群两个名词,Hadoop是由Apache基金会开发的分布式系统基础架构,简单理解就是大数据技术应用的基础.集群可以理解为多台装有ha ...

  7. 基于阿里云搭建微信小程序服务器(HTTPS)

    https://www.jianshu.com/p/132eed84bc4f 本来是想写基于腾讯云搭建微信小程序服务器的,可惜腾讯云让我有点不好的体验,所以就先放弃使用腾讯云了.所以转而在阿里云上注册 ...

  8. 梨视频:基于阿里云E-MapReduce搭建视频推荐系统实践

    专注新闻资讯的梨视频近来表现亮眼. 梨视频由前澎湃新闻掌门人邱兵创立. 在上线之前,它就获得了黎瑞刚华人文化近1亿美元投资,旗下<微辣>栏目总播放量已经超过4亿,并在上线1个月后获得&qu ...

  9. 梨视频:基于阿里云E-MapReduce搭建视频推荐系统的实践

    专注新闻资讯的梨视频近来表现亮眼. 梨视频由前澎湃新闻掌门人邱兵创立. 在上线之前,它就获得了黎瑞刚华人文化近1亿美元投资,旗下<微辣>栏目总播放量已经超过4亿,并在上线1个月后获得&qu ...

最新文章

  1. 第2题——DNA片段
  2. v-pre的指令|| v-cloak 的指令
  3. HDFS Java API 实践
  4. 中国电信学院c语言题库,电脑题库试题精编版.doc
  5. asp.net本质论——HttpModule
  6. 怎么找到服务器的文档,服务器怎么找到数据库
  7. 拨开云雾见日月:SQL Server 调优之查询存储
  8. Too_many_open_files_问题的解决
  9. L1-035 情人节 (15 分)—团体程序设计天梯赛
  10. 用 intellij idea 创建一个Java web项目
  11. CREO:CREO软件之零件【模型】之操作、基准、形状、扫描、工程、编辑、曲面的简介及其使用方法(图文教程)之详细攻略
  12. 利用HttpClient4,实现get,post 参数,post json,post file
  13. java注解生成xml和包含CDATA问题
  14. 线性规划——产销平衡
  15. Android下拉状态栏 快捷开关的添加与删除
  16. linux获取pc指针地址,为什么pc可以看成使程序存储器的地址指针
  17. python笔试编程题_Python自动化测试笔试面试时常见的编程题
  18. 自动复制吱口令html,【月入六万】吱口令,网页自动复制,进支付宝提示领红包源码...
  19. 操作系统 - Linux - Ubuntu
  20. 2022 极术通讯-搭载“星辰”处理器的聆思科技CSK6视觉AI开发套件开发概览

热门文章

  1. 发送时延和传播时延计算
  2. 有薪假无薪假→疫情假
  3. 记录Tomcat配置context.xml自动缓存问题
  4. SAP——维护篇(简书)
  5. 工程图字体乱码解决方法
  6. 黄金含量版本——KTV
  7. java 进阶(持续补充)
  8. 学习笔记:隋唐人的行
  9. Java如何可以有条理的学习
  10. java 图片存进mysql_Java操作mysql存储图片