防火墙 centOS firewalld
https://www.cnblogs.com/moxiaoan/p/5683743.html
hadoop文档
http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
hadoop下载地址:
http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
zookeeper
https://www.cnblogs.com/zengxiaoliang/p/8442815.html
java 编程开发hfds
https://www.cnblogs.com/codeOfLife/p/5396624.html
pdf 教程
https://blog.csdn.net/myvanguard/article/details/83896365
一、安装hadoop
1.安装jdk
2.安装hadoop 2.4.1
- hadoop 包介绍
- bin 可执行脚本
- sbin系统脚本
- etc 配置文件
- lib jar包
- include 本地包
- share 程序开发需要的jar包
- common 公共组件包
- hdfs 存储文件包
- httpfs 提供api包
- mapreduce 模型包
- tools 工具包
- yarn 对应的yarn包
修改主机名称,不修改会出问题
yarn-site.xml
- 安装修改配置文件 etc中的文件修改
- hadoop-env.sh 环境配置文件
- 修改java_home配置路径,替换${JAVA_HOME} 为当前对应的java_home 路径
- core-site.xml 核心代码配置文件 公共的代码
<configuration>
<property>
# 默认文件系统,hdfs
<name>fs.default.name</name>
# uri 文件地址
<value>hdfs://192.168.5.130:90000</value>
</property>
<property>
#默认文件存储位置 ,公共目录
#生产系统挂在到磁盘点,可以拓展磁盘
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.9.2/data</value>
</property>
</configuration>
- hdfs-site.xml 文件存储配置文件,运行的具体参数
<configuration>
# 分部署数据存储备份数
<property>
<name>dfs.replication</name>
<value>1<value>
</property>
</configuration>
- mapreduce-site.xml 模型配置文件 将mapreduce-site.xml.template 替换成 mapreduce-site.xml
<configuration>
# 指定到yarn 上面跑,不然是单机程序。
#放到yarn是分布式程序
<property>
<name>mapreduce.framework.name</name>
<value>yarn<value>
</property>
</configuration>
- yarn-site.xml yarn配置文件
<configuration>
# yarn 的老大
<property>
<name>yarn.resourcemanage.hostname</name>
<value>192.168.5.130</value>
</property>
#重节点 map 中产生的结果怎么传递给reduce
#写死shuffle
<property>
<name>yarn.nodemanage.aux-services</name>
<value>mapreduce_shuffle</value>
<value></value>
</property>
</configuration>
4.准备工作(关闭防火墙,或者配置端口)
service iptables stop
//不要自启服务
chkconfig iptables status
//关闭防火墙
chkconfig iptables off
hadoop/etc/slaves 配置那些机器datanode
- datanode 很多
- 哪些机器要启动datanode
5.第一次启动hadoop 第一次初始化一下
添加环境变量
vi /etc/profil
export HADOOP_HOME=/opt/hadoop-2.9.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
格式化namenode hadoop namenode -format
启动 在sbin 目录中
- ./start-dfs.sh 启动文件服务 bash 启动
- jps 查看启动进程 dfs 应该有三个启动
- secondaryNameNode
- NameNode 只有一个存储路径索引
- DataNode 多个集群
- ResourceManager yarn管理
启动 yarn
- ./start-yarn.sh 启动yarn
- 查看dfs 测试
192.168.5.130:50070
- 上传文件到dfs
//上传
hadoop fs -put jdk-8u11-linux-x64.tar.gz hdfs://192.168.5.130:9000/
//下载文件
hadoop fs -get hdfs:192.168.5.130:9000/jdk-8u11-linux-x64.tar.gz
7.测试mapreduce
/opt/hadoop-2.9.2/share/hadoop/mapreduce
// 统计圆周率 5 map 的任务数 5 reduce 取数数
hadoop jar hadoop-mapreduce-examples-2.9.2.jar pi 5 5
//dfs 创建目录
hadoop fs -mkdir /word
//统计input 中的文件单词数量 数据到output 文件中
hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcount /word/input /word/output
8.ssh秘钥登录设置
将别的服务器的公钥放到authorized_keys 登录
- ssh秘钥实现原理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KEiO8tFh-1591155668627)(https://ws1.sinaimg.cn/large/006tNc79gy1g2jwxcu7dkj30qo0h6q3s.jpg)]
https://www.cnblogs.com/dadonggg/p/7520249.html
1.生成秘钥对 在 /home/user/.ssh/
ssh-keygen -t rsa
2.将生成的公密放到对应的服务器上面
3.将公密放到对应的authorized_keys 里面去,如果没有则在.ssh中创建。权限必须是600 chmod 600 authorized_keys
cat id_rsa.pub >> authorized_keys
# vi /etc/ssh/sshd_config //开启以下内容
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# /etc/init.d/sshd restart
刷新
source /etc/hosts
blocksize 可以调整大小 dfs.block.size 在hdfs-site.xml 中配置
9.hdfs java 编程
java中配置文件core-site.xml配置文件和hdfs-site.xml
- 别的机器上面需要修改hadoop用户名称 在jvm 中配置
-DHADOOP_USER_NAME=root
或者
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.5.130:9000/"),configuration,"root");中设定
10.rpc调用 hadoop rpc
soap = http+xml
https://blog.csdn.net/watter1985/article/details/84322118
- mapreduce 程序
- map对象继承Mapper
- 本地运行需要在本地环境配置hadoop与hadoop的环境变量
- 自定义bean 需要实现hadoop 相对于的序列号接口
- yarn 8088界面
yarn-site.xml yarn.resourcemanager.hostname
集群电脑配置对应的主机名称的ip地址
linux host文件中配置主机名和ip地址
本地执行放入yarn中
- 本地eclipse 使用main 方法执行,想放入yarn 分布式处理,将mapred-site.xml 和yarn-site.xml 放入项目的src 根目录下
- 或者将配置文件的内容配置到configuration 中
- 本地打包jar配置wcrunner configuration.set(“mapreduce.job.jar”,“wc.jar”)
13.mapreduce 设置分组和设定reduce执行个数
- 1.设定分组 instance.setPartitionerClass();继承partitioner 实现数据处理分组
- 2.设置reduce执行个数 instance.setNumReduceTasks(6);
reduce有多少个输出的文件就有多少个