1.hadoop安装-伪分布模式

来源:互联网 发布:八种调度算法 编辑:程序博客网 时间:2024/05/23 11:57
1.创建linux账号
作用:创建特定的linux系统账号区分hadoop进程;
创建用户:useradd -N hdfs
设置密码:passwd hdfs 密码:qazwsx
创建用户组:groupadd hadoop
添加到hadoop用户组:gpasswd -a hdfs hadoop
2.配置ssh
作用:hadoop控制脚本依赖ssh来执行针对整个集群的操作。
ssh安装好之后,需要允许来自集群内机器的hdfs用户能够无需密码登陆,创建一个公钥/私钥对放在NFS之中,集群共享该密钥对。
切换到hdfs用户:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa (无口令密钥)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
测试是否设置成功:ssh localhost,如果不需要密码即可登录,则说明设置成功
3.下载安装
A.下载hadoop(2.8.1版本),存放在/opt/download
wget http://apache.fayea.com/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz
B.解压,存放在/opt/hadoop
tar zvxf /opt/download/hadoop-2.8.1.tar.gz
C.授权
chown -R hdfs:hadoop hadoop
D.设置环境变量(安装jdk.note
添加配置:vim /etc/profile
## hadoop
export HADOOP_HOME=/opt/hadoop-2.8.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行命令使修改生效:source /etc/profile
E.查看hadoop配置是否成功

4.配置
A.配置文件(/hadoop-2.8.1/etc/hadoop/目录)
1).core-site.xml:通用配置
2).hdfs-site.xml:hdfs配置
3).mapred-site.xml:MapReduce配置
4).yarn-sidte.xml:yarn配置
B.三种运行模式
1).独门(本地)运行模式
2).伪分布模式
3).全分布模式
C.配置(以下命令全部使用hdfs用户)
1).配置文件
配置文件路径:
(1)使用/hadoop-2.8.1/etc/hadoop/下的对应配制文件;
(2)把etc/hadoop目录复制到另一个位置,把*-site.xml放到访目录下,设置环境变量HADOOP_CONF_DIR指向该目录,或者启动守护进程时使用--config选项;
修改配置:
core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml:没有mapred-site.xml文件,cp mapred-site.xml.template mapred-site.xml
注意:不启动 YARN 需重命名 mapred-site.xml,改成 mapred-site.xml.template。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2).格式化hdfs文件系统
hdfs namenode -format
3).启动和终止守护进程
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
启动了以下守护进程:
一个namenode、一个辅助namenode、一个datanode(HDFS)、一个资源管理器、一个节点管理器(YARN)和一个历史服务器(MapReduce)。
可打开web界面:
namenode:http://localhost:50070
资源管理器:http://localhost:8088
历史服务器:http://localhost:19888
5.运行自带的示例程序
A.创建hdfs的用户目录
hadoop fs -mkdir /hdfsinput/
hadoop fs -mkdir /hdfsinput/wordcount/
B.在本地创建测试文件
file_1.txt:Hello World
file_2.txt:
Hello Hadoop
hello mapreduce
C.上传本地文件到/hdfsinput/wordcount/
hadoop fs -put /opt/hadoop/file/file_*.txt /hdfsinput/wordcount/
D.运行示例
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar wordcount /hdfsinput/wordcount /hdfsoutput/wordcount
E.查看结果
1).命令行:hadoop fs -ls /hdfsoutput/wordcount/ hadoop fs -cat /hdfsoutput/wordcount/part-r-00000
2).web页面:http://localhost:50070/explorer.html#/hdfsoutput/wordcount
6.遇到的问题
A.localhost: Error: JAVA_HOME is not set and could not be found.
已经设置了JAVA_HOME,还是报错找不到JAVA_HOME,暂时的解决办法:修改hadoop/etc/config/hadoop-env.sh的JAVA_HOME路径。
B.org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:
Directory /tmp/hadoop-javoft/dfs/name is in an inconsistent state: storage di rectory does not exist or is not accessible.
原因:centos tmp文件夹下的内家会被定期删除;
暂时解决方法:hadoop namenode -format
永久解决方法:core-site.xml覆盖hadoop.tmp.dir的默认值。





原创粉丝点击