基于阿里云搭建hadoop平台
文章目录
- 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平台相关推荐
- 基于阿里云搭建的适合初创企业的轻量级架构--架构总结
----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...
- 如何基于阿里云搭建适合初创企业的轻量级架构?
----基于阿里云搭建的适合初创企业的轻量级架构 前言 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重 ...
- 如何将项目发布到阿里云_尚硅谷基于阿里云搭建数据仓库(实时)项目视频发布...
11月,尚大发布了基于阿里云搭建数据仓库离线项目视频,不少爱学习的小伙伴表示,对实时项目视频翘首以盼,听了大海哥的课,腰不酸了,腿不疼了,一口气从头听到尾还不过瘾,沉迷于学习无法自拔-- 说曹操,大海 ...
- 挑战一个人搭建一套完整直播系统5:基于阿里云搭建外网直播系统
本节将来介绍如何基于阿里云搭建一个真正的外网直播系统,其实平台的搭建在前面已经做了介绍,这里的区别是在云平台上重新搭建系统,这里采用了阿里云服务器ECS来实现(可以免费使用薅羊毛),选择的系统为ubu ...
- 基于阿里云MQTT物联网平台视频监控
1.项目介绍 本项目基于物联量平台远程的视频监控项目,通过MQTT协议实现两个设备间的数据上报与订阅.通过这个项目来演示,两个MQTT设备如何互相订阅,进行消息流转.在阿里云服务器上创建2个设备, ...
- hadoop搭建_阿里云搭建Hadoop集群
1 前言 在讲述Hadoop集群搭建之前,首先要了解Hadoop和集群两个名词,Hadoop是由Apache基金会开发的分布式系统基础架构,简单理解就是大数据技术应用的基础.集群可以理解为多台装有ha ...
- 基于阿里云搭建微信小程序服务器(HTTPS)
https://www.jianshu.com/p/132eed84bc4f 本来是想写基于腾讯云搭建微信小程序服务器的,可惜腾讯云让我有点不好的体验,所以就先放弃使用腾讯云了.所以转而在阿里云上注册 ...
- 梨视频:基于阿里云E-MapReduce搭建视频推荐系统实践
专注新闻资讯的梨视频近来表现亮眼. 梨视频由前澎湃新闻掌门人邱兵创立. 在上线之前,它就获得了黎瑞刚华人文化近1亿美元投资,旗下<微辣>栏目总播放量已经超过4亿,并在上线1个月后获得&qu ...
- 梨视频:基于阿里云E-MapReduce搭建视频推荐系统的实践
专注新闻资讯的梨视频近来表现亮眼. 梨视频由前澎湃新闻掌门人邱兵创立. 在上线之前,它就获得了黎瑞刚华人文化近1亿美元投资,旗下<微辣>栏目总播放量已经超过4亿,并在上线1个月后获得&qu ...
最新文章
- 第2题——DNA片段
- v-pre的指令|| v-cloak 的指令
- HDFS Java API 实践
- 中国电信学院c语言题库,电脑题库试题精编版.doc
- asp.net本质论——HttpModule
- 怎么找到服务器的文档,服务器怎么找到数据库
- 拨开云雾见日月:SQL Server 调优之查询存储
- Too_many_open_files_问题的解决
- L1-035 情人节 (15 分)—团体程序设计天梯赛
- 用 intellij idea 创建一个Java web项目
- CREO:CREO软件之零件【模型】之操作、基准、形状、扫描、工程、编辑、曲面的简介及其使用方法(图文教程)之详细攻略
- 利用HttpClient4,实现get,post 参数,post json,post file
- java注解生成xml和包含CDATA问题
- 线性规划——产销平衡
- Android下拉状态栏 快捷开关的添加与删除
- linux获取pc指针地址,为什么pc可以看成使程序存储器的地址指针
- python笔试编程题_Python自动化测试笔试面试时常见的编程题
- 自动复制吱口令html,【月入六万】吱口令,网页自动复制,进支付宝提示领红包源码...
- 操作系统 - Linux - Ubuntu
- 2022 极术通讯-搭载“星辰”处理器的聆思科技CSK6视觉AI开发套件开发概览