hadoop搭建
一、 配置jdk环境
tar -zxvf jdk-8u201-linux-x64.tar.gz -C /usr/local
配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
生效环境变量
source /etc/profile
测试jdk
java -version
二、上传hadoop
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /usr/local
配置hadoop 环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_201
export HADOOP_HOME=/usr/local/hadoop-2.6.0-cdh5.7.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
三、 修改主机名和ip映射关系
vim /etc/hostname
master
配置ip域名映射
vim /etc/hosts
192.168.66.50 master
四、关闭防火墙
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
五、配置hadoop-env.sh
第25行
export JAVA_HOME=/usr/local/jdk1.8.0_201
六、 配置namenode(core-site.xml)
<configuration>
<!-- 指定hadoop 所在使用文件系统hdfs namenode老大的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 执行hadoop 运行时产生文件存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.6.0-cdh5.7.0/tmp</value>
</property>
</configuration>
七、配置副本 hdfs-site.xml
<!-- hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
八、格式化namenode
hadoop namenode -format
怎么配置免密登录
生成密钥
ssh-keygen -t rsa
配置密钥
ssh-copy-id master
九、启动namenode
sbin目录下start-dfs.sh
集群配置(所有机器配置同步)
配置ip域名映射
vim /etc/hosts
192.168.66.50 master
192.168.66.51 slave01
192.168.66.52 slave02
配置slaves(3.0中是works)
vim /usr/local/hadoop-2.6.0-cdh5.7.0/etc/hadoop/slaves
master
slave01
slave02
配置副本 hdfs-site.xml
vim /usr/local/hadoop-2.6.0-cdh5.7.0/etc/hadoop/hdfs-site.xml
<!-- hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
配置secondarynamenode在不同主机上
配置 hdfs-site.xml
vim /usr/local/hadoop-2.6.0-cdh5.7.0/etc/hadoop/hdfs-site.xml
<!-- hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.http.address</name>
<!-- 选一个 -->
<value>master:50070</value> //hadoop2.6.0
<value>master:9870</value> //hadoop3.2.1
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave01:50090</value>
</property>
配置yarn
mapred-site.xml中先 mv mapred-site.xml.template mapred-site.xml(3.0以上版本不用)
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(3.0版本加以下配置)
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
yarn-site.xml中
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>主机名</value>
</property>
scp yarn-site.xml
slave01:/usr/local/hadoop-3.2.1/etc/hadoop/
scp yarn-site.xml
slave02:/usr/local/hadoop-3.2.1/etc/hadoop/
或者
scp yarn-site.xml
slave01:$PWD
scp yarn-site.xml
slave02:$PWD
scp mapred-site.xml
slave01:/usr/local/hadoop-3.2.1/etc/hadoop/
scp mapred-site.xml
slave02:/usr/local/hadoop-3.2.1/etc/hadoop/
或者
scp mapred-site.xml
slave01:$PWD
scp mapred-site.xml
slave02:$PWD
启动hadoop
主节点上在hadoop-3.0.0目录下执行:
./sbin/start-all.sh
或者
start-all.sh
主节点上jps进程有:6个
DataNode
Jps
SecondaryNameNode
NameNode
ResourceManager
NodeManager
每个子节点上的jps进程有:3个
Jps
DataNode
NodeManager
如果这样表示hadoop集群配置成功
配置完yarn(ResourceManager)后访问8088端口
3.0以上版本额外配置
在/hadoop/sbin路径下:将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root