Hadoop的架构和组成
Hadoop分布式系统基础框架具有创造性和极大的扩展性,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储。
Hadoop的核心组成部分是HDFS,MapReduce以及Common,其中HDFS提供了海量数据的存储,MapReduce提供了对数据的计算,Common为其他模块提供了一系列文件系统和通用文件包。
JDK安装配置
下载JDK版本:8u211-linux-x64
解压JDK :
tar -zxvf jdk-8u211-linux-x64.tar.gz
配置环境变量:
vi /etc/profile文件添加:
export JAVA_HOME=/usr/java/jdk1.8.0_211-amd64
export PATH=$JAVA_HOME/bin:$PATH
Esc :wq!保存并退出。
配置生效:
source /etc/profile
检验是否成功
javac
Hadoop安装配置
下载Hadoop版本;hadoop-2.7.7.tar.gz
解压Hadoop:
tar -zxvf hadoop-2.7.7.tar.gz
配置Hadoop并生效
vi /etc/profile文件添加:
export HADOOP_HOME=/root/hadoop-2.7.7
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Esc :wq!保存并退出。
配置生效:
source /etc/profile
检验是否成功:
hadoop
配置伪分布式修改以下文件:
vi hadoop -env.sh
#hadoop-2.7.7是第25行
#可以使用 :set number来显示行数
export JAVA_HOME=/usr/java
vi core-site.xml
<configuration>
<!--配置HDFS主节点,namenode的地址,9000是RPC通信端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:9000</value>
</property>
<!--配置HDFS数据块和元数据保存的目录,一定要修改-->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/tmp</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<!--注释配置数据块的冗余度,默认是3-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--下面的地址是我个人的-->
<property>
<name>dfs.http.address</name>
<value>192.168.244.11:50070</value>
</property>
</configuration>
vi mapred-site.xml
# mv mapred-site.xml.templete mapred-site.xml #重命名,hadoop-3.1.0系统中就是mapred-site.xml不需要改名,hadoop-2.7.7需要改名
<!--配置MR程序运行的框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
vi yarn-site.xml
<configuration>
<!--配置Yarn的节点-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop</value>
</property>
<!--NodeManager执行MR任务的方式是Shuffle洗牌-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
下一步解决互信问题,生成密钥,使ssh可以免密码连接localhost。
格式化:
hdfs namenode -format
启动:
start-all.sh
检查集群:
jps
显示出6个进程正确:
Jps
DataNode
SecondaryNameNode
NameNode
NodeManager
ResourceManager
web控制台访问:http://192.168.244.11:50070 、http://192.168.244.11:8088
上传HDFS:
hdfs dfs -put in.txt /adir 上传本地当前路径下的in.txt文件 到hdfs的/adir目录下。
运行wordcount:
hadoop jar /root/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /data/wordcount /output/wordcount
最后在http://192.168.244.11:50070 查看/user/root/output/part-r-00000文件里的词频统计结果。