hadoop集群配置和在windows系统上运用java操作hdfs
本文介绍hadoop集群配置和在windows系统上运用java操作hdfs
安装
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.1/
sudo apt-get install ssh
sudo apt-get install rsync
mkdir /usr/local/hadoop
tar -zxvf hadoop-3.1.1.tar.gz -C /usr/local/hadoop
sudo vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1
export PATH=.:${JAVA_HOME}/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
hadoop version
配置
服务器
主机名配置
hostname 查看主机名
sudo vim /etc/hostname 修改主机名 sudo vim /etc/hosts 添加如下配置
192.168.76.128 master
192.168.76.129 worker shutdown -r now 重启电脑 配置集群ssh免密登陆
cd .ssh
rm id_rsa id_rsa.pub
ssh-keygen -t rsa
进入master主机 cat id_rsa.pub >> authorized_keys
进入worker主机 ssh-copy-id -i master
进入master主机 chmod 600 authorized_keys
进入master主机 scp /root/.ssh/authorized_keys worker:/root/.ssh/ cd /usr/local/hadoop/hadoop-3.1.1/
hadoop-env.sh
sudo vim etc/hadoop/hadoop-env.sh
添加如下配置
export JAVA_HOME=/usr/src/jdk-11.0.1
core-site.xml
sudo vim etc/hadoop/core-site.xml
<configuration>
<!-- 配置NameNode -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property> <!-- 配置数据目录,用来存放文件 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>
</property>
</configuration>
hdfs-site.xml
sudo vim etc/hadoop/hdfs-site.xml
<configuration>
<!-- 配置副本数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
yarn-site.xml
sudo vim etc/hadoop/yarn-site.xml
添加如下配置
<configuration> <!-- 配置管理者-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce-shuffle</value>
</property>
</configuration>
mapred-site.xml
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
sudo vim etc/hadoop/mapred-site.xml
添加如下配置
<configuration>
<!-- 配置集群运行方式-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
start-dfs.sh
sudo vim sbin/start-dfs.sh
添加如下配置
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
stop-dfs.sh
sudo vim sbin/stop-dfs.sh
添加如下配置
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh
sudo vim sbin/start-yarn.sh
添加如下配置
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
stop-yarn.sh
添加如下配置
YARN_RESOURCEMANAGER_USER=root
HDFS_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
运行
进入master运行 hdfs namenode -format # 格式化
进入master运行 hdfs --daemon start namenode # 开始文件系统
进入worker运行 hdfs --daemon start datanode # 开始文件系统
jps # 查看启动的namenode
netstat -ant # 查看9870端口是否建立连接 访问 http://master:9870 即可看到管理界面
概念
hdfs集群 负责文件读写,namenode管理,datanode负责存储
yarn集群 为mapreduce程序分配硬件资源,resourcemanager需要单独放在另外一台服务器,nodemanager部署在datanode上
hadoop常用shell命令
hadoop fs -ls / 查看fdfs根目录
hadoop fs -put file1.txt / 上传文件到fdfs根目录
hadoop fs -cat /file1.txt 查看文件内容
hadoop fs -mkdir -p /tests/test 创建文件夹
运行自带的mapreduce程序
cd /usr/local/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
计算指定/tests/test文件夹下面文件的个数,并且将结果放在/test/count下
hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcount /tests/test /test/count
使用java操作hadoop
依赖
缺一不可
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.1.1</version>
</dependency>
<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>
在你当前操作系统中添加host信息
C:\WINDOWS\system32\drivers\etc\hosts 修改此文件
192.168.76.128 master
192.168.76.129 worker
上传文件
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://master:9000");
FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
fs.copyFromLocalFile(new Path("F:/test.txt"),new Path("/"));
下载文件
下载文件需要当前操作系统也要有hadoop环境,关于windows系统装hadoop环境的步骤如下
1. http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common 下载一个hadoop版本
2. http://download.csdn.net/detail/wuxun1997/9841472 下载windows需要的工具包
3. 解压hadoop并且配置HADOOP_HOME环境变量,并且在PATH里加上%HADOOP_HOME%\bin
4. 将工具包解压的文件放置在hadoop文件夹的bin目录中,并且将hadoop.dll放置于c:/windows/System32中即可 Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://master:9000");
FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
fs.copyToLocalFile(new Path("/test.txt"), new Path("F:/"));
创建文件夹
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://master:9000");
FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
fs.mkdirs(new Path("/app/test"));
列出根目录所有的文件
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://master:9000");
FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
RemoteIterator<LocatedFileStatus> iterator = fs.listFiles(new Path("/"), true);
while (iterator.hasNext()){
LocatedFileStatus next = iterator.next();
System.out.println(next.getPath());
}
列出根目录所有的文件和文件夹
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://master:9000");
FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
FileStatus[] fileStatuses = fs.listStatus(new Path("/"));
for (int i = 0; i < fileStatuses.length; i++) {
FileStatus fileStatus = fileStatuses[i];
System.out.println(fileStatus.getPath());
}
删除文件
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://master:9000");
FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
fs.delete(new Path("/test.txt"), true);
hadoop集群配置和在windows系统上运用java操作hdfs的更多相关文章
- Hadoop集群配置(最全面总结)
Hadoop集群配置(最全面总结) 通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker.这些机器是masters.余下的机器即作为DataNode也作为Ta ...
- 大数据测试之hadoop集群配置和测试
大数据测试之hadoop集群配置和测试 一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...
- Hadoop集群配置(最全面总结 )(转)
Hadoop集群配置(最全面总结) huangguisu 通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker.这些机器是masters.余下的机器即作为Da ...
- Hadoop 集群配置记录小结
Hadoop集群配置往往按照网上教程就可以"配置成功",但是你自己在操作的时候会有很多奇奇怪怪的问题出现, 我在这里整理了一下常见的问题与处理方法: 1.配置/etc/hosts ...
- hadoop集群配置方法---mapreduce应用:xml解析+wordcount详解---yarn配置项解析
注:以下链接均为近期hadoop集群搭建及mapreduce应用开发查找到的资料.使用hadoop2.6.0,其中hadoop集群配置过程下面的文章都有部分参考. hadoop集群配置方法: ---- ...
- HADOOP集群配置
http://wenku.baidu.com/view/92cbe435eefdc8d376ee32eb.html http://www.infoq.com/cn/articles/hadoop-co ...
- hadoop集群配置全过程
一.nat配置1.虚拟机->编辑->虚拟网络编辑器->更改设置->移除原VMnet8->加新的VMnet8->点击NAT模式 桥接模式->NAT模式,初始化一 ...
- Hadoop集群配置过程中需要注意的问题
环境:VMwareWorkstation8.0 和 Ubuntu14.04 1. 使用三台虚拟机搭建Hadoop集群 2. 一定要在每台机器上配置ssh免密码登录 3. 由于需要给/etc/hosts ...
- Hadoop集群配置免密SSH登录方法
Hadoop集群包含1个主节点和3个从节点,需要实现各节点之间的免密码登录,下面介绍具体的实现方法. 一.Hadoop集群环境 二.免密登录原理 每台主机authorized_keys文件里面包含的主 ...
随机推荐
- 配置管理puppet
目录: 1.功能 2.服务器 3.管理对应配置文件 4.脚本相关 5.puppet配置相关 6.puppet客户端安装脚本 7.主机配置文件新增节点详细 8.新增文件项目 9.puppet管理命令 ...
- Makefile的补充学习
通配符%和Makefile自动推导(规则)(1)%是Makefile中的通配符,代表一个或几个字母.也就是说%.o就代表所有以.o为结尾的文件.(2)所谓自动推导其实就是Makefile的规则.当Ma ...
- Codeforces Round #394 (Div. 2) A. Dasha and Stairs
A. Dasha and Stairs time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...
- UI-自定义TabBar
MyCustomTabBar.h文件 #import <UIKit/UIKit.h> @interface MyCustomTabBar : UITabBarController @end ...
- git修改远端服务器地址
方法有三种: 1.修改命令 git remote set-url origin [url] 2.先删后加 git remote rm origingit remote add origin [url] ...
- win7/8 关闭非正常关机的自动修复功能
win7/8 关闭非正常关机的自动修复功能 1.桌面右键新建一个文档文本,双击打开文件新建文本文档,复制以下命令到文本里面! bcdedit /set {default} bootstatuspoli ...
- Is possible develop iOS game with Delphi Xe4 ? Pascal
下面的计划: 评估用Delphi XE4来开发游戏的可行性. 以及成本. (代价过大的话 估计还是不会被接受 所以某个角度来说这是个玩具) . 有几个选择, Asphyre 4.0 之后作者lifep ...
- Linux SSH的命令详解[转]
http://www.linuxidc.com/Linux/2008-02/11055.htm前一阵远程维护Linux服务器,使用的是SSH,传说中的secure shell. 登陆:ssh [hos ...
- Unity3D开发之Matrix4x4矩阵变换
在Unity开发中时常会用到Matrix4x4矩阵来变换场景中对象的位置.旋转和缩放.但是很多人都不太理解这儿Matrix4x4变换矩阵.通过DX中的变换矩阵我来讲一讲在unity中这个变换矩阵是怎么 ...
- 旧书重温:0day2【6】bind_shell
学习了以上5节课,我们学到了很多知识,例如如何动态获取指定函数的地址:我们也学到了很多经验,例如如何发现代码中的错误,如何用od定位到错误,并修正. 有了以上积累,今天我们继续实验bind_shell ...