Hadoop 部署
1、下载hadoop
去官网 http://hadoop.apache.org/ 进行下载,版本视情况。这里
使用2.10版本的hadoop
2、准备工作
准备hadoop2.10版本的包
准备jdk1.8版本的包
准备linux操作系统的机器至少2台
(1)安装jdk
通过rz命令或者xshell的xftp功能将包上传到主节点
scp [包名] 从节点的ip:从节点的路径
如果没看明白百度scp语法
tar xf jdk1.8 -C /usr/local
mv /usr/local/jdk1.8 /usr/local/java
echo "
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
" >> /etc/profile
sourch /etc/profile
java --version
(2)配置hosts
每一台机器的hosts文件添加解析
ip地址 主机名
(3) 配置ssh免密
ssh-keygen
ssh-copy-id 从节点ip地址
如果出现报错说无法验证主节点是否存在,就将传出去的公钥中的
内容复制到自己的私钥当中去即可
3、安装hadoop
(1) 解压文件
tar xf hadoop2.10 -C /usr/local
(2) 修改配置文件
以下所有x.x.x.x都为集群master节点的ip
进入/usr/local/hadoop2.10/etc/hadoop
修改 hadoop-env.sh,找到JAVA_HOME,将其值改为真实的java路径
export JAVA_HOME=/usr/local/java
修改core-site.xml,将下面的配置拷贝至<configuration></configuration>
<!--指定hdfs的namenode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://x.x.x.x:9000</value>
</property>
<!--指定hadoop临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/u01/hadoop-2.6.2/tmp</value>
</property>
<!--用作序列化文件处理时读写buffer的大小-->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
修改hdfs-site.xml
<!--namenode磁盘挂载地址-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/u01/hdfs/name</value>
</property>
<!--datanode磁盘挂载地址-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/u01/hdfs/data</value>
</property>
<!--数据副本数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--如果需要,开启WebHDFS功能在Namenode和Datanode上(REST API)-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>x.x.x.x:9001</value>
</property>
<property>
<name>dfs.permissions.enable</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
执行cp mapred-site.xml.template mapred-site.xml,
生成mapred-site.xml文件,编辑 mapred-site.xml。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>x.x.x.x:10020</value>
</property>
修改yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>x.x.x.x</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>x.x.x.x:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>x.x.x.x:8088</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>x.x.x.x:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>x.x.x.x:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>x.x.x.x:8031</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/u01/hdfs/nmlocal</value>
</property>
<property>
<description>where to store container logs.</description>
<name>yarn.nodemanager.log-dirs</name>
<value>/u01/hdfs/nmlog</value>
</property>
<!--指定nodemanager启动时加载server的方式为shuffle server-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--配置当前机器的可用内存,通常配置当前机器剩余可用内存的80%-->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8000</value>
</property>
<!--一个Yarn container申请内存的最小计费单位-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>128</value>
</property>
<!--一个Yarn container申请内存的最大计费单位-->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8000</value>
</property>
<!--当前机器可以启动的Yarn container的数量,当前机器cpu线程的3倍-->
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>48</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://masterip:19888/jobhistory/logs</value>
</property>
修改slaves
将集群所有的机器主机名加上
(3) 将当前目录复制到从节点的这个目录下
使用scp即可
4、启动集群
以下操作均在master节点上
(1) 格式化文件系统
进入hadoop主目录下的bin目录 执行./hadoop namenode -format
(2) 启动集群
进入hadoop主目录下的sbin目录 执行:
./ mr-j0obhistory-daemon.sh start historyserver
(3) 查看是否成功
在master节点上执行jps,看到以下线程即为成功。
NameNode
SecondaryNameNode
DataNode
ResourceManager
NodeManager
JobHistoryServer
在从节点上执行jps,看到以下线程即为成功。
DataNode
NodeManager
使用浏览器访问hadoopip:8088 即可