目前的开发测试环境中用到map-reduce框架,hive数据库,spark也涉及了hdfs文件系统,因此有必要配置Hadoop环境,考虑到整个框架的稳定性等因素,这里搭建hadoop2.2.0.
准备工作:
- 安装了jdk,测试:java -version
- 安装了vim,测试: vim a.txt
正式安装:
- 下载 hadoop-2.2.0.x86_64.tar.gz
$ wget http://archive.apache.org/dist/hadoop/core/hadoop-2.2.0/hadoop-2.2.0.tar.gz - 配置环境变量
$ tar zxvf hadoop-2.2.0.tar.gz
$ sudo mv hadoop-2.2.0 /opt/
$ sudo vim /etc/profile
#添加以下信息
export HADOOP_HOME=/opt/hadoop-2.2.0
#修改PATH
PATH=$HADOOP_HOME/bin:$PATH
$ source /etc/profile
-
配置ssh无密码通信
$ apt-get install ssh
$ /etc/init.d/ssh start
$ ssh-keygen -t rsa
$ cd .ssh # 进入.ssh目录
$ cp id_rsa.pub authorized_keys #生成authorized_keys文件
$ ssh localhost #测试无密码登陆,第一次登录可能需要密码若报“Agent admitted failure to sign using the key”错误
$ ssh-add
$ ssh localhost -
配置hadoop启动环境变量
$ sudo vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
#修改JAVA_HOME:export JAVA_HOME=/opt/jdk1.7.0_17
#注:以自己的JAVA_HOME实际位置为准
$ sudo vim $HADOOP_HOME/etc/hadoop/yarn-env.sh
#修改JAVA_HOME:export JAVA_HOME=/opt/jdk1.7.0_17
-
配置namenode访问地址和端口
$ sudo vim $HADOOP_HOME/etc/hadoop/core-site.xml
#添加以下配置信息:
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property> -
配置namenode和datanode信息
$ sudo vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
#添加以下配置信息
property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.2.0/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.2.0/hdfs/datanode</value>
</property> -
配置yarn-site.xml
$ sudo vim $HADOOP_HOME/etc/hadoop/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> -
配置mapred-site.xml
$ sudo vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
#添加以下配置信息
<property>
<name>mapreduce.cluster.temp.dir</name>
<value></value>
<description>No description</description>
<final>true</final>
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value></value>
<description>No description</description>
<final>true</final>
</property> -
格式化namenode
$ hadoop namenode -format
-
启动虚拟集群
$ cd $HADOOP_HOME/sbin
$ ./start-all.sh -
配置mapred-site.xml
$ sudo vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
#添加以下配置信息
<property>
<name>mapreduce.cluster.temp.dir</name>
<value></value>
<description>No description</description>
<final>true</final>
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value></value>
<description>No description</description>
<final>true</final>
</property> -
格式化namenode
$ hadoop namenode -format
-
启动虚拟集群
$ cd $HADOOP_HOME/sbin
$ ./start-all.sh -
若机器没有root账户,则会启动失败,使用以下命令添加root 账户
$ sudo passwd root
-
如果使用hadoop fs ... 命令,报连接错误
可能是hadoop namenode -format 命令未执行成功,改用sudo,并且查看hdfs-site.xml中路径是否设置正确
- 如果使用hadoop fs -mkdir /path 遇到权限问题,可以在root下使用hadoop fs chmod 777 /path
查看集群情况:
- ssh can not find host name or service:
64位系统不兼容32位程序,安装32位库 - start-dfs.sh log中报错:namenode:cluster id .... datanode: cluster id
检查配置的namenode和datanode文件夹下的version中cluster_id 的一致性 -
“util.NativeCodeLoader: Unable to load native-hadoop library for your platform”
http://www.secdoctor.com/html/yyjs/31101.html
本文详细介绍了如何在开发测试环境中搭建Hadoop2.2.0,包括安装JDK、配置SSH无密码通信、设置环境变量、配置各核心文件等步骤,并解决了可能出现的一些常见问题。
3103

被折叠的 条评论
为什么被折叠?



