Ubuntu hadoop 伪分布模式搭建
2017年3月9日
11:10
》安装VMware
》安装ubuntu,虚拟机用户名和密码全部改为hadoop,其他的一路默认,设置的处理器如下:
防止虚拟机花屏和很卡,就关掉3D加速
》安装vmtools
如果按钮是灰色的,就将CD/DVD(其中一个即可)指向VMware下的linux.iso,然后点击确定退出,再点击虚拟机下面的可移动设备连接这个CD/DVD
安装好了之后,安装vim
命令:sudo apt-getinstall vim
报错:
出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成。
输入以下两条命令:
sudo rm/var/cache/apt/archives/lock
sudo rm/var/lib/dpkg/lock
再进行vim的安装就OK了
》Java的安装
Hive依赖于Hadoop,而Hadoop依赖于Java。所以需要配置JDK
首先下载好JDK,再复制到虚拟机中,放在/home/download文件夹下,然后解压到主文件夹下(/usr/local)
首先在/hone/download文件夹下运行命令:
sudo tar zxvfjdk-8u121-linux-x64.tar.gz -C /usr/local
切换到/usr/local查看文件。已经有解压的文件了:
接下来配置环境变量了,打开/etc/profile文件。命令如下:
sudo gedit /etc/profile
在最后添加:
exportJAVA_HOME=/usr/local/jdk1.8.0_121
exportJRE_HOME=/usr/local/jdk1.8.0_121/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
如图:然后点击右上角的save即可,然后点击左上角关闭。
然后重启虚拟机,输入:
命令:java -version
检查是否配置成功
安装成功。
》安装SSH
安装
sudo apt-get installopenssh-server
启动
sudo /etc/init.d/sshstart
设置免密码登录
$ ssh-keygen -t dsa -P '' -f~/.ssh/id_dsa
$ cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ exportHADOOP\_PREFIX=/usr/local/hadoop
由于这样安装后,还是无法面密码登录,需要输入localhost的密码,所以 尝试过很多种方法,最终得以解决。详见《SSH安装的N次失败》。
》安装hadoop
下载hadoop(hadoop-2.7.3.tar.gz),复制到虚拟机/home/download目录下:然后解压到/usr/local中,并改名hadoop
然后运行以下命令修改hadoop权限,确保所有的操作都是在用户hadoop下完成的:
命令:sudo chown -R hadoop:hadoop /usr/local/hadoop
配置.bashrc文件:
在文末添加,这样可以直接使用hadoop命令:
#HADOOPVARIABLES START
export JAVA_HOME=/usr/jdk1.8.0_121
exportHADOOP_INSTALL=/usr/local/hadoop
exportPATH=$PATH:$HADOOP_INSTALL/bin
exportPATH=$PATH:$HADOOP_INSTALL/sbin
exportHADOOP_MAPRED_HOME=$HADOOP_INSTALL
exportHADOOP_COMMON_HOME=$HADOOP_INSTALL
exportHADOOP_HDFS_HOME=$HADOOP_INSTALL
exportYARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOPVARIABLES END
使用命令source ~/.bashrc,使文件生效。
测试:
打开hadoop目录下的etc/hadoop目录,配置一下几个文件:
配置hadoop-env.sh,添加:
export JAVA_HOME=/usr/local/jdk1.8.0_121
exportHADOOP=/usr/local/hadoop
exportPATH=$PATH:/usr/local/hadoop/bin
配置yarn-env.sh,添加:
core-site.xml 配置(伪分布模式):
由于此处新建了hadoop_tmp文件夹,则要在对应的目录下新建一个这个文件夹。
建立文件
配置hdfs-site.xml,配置:
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<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>127.0.0.1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>127.0.0.1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>127.0.0.1:8031</value>
</property>
</configuration>
配置结束。
格式化namenode
命令:hdfs namenode-format
启动集群:start-dfs.sh
再启动集群后,测试jps的时候,java进程只有jps一个,显然,集群启动失败。
首先查看日志发现,是无法创建/usr/local/hadoop/hadoop_tmp/dfs..文件,其实在用命令“hdfs namenode -format”格式化 也有报错,并且明确说明了 namenode启动失败。然后就全部指向文件问题。首先检查是否存在hadoop_tmp这个文件,显然前面已经新建了。其次检查core-site.xml的配置有没有把文件地址写错,也没有错的话,就是权限问题了。
更改hadoop_tmp的权限,把hadoop用户添加进去。
sudo chmod a+rwx /usr/local/hadoop/hadoop_tmp
这样再次格式化nodename就没问题了。问题解决。
解压:
- zxvf
-z 是配合解压.GZ的
-x 解开一个包文件
-v 显示详细信息
-f 必须,表示使用归档文件
来自 <http://blog.csdn.net/shiqidide/article/details/7582572>
-
- chown username: /home/username/.ssh
- chown username: /home/username/.ssh/*
- chmod 700 /home/username/.ssh
- chmod 600 /home/username/.ssh/*