cdh版本下载地址:http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.1.tar.gz
一、快速启动本地hadoop
1、安装hadoop,必须有java环境,下载hadoop的tar包,大概319m,版本是3.1.1
2、然后解压,配置环境变量,bin和sbin都配置,然后生效一下,
3、专栏管理验证:输入hadoop,显示一堆东西,完成。
目录介绍
bin,etc存放配置文件。重要include 包含,lib 本地库,sbin里有大量的启动,集群启动脚本等等,重要。share分享,案例,说明文档。可以删除
测试本地:
1、在hadoop根目录新建input目录,把etc下的所有.xml结尾的文件都复制到input下
2、mkdir input
cp etc/hadoop/*.xml input/
3、hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input/ output 'dfs[a-z.]+'
这里的output必须是没有创建的,否则会报错
wordcount案例
同样创建wcinput 在里面创建文件wc.input,在里面写几个单词,用来统计次数
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount wcinput/ wcoutput
输入输出
二、hadoop伪分布式搭建
1、vim core-site.xml
<!--指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.1.1/data/tmp</value>
</property>
默认是放到/tmp/hadoop-${user.name}
data会默认帮你创建
2、配置hadoop-env.sh,为了改java_home
所有带env的基本上都得修改java_home
3、etc/hadoop/hdfs-site.xml:
<configuration>
副本的数目,默认是3,在三台机器上存储了同一份数据
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
4、格式化namenode,第一次需要格式化,以后不需要
dfs namenode -format
5、启动,命令在sbin下
hadoop-daemon.sh start namenode 启动namenode
hadoop-daemon.sh start datanode 启动datanode
三、完全分布式
三台主机 master node1 node2 都配置/etc/hosts
1、vim /etc/udev/rules.d/70-persistent-net.rules 复制16进制的串 , 只用eth0 其他删除
2、vi /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=00:0C:29:83:2E:1B(和你复制的是否一致)
IPADDR=192.168.88.129
GATEWAY=192.168.88.1
BROADCAST=255.255.255.0
3、ssh master(主机名),然后退出exit
4、vim /etc/sysconfig/network 修改主机名
5、vim /etc/hosts中所有的节点都配置上
6、reboot 重启
2、ssh
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
hadoop集群搭建博客:https://blog.csdn.net/qq_41684957/article/details/81946128
3、scp
scp -r 递归拷贝
scp -r 源数据路径 目标数据路径
可以坐在node1上拉取master的数据 scp -r root@master:/usr/local/hadoop /usr/local
可以在node1上 scp -r root@node2:/usr/local/hadoop root@master:/usr/local
4、rsync
同步,只对差异的文件进行更新,避免复制相同内容
5、xsync集群的分发脚本
6、
1、core-site.xml
配置namenode地址master:9000
指定运行时产生文件的目录
2、hadoop-env.sh
配置
export JAVA_HOME=/usr/local/software/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop-3.1.1
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
hdfs-site.xml
配置产生副本的个数(默认3个)
namenode辅助接点 50090
3、yarn文件
格式化namenode
hdfs namenode -format
重新格式化namenode一定记得先停止hadoop,然后3个主机的data和logs都删除