安装配置Hadoop&搭建集群
1. 给机器添加互信
hostname //显示主机名
- 修改主机名称:
hostnamectl set-hostname 主机名
-
添加各个机器的地址和主机名:
vi /etc/hosts
-
生成密钥:
ssh-keygen -t rsa -P ""
- 自己保存密钥:
cat ~/.ssh/id_rsa.pub > .ssh/authorized_keys
- 把密钥传输给其他机器:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop100 //→ yes → 密码
2. 软件准备:
Hadoop安装包:hadoop-2.6.0-cdh5.14.2.tar.gz
Hadoop-native安装包:hadoop-native-64-2.6.0.tar
3. 安装:
- 直接解压安装:
tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz
mv hadoop-2.6.0-cdh5.14.2 hadoop //改名便于操作
- 删除压缩包:
rm -f hadoop-2.6.0-cdh5.14.2.tar.gz
4. 配置hadoop:
进入目录 → /opt/software/hadoop/etc/hadoop
- vi hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/opt/software/jdk1.8.0_221 //jdk的安装地址
- vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value> //IP地址,或者主机名
</property>
<property>
<name>hadoop.tmp.dir</name> //临时文件的目录
<value>/root/software/hadoop/tmp</value> //临时文件目录地址
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value></value>
</property>
</confoguration>
- vi hdfs-site.xml
<configuration>
<property>
<name>dfc.replication</name>
<value>1</value> //本地不写,伪分布式写1,全分布式几个节点写几
</property>
</confoguration>
- vi mapred-site.xml.template
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</confoguration>
修改完改名:mv mapred-site.xml.template mapred-site.xml
- vi yarn-site.xml
configuration>
<property>
<name>yan.nademanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yan.nademanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop100</value> //本机名
</property>
</confoguration>
- 环境变量配置
- vi /etc/profile
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export HADOOP_HOME=/root/software/hadoop //hadoop安装地址
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- 环境变量生效:source /etc/profile
- 格式化HDFS
hdfs namenode -format
- 启动 hadoop
回到:/opt/software/hadoop
start-all.sh
jps //显示如下6个项目,怎表示配置并启动成功
- 如果缺少其中某个目录,那么输入命令查看日志
logs/hadoop-root-DataNode-hadoop100.log //DataNode缺少的项目的名称
- 验证是否成功:浏览器输入IP地址:50070 ,进入Hadoop首页 :如:192.168.112.100:50070
5. 搭建集群
上面已经安装好单机的Hadoop
搭建集群之前各个机器之间增加互信,可以免密登录
- 将hadoop目录发送给其他机器
scp -r /opt/software/hadoop root@hadoop101:/opt/software/
- 将配置文件发送给其他机器
scp /etc/profile root@hadoop101:/etc/ //传完之后新机器source /etc/profile
- vi /software/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop101:50090</value> //选择secondary node
</property>
</configuration>
- vi /software/hadoop/etc/hadoop/slaves
将需要搭建的几个机器的名字共同加入到每个文件中去
hadoop100
hadoop101
hadoop102
- 主节点格式化namenode
hdfs namenode -format //格式化前如果software、hadoop目录下有tmp 、logs的话需要先删除
- 启动hadoop
start-all.sh
- 成功后多个机器使用jps命令可以看到对应的启动的项目