安装hadoop , 配置环境变量
HADOOP_HOME
PATH 中配置
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin
配置完成后,验证,start双击空格键
hdfs :NameNode , seconderyNameNode,DataNode
yarn : resourceManager , DataNodeManager
关闭防火墙
systemctl disable firewalld.service
配置域名映射,文件/etc/hosts,格式如下
192.168.23.114 bigdata114
Web Console访问:ip:port 即可打开
hdfs: 端口: 50070
yarn: 端口:8088
hadoop的部署有三种:
-
本地模式
主要用于测试mapreduce直接在 etc/hadoop_env.sh 中将 JAVA_HOME 改为自己的即可
-
伪分布模式
在本地模式的基础上,完成以下配置:(*)hdfs-site.xml <!--配置数据块的冗余度,默认是3--> <!--原则冗余度跟数据节点个数保持一致,最大不要超过3--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--是否开启HDFS的权限检查,默认是true--> <!--使用默认值,后面会改为false--> <!-- <property> <name>dfs.permissions</name> <value>false</value> </property> --> (*)core-site.xml <!--配置HDFS主节点的地址,就是NameNode的地址--> <!--9000是RPC通信的端口--> <property> <name>fs.defaultFS</name> <value>hdfs://bigdata111:9000</value> </property> <!--HDFS数据块和元信息保存在操作系统的目录位置--> <!--默认是Linux的tmp目录,一定要修改--> <property> <name>hadoop.tmp.dir</name> <value>/root/training/hadoop-2.7.3/tmp</value> </property> (*)mapred-site.xml(默认没有这个文件) <!--MR程序运行容器或者框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> (*)yarn-site.xml <!--配置Yarn主节点的位置--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata111</value> </property> <!--NodeManager执行MR任务的方式是Shuffle洗牌--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
之后 格式化HDFS的NameNode
hdfs namenode -format
完成之后可以通过以下命令启动
start-dfs.sh start-yarn.sh 或者 start-all.sh
可以通过 jps 来查看或者的进场
完成以上步骤后,可以 使用简单的例子跑一下,这里需要注意的是,hadoop有自己的文件系统,在HADOOP_HOME下 通过以下命令来操作hdfs文件系统
bin/hadoop fs -mkdir /input 创建一个文件夹 bin/hadoop fs -put /root/tmp/input/data.txt /input 将data.txt导入到input目录下 hadoop jar /root/trainning/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/wc 运行自带的单词统计事例
关闭服务可以执行以下代码
stop-dfs.sh stop-yarn.sh 或 stop-all.sh
-
全分布模式
配置和伪分布式差不多,需要一些前提工作,
设计好架构,现在以最简单的一个NameNode2个DataNode为例子假设这里NameNode 为 bigdata114,2个从节点分别为bigdata112,bigdata113.
搭建全分布模式主要的工作在NameNode的配置上,可以用 scp 命令,将主节点的文件结构拷贝给从节点,这里为了避免遗漏和便于理解,我们按照顺序结构来操作,
① 在NameNode上完成之前伪分布式的配置,同时在hadoop的etc目录下配置slaves ,将从节点配置到文件中,这里就是 bigdata112,bigdata113
②格式化NameNode,命令和伪分布式一样,:切换到HADOOP_HOME目录执行 hdfs namenode -format
③配置免密登录,
ssh keygen -t rsa
之后一路回车即可,需要注意的是,这一步需要在每个节点上包括namenode上都执行,之后将各个节点之间生成的公钥,给其他节点
ssh-copy-id [user@]hostname
例如:
ssh-copy-id root@bigdata114
这步执行完后,免密登录就配置好了,
④同scp命令将 NameNode上的hadoop文件夹拷贝给各个子节点,这里需要注意的是,子节点上的hadoop-env.sh 需要配置子节点自己的,拷贝命令如下:
这里假设,从bigdata114上拷贝文件到bigdata113上,
scp -r /root/trainning/hadoop-2.7.3 root@bigdata113:/root/trainning
完成以上步骤,一个最简单的群分布模式接搭建好了,可以通过 start-all.sh来启动