HDFS 一次写入多次读取 不能修改 先删除 再上传
Hadoop 伪分布式搭建
在单台机器上用Java进程模拟出的多台服务器方法 适合用于学习
步骤
- 创建hadoop用户 给定权限 sudo vi /etc/sudoers root hadoop ALL=(ALL) ALL
- 修改主机名称 配置相应的IP映射 hostname hh vi /etc/hosts
10.9.190.141 hh
- 配置ssh免密码登陆 ssh-keygen -t rsa 生成公钥私钥 ssh-capy-id 主机名称
- 安装jdk
环境变量配置
export JAVA_HOME=/opt/app/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
-
修改权限
hadoop配置文件
Hadoop 四大组件
-
Hadoop Common: The common utilities that support the other Hadoop modules.
-
Hadoop的核心组件jia包 和java有关系的
-
Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
-
Hadoop YARN: A framework for job scheduling and cluster resource management.
-
Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
用户在配置的时候一般来说 配置的是用户的自定义文件
core-default.xml core-site.xml
每一个模块都有一个配置文件 :
加载顺序 : 系统会先加载默认的配置文件
用户自定义的配置文件,优先级会高于默认的配置文件加载
配置文件:
1 hadoop-ven.sh
export JAVA_HOME=/opt/app/jdk1.8.0_181
2 mapred-env.sh
export JAVA_HOME=/opt/app/jdk1.8.0_181
3 yarn-env.sh
export JAVA_HOME=/opt/app/jdk1.8.0_181
4 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name> 配置hdfs 路径
<value>hdfs://hh:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name> //进程保存目录
<value>/opt/app/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
5 mapred.site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name> //集群框架模型 yarn 默认local
<value>yarn</value>
</property>
</configuration>
6 yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> 服务名称
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value> 指定的类
</property>
<property>
<name>yarn.log-aggregation-enable</name> 是否打印日志
<value>true</value>
</property>
7 主从架构
slaves
有几个节点 就写几个主机名称 删除localhost 写入hh
8 集群配置完成之后,要对namenode进行格式化 产生元数据
bin/hadoop namenode -format
sbin/start-dfs.sh stop-dfs.sh start-yarn.sh stop-yarn.sh
配置hadoop环境全局 vi /etc/profile
export HADOOP_HOME=/opt/app/hadoop-2.5.0-cdh5.3.6
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
查看历史日志
在mapred-site.xml
<property>
<name>mapreduce.jobhistory.address</name>
<value>hh:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hh:19888</value>
</property>
sbin/mr-jobhistory-daemon.sh start historyserver
hadoop集群上的日志
在集群的启动过程中,出现了问题,会把错误信息记录在日志中,集群启动不成功的情况下一定要记得查看日志
在查看日志的时候,主要查看log结尾的日志 out 输出信息 info 比较简单的信息 对于调式用处不大
centOS 6.5关闭防火墙步骤 加上sudo
关闭命令: service iptables stop
永久关闭防火墙:chkconfig iptables off
两个命令同时运行,运行完成后查看防火墙关闭状态
service iptables status
运行wordcount例子
hadoop dfs -put /home/hadop/a.txt /a.txt
hadoop dfs -ls /
hadoop jar /opt/app/hadoop-2.5.0-cdh5.3.6/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /a.txt /out
hadoop dfs -text /out/part*