hadoop(1)ssh连接与hadoop搭建
来源:互联网 发布:2017fc2破解版域名设置 编辑:程序博客网 时间:2024/05/22 12:56
Hadoop2.7.3单机安装配置参考http://blog.csdn.net/qjk19940101/article/details/70544197
1. 环境
Ubuntu 16.04
vmware
hadoop 2.7.3
java 1.7.0_75
master:192.168.224.135
slave1:192.168.224.131
slave2:192.168.224.134
2. 步骤
2.1 ssh连接
1、添加 hadoop用户,并添加到sudoers
sudo adduser hadoop
sudo vim /etc/sudoers
添加如下:
# User privilege specification
root ALL=(ALL:ALL) ALL
hadoop ALL=(ALL:ALL) ALL
2、切换到 hadoop用户:
su hadoop
3、修改 /etc/hostname主机名为 master
sudo vim /etc/hostname
//该步骤修改完毕之后需要进行重启系统,属于永久性修改主机名的方式
4、修改 /etc/hosts
添加如下:
# hadoop nodes ;
192.168.224.135 master
192.168.224.131 slave1
192.168.224.134 slave2
5、安装配置 java环境
JAVA_HOME=/usr/local/java/jdk1.7.0_75
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
//profile文件中关于java的环境变量
验证:java -version
6、安装 openssh-server
sudo apt-get install openssh-server
7、对于 slave1和slave2可采用虚拟机clone的方法实现复制,复制主机后注意修改/etc/hostname为slave1和slave2
/etc/hostname中修改的名称为永久修改的方式,修改之后需要重启系统才可以。
8、配置 master节点可通过SSH无密码访问slave1和slave2节点
ssh-keygen -t rsa
//该步骤后有3个空需要填,全部为空即可
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
将生成的 authorized_keys 文件复制到 slave1 和 slave2 的 .ssh目录下
scp .ssh/authorized_keys hadoop@slave1:~/.ssh
scp .ssh/authorized_keys hadoop@slave2:~/.ssh
//在该处要很注意检查一下ip地址是否与本机ip地址相符,ifconfig可以查看本机ip
9、测试连接是否成功
ssh slave1或ssh slave2
2.2.hadoop环境配置
2.2.1.解压直接使用
我们选择将Hadoop安装至/usr/local/中:
sudo tar -zxf ~/Desktop/hadoop-2.7.3.tar.gz -C /usr/local #解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.7.3/ ./hadoop #将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop #修改文件权限
Hadoop解压后即可使用。输入如下命令来检查Hadoop是否可用,成功则会显示Hadoop版本信息:
cd /usr/local/hadoop
./bin/hadoop version
2.2.2.配置hadoop的环境变量
Sudo vim /etc/profile
# set hadoop classpath
export HADOOP_HOME=/home/hadoop/software/hadoop-2.7.3
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_PREFIX=$HADOOP_HOME
export CLASSPATH=$CLASSPATH:.:$HADOOP_HOME/bin
2.2.3.配置hadoop配置文件
cd /usr/local/hadoop/etc/hadoop
//进入hadoop文件夹,修改hadoop配置文件,主要配置core-site.xml、mapred-site.xml、yarn-site.xml文件。
Core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<!--master:/etc/hosts 配置的域名 master -->
<value>hdfs://master:9000/</value>
</property>
</configuration>
//进入各个文件的时候要使用root身份,不然无法进行写操作。
Hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/tmp/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/tmp/dfs/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
</configuration>
mapred-site.xml
hadoop/etc/hadoop 下没有mapred-site.xml,只有mapred.xml.template
默认情况下,/usr/local/hadoop/etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。
复制并重命名
cp mapred-site.xml.template mapred-site.xml
编辑器打开此新建文件
sudo gedit mapred-site.xml然后编辑mapred-site.xml
<configuration>
<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>
</configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nademanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemaneger.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>
</configuration>
ResourceManager相关配置参数
(1) yarn.resourcemanager.address
参数解释:ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等。
默认值:${yarn.resourcemanager.hostname}:8032
(2) yarn.resourcemanager.scheduler.address
参数解释:ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。
默认值:${yarn.resourcemanager.hostname}:8030
(3) yarn.resourcemanager.resource-tracker.address
参数解释:ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。
默认值:${yarn.resourcemanager.hostname}:8031
(4) yarn.resourcemanager.admin.address
参数解释:ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。
默认值:${yarn.resourcemanager.hostname}:8033
(5) yarn.resourcemanager.webapp.address
参数解释:ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。
默认值:${yarn.resourcemanager.hostname}:8088
(6) yarn.resourcemanager.scheduler.class
参数解释:启用的资源调度器主类。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler。
默认值:
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
(7) yarn.resourcemanager.resource-tracker.client.thread-count
参数解释:处理来自NodeManager的RPC请求的Handler数目。
默认值:50
(8) yarn.resourcemanager.scheduler.client.thread-count
参数解释:处理来自ApplicationMaster的RPC请求的Handler数目。
默认值:50
(9) yarn.scheduler.minimum-allocation-mb/ yarn.scheduler.maximum-allocation-mb
参数解释:单个可申请的最小/最大内存资源量。比如设置为1024和3072,则运行MapRedce作业时,每个Task最少可申请1024MB内存,最多可申请3072MB内存。
默认值:1024/8192
(10) yarn.scheduler.minimum-allocation-vcores / yarn.scheduler.maximum-allocation-vcores
参数解释:单个可申请的最小/最大虚拟CPU个数。比如设置为1和4,则运行MapRedce作业时,每个Task最少可申请1个虚拟CPU,最多可申请4个虚拟CPU。什么是虚拟CPU,可阅读我的这篇文章:“YARN 资源调度器剖析”。
默认值:1/32
(11) yarn.resourcemanager.nodes.include-path /yarn.resourcemanager.nodes.exclude-path
参数解释:NodeManager黑白名单。如果发现若干个NodeManager存在问题,比如故障率很高,任务运行失败率高,则可以将之加入黑名单中。注意,这两个配置参数可以动态生效。(调用一个refresh命令即可)
默认值:“”
(12) yarn.resourcemanager.nodemanagers.heartbeat-interval-ms
参数解释:NodeManager心跳间隔
默认值:1000(毫秒)
2. NodeManager相关配置参数
(1) yarn.nodemanager.resource.memory-mb
参数解释:NodeManager总的可用物理内存。注意,该参数是不可修改的,一旦设置,整个运行过程中不可动态修改。另外,该参数的默认值是8192MB,即使你的机器内存不够8192MB,YARN也会按照这些内存来使用(傻不傻?),因此,这个值通过一定要配置。不过,Apache已经正在尝试将该参数做成可动态修改的。
默认值:8192
(2) yarn.nodemanager.vmem-pmem-ratio
参数解释:每使用1MB物理内存,最多可用的虚拟内存数。
默认值:2.1
(3) yarn.nodemanager.resource.cpu-vcores
参数解释:NodeManager总的可用虚拟CPU个数。
默认值:8
(4) yarn.nodemanager.local-dirs
参数解释:中间结果存放位置,类似于1.0中的mapred.local.dir。注意,这个参数通常会配置多个目录,已分摊磁盘IO负载。
默认值:${hadoop.tmp.dir}/nm-local-dir
(5) yarn.nodemanager.log-dirs
参数解释:日志存放地址(可配置多个目录)。
默认值:${yarn.log.dir}/userlogs
(6) yarn.nodemanager.log.retain-seconds
参数解释:NodeManager上日志最多存放时间(不启用日志聚集功能时有效)。
默认值:10800(3小时)
(7) yarn.nodemanager.aux-services
参数解释:NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序
3. 修改env环境变量文件,为hadoop-env.sh、mapred-env.sh、yarn-env.sh文件添加JAVA_HOME:
# The java implementation to use.
# export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/java/jdk1.7.0_75
4. 配置slaves文件
Slave1
Slave2
5. 向slave1和slave2节点复制hadoop2.7.3整个目录至相同位置
scp -r /usr/local/hadoop hadoop@slave1:/usr/local/hadoop
scp -r /usr/local/hadoop hadoop@slave2:/usr/local/hadoop
//没有加-r的话可能会出现not a regular file的问题
2.3启动hadoop
2.3.1.初始格式化文件系统,在hadoop目录下 bin/hdfs namenode -format
一直出现java.io.IOException: Cannot create directory /usr/local/hadoop/tmp/dfs/namenode/current的问题导致namenode初始格式化不成功,输入命令: sudo chmod -R a+w /usr/local/hadoop更改权限之后,再次输入,成功实现。
Successfully formatted代表成功。Exiting with status 0,说明没有错误。
2.3.2.启动 Hadoop 集群 start-all.sh
在hadoop目录下输入命令:./sbin/start-all.sh
./sbin/start-dfs.sh
//启动hdfs
./sbin/start-yarn.sh
//启动yarn
2.3.3.jps 输出运行的 java进程:
启动完成后,可以通过命令jps来判断是否成功启动,若成功启动则会列出如下进程:
“NameNode”,”DataNode”,”SecondaryNameNode”(如果SecondaryNameNode没有启动,请运行sbin/stop-dfs.sh关闭进行,然后再次尝试启动尝试)。如果没有NameNode或DataNode,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
注意检查ip地址是否正确,下一次打开的时候只需要./sbin/start-all.sh即可,不需要再进行namenode节点格式化
2.3.4.浏览器查看 HDFS:http://192.168.224.135:50070
2.3.5.浏览器查看 mapreduce:http://192.168.224.135:8088
2.4.停止hadoop
./sbin/stop-all.sh
以上附带了实验过程中遇到的一些问题以及解决的方式,欢迎批评指正。
- hadoop(1)ssh连接与hadoop搭建
- hadoop搭建之ssh配置
- Hadoop安装与搭建
- Hadoop与eclipse连接
- SSH简介与Hadoop集群环境搭建之 SSH免密钥登录
- hadoop搭建前奏 --- SSH免密码登录
- hadoop之配置SSH远程连接
- hadoop学习笔记1----构造模块与集群安装ssh与启动Hadoop
- 1、hadoop环境搭建
- hadoop单机与集群搭建
- hadoop环境搭建与测试
- hadoop 安装与环境搭建
- FineReport与hadoop,hive连接
- eclipse与Hadoop集群连接
- Kettle连接Hadoop与Hive
- eclipse与hadoop连接注意事项
- hadoop集群搭建(hadoop)
- Hadoop-Fedora24搭建Hadoop
- Python For Kids学习笔记03:Strings, Lists, Tuples, and Maps
- java——log4j生成日志文件
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- Linux下安装Erlang
- 第6章 I/O复用:select和poll函数
- hadoop(1)ssh连接与hadoop搭建
- 6.5
- n个十六进制转化为八进制
- CSS布局
- GIS前端获取后台数据库在Popup中显示
- UIImageView 平滑过渡图片切换
- Java I/O系统之OutputStream
- 遍历c:\windows
- centos7 添加用户并授权root权限