一、创建一个用户 : 创建一个单独的Hadoop用户,文件系统隔离Hadoop文件系统
1、ubuntu的su初始密码设置 :
zlj@dell:~$ sudo passwd
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
2、创建Hadoop用户 :
zlj@dell:~$ su
密码:
root@dell:/home/zlj# useradd hadoop
root@dell:/home/zlj# passwd hadoop
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
二、SSH设置和密钥生成
sudo apt-get update
sudo apt-get install vim
sudo apt-get install openssh-server
登陆本机:
ssh localhost
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授权
以下的命令用于生成SSH密钥值对。复制公钥从id_rsa.pub到authorized_keys,并设置authorized_keys文件的读写权限给所有者。
root@dell:/home/zlj# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:RyqqkjoOTEunW9H3IcQd/GYLjDY5MeJa9y1dseLTBWc root@dell
The key's randomart image is:
+---[RSA 2048]----+
| .. |
| ..o... o E |
| . .o*.o * |
| .o.B = = o . |
| o oo.+oS.O = . |
|+ +.....o+.* . |
|.= .. .. . |
|= o. |
|+=. |
+----[SHA256]-----+
root@dell:/home/zlj# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
root@dell:/home/zlj# chmod 0600 ~/.ssh/authorized_keys
三、验证ssh
ssh localhost
报错:ssh: connect to host localhost port 22: Connection refused
1、检查ssh是否安装 :
root@dell:/home/zlj# which ssh
/usr/bin/ssh
root@dell:/home/zlj# which sshd
2、查看ssh服务是否已启动 : 已启动
root@dell:/home/zlj# ps aux | grep ssh
zlj 1538 0.0 0.0 11304 316 ? Ss 13:51 0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
root 2855 0.0 0.0 21536 1104 pts/0 S+ 14:17 0:00 grep --color=auto ssh
3、查看防火墙是否已关闭 : 已关闭
root@dell:/home/zlj# sudo ufw status
状态:不活动
4、查看ssh连接端口 :
root@dell:/home/zlj# sudo netstat -tunlp | grep ssh
sudo: netstat:找不到命令, 说明需要下载相关工具包
5、Ubuntu安装net-tools :
sudo apt-get install net-tools
6、Ubuntu下测试ssh时使用sshlocalhost命令,出现错误提示connecttohostlocalhostport22:Connectionrefused造成这个错误的原因是
因为Ubuntu默认没有安装openssh-server,可用一个命令来看下,如果只有agent,说明没有安装openssh-server,命令
如下:
root@dell:/home/zlj# ps -e | grep ssh
1538 ? 00:00:00 ssh-agent
7、使用命令来安装openssh-server:
sudo apt-get install openssh-server
安装完之后,再执行结果如下:
root@dell:/home/zlj# ps -e | grep ssh
1538 ? 00:00:00 ssh-agent
6727 ? 00:00:00 sshd
8、再执行 ssh localhost :
root@dell:/home/zlj# ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:GETeMTQngBQ4/uazJ52SOQOIq9y8u9+fnNQ6rt2eyAg.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch
0 个可升级软件包。
0 个安全更新。
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
四、安装Java
1、先执行命令java -version检查是否安装过
2、如没有,则下载Java jdk, 可以使用命令:
curl -O -L https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
或者 scp 本地文件名 用户名@IP:上传文件路径
3、为了所有用户能使用Java,必须将它移动到“/usr/local/”。打开终端然后以root用户身份键入以下命令。
$ su
password:
# mv jdk1.8.0_171/ /usr/local/
# exit
4、设置PATH和JAVA_HOME变量,添加以下命令到〜/.bashrc文件。
export JAVA_HOME=/usr/local/jdk1.8.0_171
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
然后执行命令使配置文件生效:
zlj@dell:/usr/local/jdk1.8.0_171$ source ~/.bashrc
5、再执行java -version 命令 查看是否安装成功
五、下载hadoop
1、hadoop version 命令检查是否已经安装hadoop
2、如果没有安装,使用 wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz 命令下载
$ su
password:
# cd /usr/local
# wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
# tar xzf hadoop-3.1.1.tar.gz
# mv hadoop-3.1.1/* hadoop/
# exit
六、安装 Hadoop(模拟分布式模式的Hadoop安装)
进入到/usr/local/ 下,执行 sudo chown -R hadoop ./hadoop # 修改文件权限
验证是否安装成功:
cd /usr/local/hadoop
./bin/hadoop version
安装成功会显示版本
1、在 〜/ .bashrc文件中设置 Hadoop 环境变量
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
执行命令$ source ~/.bashrc, 应用设置的环境变量
2、Hadoop配置
(1)、修改core-site.xml,在和 标签之间添加以下属性 :
hadoop.tmp.dir
file:/usr/local/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://localhost:9000
(2)、修改hdfs-site.xml hdfs-site.xml文件,文件中包含,如:复制数据的值,NameNode的路径,本地文件系统,要存储Hadoop基础架构
的Datanode路径的信息, 在和 标记之间添加以下属性 :
dfs.replication
1
dfs.namenode.name.dir
file:/usr/local/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/local/hadoop/tmp/dfs/data
(3)、修改 hadoop-env.sh文件, 必须用java在系统中的位置来替换 hadoop-env.sh文件中的 java环境变量JAVA_HOME的值。
export JAVA_HOME=/usr/local/jdk1.8.0_171
(4)、修改yarn-site.xml 文件, 该文件用于在Hadoop中配置yarn。
打开yarn-site.xml文件,并在标签之前添加以下属性到这个文件中。
mapreduceyarn.nodemanager.aux-services
mapreduce_shuffle
(5)、修改mapred-site.xml 文件, 该文件用于指定MapReduce框架并使用。默认情况下Hadoop包含yarn-site.xml模板。
首先,它需要从mapred-site.xml复制模板到mapred-site.xml文件,使用下面的命令来。
cp mapred-site.xml.template mapred-site.xml
mapreduce.framework.name
yarn
七、验证Hadoop安装
1、设置名称节点使用“hdfs namenode -format”命令如下,可能出现权限不够的错误
zlj@dell:/usr/local$ sudo chmod -R 777 hadoop/
zlj@dell:/usr/local$ cd ~
zlj@dell:~$ hdfs namenode -format
2018-12-12 17:25:54,224 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = dell/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 3.1.1
STARTUP_MSG: classpath = ...
....
2018-12-12 17:25:55,299 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/hadoop/tmp/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 388 bytes saved in 0 seconds .
2018-12-12 17:25:55,319 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2018-12-12 17:25:55,327 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at dell/127.0.1.1
************************************************************/
zlj@dell:~$
2、验证Hadoop DFS, 使用下面的命令用来启动DFS(即Hadoop文件系统)
zlj@dell:~$ start-dfs.sh
八、访问Hadoop上的浏览器
访问Hadoop的默认端口号为50070。使用以下网址,以获取Hadoop服务在浏览器中。 http://localhost:50070
无法访问50070端口,原因是3.1.0版本后,50070端口 -> 9870端口了, 访问http://localhost:9870即可
九、验证集群中的所有应用程序
访问群集的所有应用程序的默认端口号为8088。使用以下URL访问该服务。http://localhost:8088/
十、安装HBase
1、进入到/usr/local/下,下载hbase :
sudo wget http://mirrors.hust.edu.cn/apache/hbase/1.4.8/hbase-1.4.8-bin.tar.gz
2、解压hbase :
sudo tar -xvf hbase-1.4.8-bin.tar.gz
3、移动hbase :
sudo mkdir Hbase
sudo mv hbase-1.4.8/* Hbase/
4、为HBase设置Java目录,从/usr/local/Habse/conf文件夹中打开hbase-env.sh文件。编辑JAVA_HOME环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_171
JDK1.8+时,可以注释掉以下两个export,不影响,但是会有警告
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
去掉Hbase自带的Zookeeper ,使用自己安装的
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=true
5、conf下的hbase-site.xml这是Hbase的主配置文件,找到 和 标签。
并在其中,设置属性键名为“hbase.rootdir”,如下所示:
//数据存储的位置
hbase.rootdir
hdfs://hadoop102:9000/hbase
//是否启用集群
hbase.cluster.distributed
true
hbase.master.port
16000
//去掉HBase自带的zookeeper,配置自己的zookeeper
hbase.zookeeper.quorum
hadoop102:2181,hadoop103:2181,hadoop104:2181
//在zookeeper中存储数据的地址
hbase.zookeeper.property.dataDir
/opt/module/zookeeper-3.4.10/zkData
5、修改conf下的regionservers配置文件: 去掉已有的localhost,改为
hadoop102
hadoop103
hadoop104
6、到此 HBase 的安装配置已成功完成。可以通过使用 HBase 的 bin 文件夹中提供 start-hbase.sh 脚本启动 HBase。
进入到Hbase的bin目录,执行sudo ./start-hbase.sh命令
7、启动HBase Shell :
zlj@dell:/usr/local/Hbase/bin$ ./hbase shell
2018-12-14 13:58:56,168 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/Hbase/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
Version 1.4.8, r91118ce5f10fb4efa03cc8c5a47c7ce97175e85e, Tue Oct 2 11:48:24 PDT 2018
hbase(main):001:0> list
TABLE
0 row(s) in 0.2760 seconds
=> []
hbase(main):002:0>
8、HBase的Web界面:
http://localhost:16010/master-status