大数据学习系列(7)-- hadoop集群搭建
1、配置ssh免登陆
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id localhost
---------------------------
ssh免登陆:
生成key:
ssh-keygen
复制从A复制到B上:
ssh-copy-id B
验证:
ssh localhost/exit,ps -e|grep ssh
ssh A #在B中执行
2、安装JDK
2.1 wget 下载jdk tar包
2.2 解压jdk
#创建文件夹
mkdir /home/hadoop/app
#解压
tar -zxvf jdk1.8.0_144.tar.gz -C /home/hadoop/app
2.3 将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile
3.安装hadoop2.8.3先上传hadoop的安装包到服务器上去/home/hadoop/
注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop 伪分布式需要修改如下配置文件: 3.1配置hadoop 第一个:hadoop-env.sh vim hadoop-env.sh # 修改jdk环境变量 export JAVA_HOME=/usr/java/jdk1.8.0_144 第二个:core-site.xml <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://node1:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.8.3/tmp</value> </property> 第三个:hdfs-site.xml <!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.secondary.http.address</name> <value>192.168.1.152:50090</value> </property> 第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml) mv mapred-site.xml.template mapred-site.xml vim mapred-site.xml <!-- 指定mr运行在yarn上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> 第五个:yarn-site.xml <!-- 指定YARN的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> </property> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> 3.2 将hadoop添加到环境变量 vim /etc/proflie export JAVA_HOME=/usr/java/jdk1.8.0_144 export HADOOP_HOME=/itcast/hadoop-2.8.3 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile 3.3 格式化namenode(是对namenode进行初始化) hdfs namenode -format (hadoop namenode -format) 3.4 启动hadoop 先启动HDFS sbin/start-dfs.sh 再启动YARN sbin/start-yarn.sh 3.5 验证是否启动成功 使用jps命令验证 27408 NameNode 28218 Jps 27643 SecondaryNameNode 28066 NodeManager 27803 ResourceManager 27512 DataNode http://node1:50070 (HDFS管理界面) http://node1:8088 (MR管理界面)
注意:
1、确保集群节点防火墙关闭
2、datanode可以正常启动,但是就是无法与namenode通讯,查看logs/下日志,会发现: Unable to connect to remote host:Connection refused
namenode下/etc/hosts 中有127.0.1.1(它监听的本地地址,是一个本地回环地址)
本地模式
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.3/hadoop-2.8.3.tar.gz
#解压到/opt/moudles
tar -zxf hadoop-2.8.3/hadoop-2.8.3.tar.gz -C /opt/moudles
cd /opt/moudles/hadoop-2.8.3
mkdir wcinput
touch wc.input
vim wc.input #写入一些单词
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar wordcount wcinput wcoutput
伪分布式
# hadoop中创建一个临时目录
mkdir data
mkdir data/tmp
# core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://aly_ye:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/moudles/hadoop-2.8.3/data/tmp</value>
</property>
</configuration>
# hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
# 启动namenode
sbin/hadoop-daemon.sh start namenode
# 启动datanode
sbin/hadoop-daemon.sh start datanode
官方文档:http://hadoop.apache.org/docs/r2.8.3/hadoop-project-dist/hadoop-common/SingleCluster.html
hdfs垃圾回收
在core-site.xml配置垃圾回收时间:
<configuration>
<property>
<name>fs.trash.interval</name>
<value>1000</value>
</property>
</configuration>
启动方式
1、hadoop-daemon.sh、yarn-daemon.sh 逐一启动
2、start-dfs.sh、start-yarn.sh 分开启动(比较常用)
3、start-all.sh 一起启动