搭建hadoop集群
先安装jdk 配置好环境变量,环境变量统一配置再 vi ~/.bashrc 这个里面
准备三台虚拟机
192.168.6.128 master
192.168.6.129 slver1
192.168.6.130 slver2
三台都要配置
首先要ssh免密登录
ssh-keygen -t rsa
分别在三台服务器上执行 先看你是什么用户执行的 如果是root都用root用户执行
我现在用的就是root用户执行
敲回车 如果有问题选择Y
然后再/root/.ssh/ 下会生成id_rsa--私钥, id_rsa.pub--公钥
分别把公钥放到其余两台服务器的authorized_keys---(如果没有就创建这样的一个文件)中本机的也要放进去
保存
然后 ssh root@192.168.6.129 如果进去了 就说明配置正确。
重点,没完成好一个搭建,必须要验证测试是否正确
然后下载hadoop,我这下载的是hadoop-2.7.1 要什么版本自己去百度搜
把hadoop都装在/usr/local/tool/ 这个目录下----所有的软件都装在这个下面,如jdk hadoop zookeeper kafka 等 ,方便管理
然后配置hadoop环境变量,
export JAVA_HOME=/usr/local/tool/jdk1.8.0_11
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/local/tool/hadoop-2.7.1/ ----------这个改成你的版本
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_HOME=$HADOOP_HOME
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:/usr/local/lib:$HADOOP_HOME/lib/native
配置好环境变量之后 source ~/.bashrc
进入到hadoop的目录 root@master:/usr/local/tool/hadoop-2.7.1#
cd etc/hadoop/
ls
你就会看到很多配置文件
我们需要修改几个配置文件
hadoop-env.sh
yarn-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml ---没有这个文件,就 mv mapred-site.xml.template mapred-site.xml
yarn-site.xml
slaves
首先修改
vi hadoop-env.sh
export JAVA_HOME=/usr/local/tool/jdk1.8.0_11
vi yarn-env.sh
export JAVA_HOME=/usr/local/tool/jdk1.8.0_11
把java——home 放进去,为了保证hadoop能随时找到jdk
然后修改
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/temp</value>
</property>
放到<configuration> 标签中
vi hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 这个是备份数-->
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.web.ugi</name>
<value>supergroup</value>
</property>
vi mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value><!-- 这是历史-->
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
vi yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
vi slaves
从机的主机名称 或者ip 一个一行,不可以一行写多个
然后把hadoop 整个复制到从机的目录
scp -r /usr/local/tool/hadoop-2.7.1 root@192.168.6.129:/usr/local/tool/
./bin/hadoop namenode -format 格式化 namenode
提示:successfully formatted表示格式化成功
主节点上/sbin/start-all.sh 然后用jps查看进程
主
NameNode
SecondaryNameNode
ResourceManager
从
DataNode
NodeManager
50070 hdfs web
8088 yarn web
启动成功之后验证一下 上传文件 创建目录,然后执行一下mapreduce的一个demo
创建一个文件wordcountTestData.text
hello world
hello hello
hello hello
china world
china
hadoop dfs -mkdir /input
hadoop dfs -mkdir /output
hadoop dfs -put /opt/hadoop/input/wordcountTestData.txt /input/wordcountTestData.txt
hadoop jar /usr/local/tool/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar /input/wordcountTestData.txt /output/wordcountResult-fake-cluster